From patchwork Fri May 25 23:14:48 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 11506 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1SY3jO-0004VZ-R5 for patchwork@linuxtv.org; Sat, 26 May 2012 01:15:38 +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.75/mailfrontend-4) with esmtp for id 1SY3jO-00056U-AB; Sat, 26 May 2012 01:15:38 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932608Ab2EYXP2 (ORCPT ); Fri, 25 May 2012 19:15:28 -0400 Received: from mail-vc0-f174.google.com ([209.85.220.174]:47450 "EHLO mail-vc0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759123Ab2EYXPZ (ORCPT ); Fri, 25 May 2012 19:15:25 -0400 Received: by mail-vc0-f174.google.com with SMTP id f11so727674vcb.19 for ; Fri, 25 May 2012 16:15:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=2OaKAwikcoABCpxJdhfdnuCn5k+tR7wKtlzuYlNm7Ho=; b=0O32Ny21UP8MoRPGRvuRXxAK5b5Qi7jP78FgmxlNM1I72dNmAQAtlsY4FGSAyFZuWF rQv3/uNc3StQ/2yAyUaOQHhcwWq+t+VFaa9RTs242w2hRuo3lUhSqiI+j7Vq/8RgLj4t XuB6LE+Ew9dO6SHniI4K14WBnCXLK21ElrrUYGI3GBEAgBV1C8BxXszk3FeAQYY42zpn Bd56W3FeVAXTpOyFHEnfvnuYLEygyvLrhDTkcPNLWIoHdxORNum47pTtgAbTDJ1/UBbZ JHcQ93iC4FYKA6nOZgasM1KBceoNTy86O1Ssw/YjoeHGrB7QtMfXci6HuCYKC3FA8WT2 D78A== Received: by 10.52.33.212 with SMTP id t20mr604758vdi.64.1337987724157; Fri, 25 May 2012 16:15:24 -0700 (PDT) Received: from localhost.localdomain ([201.82.161.72]) by mx.google.com with ESMTPS id s10sm2787583vdg.10.2012.05.25.16.15.21 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 25 May 2012 16:15:23 -0700 (PDT) From: Fabio Estevam To: kernel@pengutronix.de Cc: shawn.guo@freescale.com, Fabio Estevam , Guennadi Liakhovetski , Subject: [PATCH 07/15] video: mx2_camera: Use clk_prepare_enable/clk_disable_unprepare Date: Fri, 25 May 2012 20:14:48 -0300 Message-Id: <1337987696-31728-7-git-send-email-festevam@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1337987696-31728-1-git-send-email-festevam@gmail.com> References: <1337987696-31728-1-git-send-email-festevam@gmail.com> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2012.5.25.230631 X-PMX-Spam: Gauge=IIIIIIIII, Probability=9%, Report=' FORGED_FROM_GMAIL 0.1, 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_MEDIA_BODY 0, __CP_URI_IN_BODY 0, __FRAUD_WEBMAIL 0, __FRAUD_WEBMAIL_FROM 0, __FROM_GMAIL 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MULTIPLE_RCPTS_CC_X2 0, __PHISH_SPEAR_STRUCTURE_1 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS ' From: Fabio Estevam Prepare the clock before enabling it. Cc: Guennadi Liakhovetski Cc: Signed-off-by: Fabio Estevam Acked-by: Sascha Hauer --- drivers/media/video/mx2_camera.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/media/video/mx2_camera.c b/drivers/media/video/mx2_camera.c index ded26b7..71b67a3 100644 --- a/drivers/media/video/mx2_camera.c +++ b/drivers/media/video/mx2_camera.c @@ -402,7 +402,7 @@ static void mx2_camera_deactivate(struct mx2_camera_dev *pcdev) { unsigned long flags; - clk_disable(pcdev->clk_csi); + clk_disable_unprepare(pcdev->clk_csi); writel(0, pcdev->base_csi + CSICR1); if (cpu_is_mx27()) { writel(0, pcdev->base_emma + PRP_CNTL); @@ -430,7 +430,7 @@ static int mx2_camera_add_device(struct soc_camera_device *icd) if (pcdev->icd) return -EBUSY; - ret = clk_enable(pcdev->clk_csi); + ret = clk_prepare_enable(pcdev->clk_csi); if (ret < 0) return ret; @@ -1664,7 +1664,7 @@ static int __devinit mx27_camera_emma_init(struct mx2_camera_dev *pcdev) goto exit_free_irq; } - clk_enable(pcdev->clk_emma); + clk_prepare_enable(pcdev->clk_emma); err = mx27_camera_emma_prp_reset(pcdev); if (err) @@ -1673,7 +1673,7 @@ static int __devinit mx27_camera_emma_init(struct mx2_camera_dev *pcdev) return err; exit_clk_emma_put: - clk_disable(pcdev->clk_emma); + clk_disable_unprepare(pcdev->clk_emma); clk_put(pcdev->clk_emma); exit_free_irq: free_irq(pcdev->irq_emma, pcdev); @@ -1810,7 +1810,7 @@ exit_free_emma: eallocctx: if (cpu_is_mx27()) { free_irq(pcdev->irq_emma, pcdev); - clk_disable(pcdev->clk_emma); + clk_disable_unprepare(pcdev->clk_emma); clk_put(pcdev->clk_emma); iounmap(pcdev->base_emma); release_mem_region(pcdev->res_emma->start, resource_size(pcdev->res_emma)); @@ -1850,7 +1850,7 @@ static int __devexit mx2_camera_remove(struct platform_device *pdev) iounmap(pcdev->base_csi); if (cpu_is_mx27()) { - clk_disable(pcdev->clk_emma); + clk_disable_unprepare(pcdev->clk_emma); clk_put(pcdev->clk_emma); iounmap(pcdev->base_emma); res = pcdev->res_emma;