]> rtime.felk.cvut.cz Git - can-eth-gw-linux.git/commitdiff
pwm: i.MX: remove unnecessary if in pwm_[en|dis]able
authorSascha Hauer <s.hauer@pengutronix.de>
Tue, 28 Aug 2012 07:12:01 +0000 (09:12 +0200)
committerThierry Reding <thierry.reding@avionic-design.de>
Wed, 12 Sep 2012 12:25:04 +0000 (14:25 +0200)
The PWM core makes sure that pwm_enable/disable are called only
once. Still keep the enabled state since we will need it in
pwm_config.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: Shawn Guo <shawn.guo@linaro.org>
Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
drivers/pwm/pwm-imx.c

index 8b7f01e0a100f5eef7a8e9aabaf924b29c19f57c..5d426ffe6a3174dfd8733d1d6134930030e731f0 100644 (file)
@@ -42,7 +42,7 @@
 struct imx_chip {
        struct clk      *clk;
 
-       int             clk_enabled;
+       int             enabled;
        void __iomem    *mmio_base;
 
        struct pwm_chip chip;
@@ -139,14 +139,15 @@ static int imx_pwm_config(struct pwm_chip *chip,
 static int imx_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
 {
        struct imx_chip *imx = to_imx_chip(chip);
-       int rc = 0;
+       int ret;
 
-       if (!imx->clk_enabled) {
-               rc = clk_prepare_enable(imx->clk);
-               if (!rc)
-                       imx->clk_enabled = 1;
-       }
-       return rc;
+       ret = clk_prepare_enable(imx->clk);
+       if (ret)
+               return ret;
+
+       imx->enabled = 1;
+
+       return 0;
 }
 
 static void imx_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
@@ -155,10 +156,8 @@ static void imx_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
 
        writel(0, imx->mmio_base + MX3_PWMCR);
 
-       if (imx->clk_enabled) {
-               clk_disable_unprepare(imx->clk);
-               imx->clk_enabled = 0;
-       }
+       clk_disable_unprepare(imx->clk);
+       imx->enabled = 0;
 }
 
 static struct pwm_ops imx_pwm_ops = {
@@ -190,8 +189,6 @@ static int __devinit imx_pwm_probe(struct platform_device *pdev)
        imx->chip.base = -1;
        imx->chip.npwm = 1;
 
-       imx->clk_enabled = 0;
-
        r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (r == NULL) {
                dev_err(&pdev->dev, "no memory resource defined\n");