From patchwork Fri Oct 18 14:14:32 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sylwester Nawrocki X-Patchwork-Id: 20454 X-Patchwork-Delegate: sylvester.nawrocki@gmail.com Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1VXApo-0003jJ-5V; Fri, 18 Oct 2013 16:15:24 +0200 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.72/mailfrontend-8) with esmtp id 1VXApm-0001kk-jA; Fri, 18 Oct 2013 16:15:23 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754780Ab3JROPT (ORCPT + 1 other); Fri, 18 Oct 2013 10:15:19 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:28138 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753739Ab3JROPS (ORCPT ); Fri, 18 Oct 2013 10:15:18 -0400 Received: from epcpsbgm2.samsung.com (epcpsbgm2 [203.254.230.27]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MUV00MSXBKHXQO0@mailout3.samsung.com>; Fri, 18 Oct 2013 23:14:47 +0900 (KST) X-AuditID: cbfee61b-b7f776d0000016c8-b3-526142573a7f Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 30.AF.05832.75241625; Fri, 18 Oct 2013 23:14:47 +0900 (KST) Received: from amdc1344.digital.local ([106.116.147.32]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MUV00B75BKDB920@mmp1.samsung.com>; Fri, 18 Oct 2013 23:14:47 +0900 (KST) From: Sylwester Nawrocki To: linux-media@vger.kernel.org Cc: kyungmin.park@samsung.com, linux-samsung-soc@vger.kernel.org, Sylwester Nawrocki Subject: [PATCH] exynos4-is: Simplify fimc-is hardware polling helpers Date: Fri, 18 Oct 2013 16:14:32 +0200 Message-id: <1382105672-22032-1-git-send-email-s.nawrocki@samsung.com> X-Mailer: git-send-email 1.7.9.5 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrLJMWRmVeSWpSXmKPExsVy+t9jAd1wp8Qgg7Y1yhZnm96wW/Rs2Mpq MeP8PiaLw2/aWR1YPPq2rGL0+LxJLoApissmJTUnsyy1SN8ugSujaelCxoKPIhUnTjYxNTDu Fexi5OSQEDCR2HT2HxOELSZx4d56ti5GLg4hgUWMEnO39jJCOB1MEqsa77KDVLEJGEr0Hu1j BLFFBOQlnvTeYAOxmQXyJc4d28oMYgsLuEn82dPGCmKzCKhKXDz7BKyXFyj+9Ew/UJwDaJuC xJxJNhMYuRcwMqxiFE0tSC4oTkrPNdIrTswtLs1L10vOz93ECPb0M+kdjKsaLA4xCnAwKvHw dtgkBgmxJpYVV+YeYpTgYFYS4d2nDRTiTUmsrEotyo8vKs1JLT7EKM3BoiTOe7DVOlBIID2x JDU7NbUgtQgmy8TBKdXAqH9BT1mjdt7aYy4S33OFOmaYl9pe7Ord+3lD4Fqhj7Mn7pP3m+/o YtXJdXr2R+VemZwfRnzVXQJKW88b28xSazs7/7Wpse/zR8ki+UylQWdDPzD7eWyLfxbwm0+x +OINbybnqN9cehYvMj6K/+Q+p3RaMflN4kznjucuzXvdZesOHV359f05JZbijERDLeai4kQA EgNxzfABAAA= Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 6.0.0.2142326, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2013.10.18.140914 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' MULTIPLE_RCPTS 0.1, HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_2000_2999 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, URI_ENDS_IN_HTML 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS ' The fimc_is_hw_wait_intsr0_intsd0() function is currently unused and can be safely removed. The other polling function simplified and ETIME error code is replaced with more commonly used ETIMEDOUT. Signed-off-by: Sylwester Nawrocki Signed-off-by: Kyungmin Park --- drivers/media/platform/exynos4-is/fimc-is-regs.c | 36 ++++------------------ drivers/media/platform/exynos4-is/fimc-is-regs.h | 1 - 2 files changed, 6 insertions(+), 31 deletions(-) diff --git a/drivers/media/platform/exynos4-is/fimc-is-regs.c b/drivers/media/platform/exynos4-is/fimc-is-regs.c index 63f8b5e..cfe4406 100644 --- a/drivers/media/platform/exynos4-is/fimc-is-regs.c +++ b/drivers/media/platform/exynos4-is/fimc-is-regs.c @@ -33,47 +33,23 @@ void fimc_is_hw_set_intgr0_gd0(struct fimc_is *is) mcuctl_write(INTGR0_INTGD(0), is, MCUCTL_REG_INTGR0); } -int fimc_is_hw_wait_intsr0_intsd0(struct fimc_is *is) -{ - unsigned int timeout = 2000; - u32 cfg, status; - - cfg = mcuctl_read(is, MCUCTL_REG_INTSR0); - status = INTSR0_GET_INTSD(0, cfg); - - while (status) { - cfg = mcuctl_read(is, MCUCTL_REG_INTSR0); - status = INTSR0_GET_INTSD(0, cfg); - if (timeout == 0) { - dev_warn(&is->pdev->dev, "%s timeout\n", - __func__); - return -ETIME; - } - timeout--; - udelay(1); - } - return 0; -} - int fimc_is_hw_wait_intmsr0_intmsd0(struct fimc_is *is) { unsigned int timeout = 2000; u32 cfg, status; - cfg = mcuctl_read(is, MCUCTL_REG_INTMSR0); - status = INTMSR0_GET_INTMSD(0, cfg); - - while (status) { + do { cfg = mcuctl_read(is, MCUCTL_REG_INTMSR0); status = INTMSR0_GET_INTMSD(0, cfg); - if (timeout == 0) { + + if (--timeout == 0) { dev_warn(&is->pdev->dev, "%s timeout\n", __func__); - return -ETIME; + return -ETIMEDOUT; } - timeout--; udelay(1); - } + } while (status != 0); + return 0; } diff --git a/drivers/media/platform/exynos4-is/fimc-is-regs.h b/drivers/media/platform/exynos4-is/fimc-is-regs.h index ab73957..141e5dd 100644 --- a/drivers/media/platform/exynos4-is/fimc-is-regs.h +++ b/drivers/media/platform/exynos4-is/fimc-is-regs.h @@ -145,7 +145,6 @@ void fimc_is_fw_clear_irq2(struct fimc_is *is); int fimc_is_hw_get_params(struct fimc_is *is, unsigned int num); void fimc_is_hw_set_intgr0_gd0(struct fimc_is *is); -int fimc_is_hw_wait_intsr0_intsd0(struct fimc_is *is); int fimc_is_hw_wait_intmsr0_intmsd0(struct fimc_is *is); void fimc_is_hw_set_sensor_num(struct fimc_is *is); void fimc_is_hw_set_isp_buf_mask(struct fimc_is *is, unsigned int mask);