pwm: tegra: Don't needlessly enable and disable the clock in .remove()
[linux-2.6-microblaze.git] / drivers / pwm / pwm-lpc18xx-sct.c
index 7ef4024..8e461f3 100644 (file)
@@ -370,10 +370,7 @@ static int lpc18xx_pwm_probe(struct platform_device *pdev)
 
        lpc18xx_pwm->chip.dev = &pdev->dev;
        lpc18xx_pwm->chip.ops = &lpc18xx_pwm_ops;
-       lpc18xx_pwm->chip.base = -1;
        lpc18xx_pwm->chip.npwm = 16;
-       lpc18xx_pwm->chip.of_xlate = of_pwm_xlate_with_flags;
-       lpc18xx_pwm->chip.of_pwm_n_cells = 3;
 
        /* SCT counter must be in unify (32 bit) mode */
        lpc18xx_pwm_writel(lpc18xx_pwm, LPC18XX_PWM_CONFIG,
@@ -442,13 +439,15 @@ static int lpc18xx_pwm_remove(struct platform_device *pdev)
        struct lpc18xx_pwm_chip *lpc18xx_pwm = platform_get_drvdata(pdev);
        u32 val;
 
+       pwmchip_remove(&lpc18xx_pwm->chip);
+
        val = lpc18xx_pwm_readl(lpc18xx_pwm, LPC18XX_PWM_CTRL);
        lpc18xx_pwm_writel(lpc18xx_pwm, LPC18XX_PWM_CTRL,
                           val | LPC18XX_PWM_CTRL_HALT);
 
        clk_disable_unprepare(lpc18xx_pwm->pwm_clk);
 
-       return pwmchip_remove(&lpc18xx_pwm->chip);
+       return 0;
 }
 
 static struct platform_driver lpc18xx_pwm_driver = {