From e7d87ca1089165c05376df50f1be0f68d72ab08b Mon Sep 17 00:00:00 2001 From: Jingoo Han Date: Tue, 7 May 2013 14:34:15 +0900 Subject: misc: ep93xx_pwm: remove unnecessary platform_set_drvdata() The driver core clears the driver data to NULL after device_release or on probe failure, since commit 0998d0631001288a5974afc0b2a5f568bcdecb4d (device-core: Ensure drvdata = NULL when no driver is bound). Thus, it is not needed to manually clear the device driver data to NULL. Signed-off-by: Jingoo Han Reviewed-by: H Hartley Sweeten Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 1 - 1 file changed, 1 deletion(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 96787ec15cad..9ba93f0fe1df 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -347,7 +347,6 @@ static int __exit ep93xx_pwm_remove(struct platform_device *pdev) ep93xx_pwm_disable(pwm); clk_disable(pwm->clk); clk_put(pwm->clk); - platform_set_drvdata(pdev, NULL); sysfs_remove_group(&pdev->dev.kobj, &ep93xx_pwm_sysfs_files); iounmap(pwm->mmio_base); release_mem_region(res->start, resource_size(res)); -- cgit v1.2.3 From 6c7dd64abdd0d07bab3c1cc4327dc328cb70005a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:21:01 -0700 Subject: misc/ep93xx_pwm: use managed device resources Use managed device resources to clean up the probe/remove. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 73 +++++++++++++---------------------------------- 1 file changed, 20 insertions(+), 53 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 9ba93f0fe1df..36370b429bc7 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -273,50 +273,33 @@ static int __init ep93xx_pwm_probe(struct platform_device *pdev) { struct ep93xx_pwm *pwm; struct resource *res; - int err; + int ret; - err = ep93xx_pwm_acquire_gpio(pdev); - if (err) - return err; + pwm = devm_kzalloc(&pdev->dev, sizeof(*pwm), GFP_KERNEL); + if (!pwm) + return -ENOMEM; - pwm = kzalloc(sizeof(struct ep93xx_pwm), GFP_KERNEL); - if (!pwm) { - err = -ENOMEM; - goto fail_no_mem; - } + pwm->clk = devm_clk_get(&pdev->dev, "pwm_clk"); + if (IS_ERR(pwm->clk)) + return PTR_ERR(pwm->clk); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (res == NULL) { - err = -ENXIO; - goto fail_no_mem_resource; - } - - res = request_mem_region(res->start, resource_size(res), pdev->name); - if (res == NULL) { - err = -EBUSY; - goto fail_no_mem_resource; - } - - pwm->mmio_base = ioremap(res->start, resource_size(res)); - if (pwm->mmio_base == NULL) { - err = -ENXIO; - goto fail_no_ioremap; - } - - err = sysfs_create_group(&pdev->dev.kobj, &ep93xx_pwm_sysfs_files); - if (err) - goto fail_no_sysfs; - - pwm->clk = clk_get(&pdev->dev, "pwm_clk"); - if (IS_ERR(pwm->clk)) { - err = PTR_ERR(pwm->clk); - goto fail_no_clk; + pwm->mmio_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(pwm->mmio_base)) + return PTR_ERR(pwm->mmio_base); + + ret = ep93xx_pwm_acquire_gpio(pdev); + if (ret) + return ret; + + ret = sysfs_create_group(&pdev->dev.kobj, &ep93xx_pwm_sysfs_files); + if (ret) { + ep93xx_pwm_release_gpio(pdev); + return ret; } pwm->duty_percent = 50; - platform_set_drvdata(pdev, pwm); - /* disable pwm at startup. Avoids zero value. */ ep93xx_pwm_disable(pwm); ep93xx_pwm_write_tc(pwm, EP93XX_PWM_MAX_COUNT); @@ -324,33 +307,17 @@ static int __init ep93xx_pwm_probe(struct platform_device *pdev) clk_enable(pwm->clk); + platform_set_drvdata(pdev, pwm); return 0; - -fail_no_clk: - sysfs_remove_group(&pdev->dev.kobj, &ep93xx_pwm_sysfs_files); -fail_no_sysfs: - iounmap(pwm->mmio_base); -fail_no_ioremap: - release_mem_region(res->start, resource_size(res)); -fail_no_mem_resource: - kfree(pwm); -fail_no_mem: - ep93xx_pwm_release_gpio(pdev); - return err; } static int __exit ep93xx_pwm_remove(struct platform_device *pdev) { struct ep93xx_pwm *pwm = platform_get_drvdata(pdev); - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ep93xx_pwm_disable(pwm); clk_disable(pwm->clk); - clk_put(pwm->clk); sysfs_remove_group(&pdev->dev.kobj, &ep93xx_pwm_sysfs_files); - iounmap(pwm->mmio_base); - release_mem_region(res->start, resource_size(res)); - kfree(pwm); ep93xx_pwm_release_gpio(pdev); return 0; -- cgit v1.2.3 From 1f7190fd1ef23c3c0423cf4471572b6ec2b57c8b Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:21:50 -0700 Subject: misc/ep93xx_pwm: use {read,write}* instead of __raw_* versions for io The mmio_base is an ioremap'ed memory resource. The normal memory io functions should be used not the __raw_* versions. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 36370b429bc7..af01fb9fcd7e 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -42,13 +42,13 @@ struct ep93xx_pwm { static inline void ep93xx_pwm_writel(struct ep93xx_pwm *pwm, unsigned int val, unsigned int off) { - __raw_writel(val, pwm->mmio_base + off); + writel(val, pwm->mmio_base + off); } static inline unsigned int ep93xx_pwm_readl(struct ep93xx_pwm *pwm, unsigned int off) { - return __raw_readl(pwm->mmio_base + off); + return readl(pwm->mmio_base + off); } static inline void ep93xx_pwm_write_tc(struct ep93xx_pwm *pwm, u16 value) -- cgit v1.2.3 From a39ca2740c58ddef91efc5ea6889ecee1c314c42 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:22:30 -0700 Subject: misc/ep93xx_pwm: remove ep93xx_pwm_{write,read}l() inline functions These are simple wrappers around writel() and readl(). Remove them. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 30 +++++++++--------------------- 1 file changed, 9 insertions(+), 21 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index af01fb9fcd7e..06f0c63e8b44 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -39,61 +39,49 @@ struct ep93xx_pwm { u32 duty_percent; }; -static inline void ep93xx_pwm_writel(struct ep93xx_pwm *pwm, - unsigned int val, unsigned int off) -{ - writel(val, pwm->mmio_base + off); -} - -static inline unsigned int ep93xx_pwm_readl(struct ep93xx_pwm *pwm, - unsigned int off) -{ - return readl(pwm->mmio_base + off); -} - static inline void ep93xx_pwm_write_tc(struct ep93xx_pwm *pwm, u16 value) { - ep93xx_pwm_writel(pwm, value, EP93XX_PWMx_TERM_COUNT); + writel(value, pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); } static inline u16 ep93xx_pwm_read_tc(struct ep93xx_pwm *pwm) { - return ep93xx_pwm_readl(pwm, EP93XX_PWMx_TERM_COUNT); + return readl(pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); } static inline void ep93xx_pwm_write_dc(struct ep93xx_pwm *pwm, u16 value) { - ep93xx_pwm_writel(pwm, value, EP93XX_PWMx_DUTY_CYCLE); + writel(value, pwm->mmio_base + EP93XX_PWMx_DUTY_CYCLE); } static inline void ep93xx_pwm_enable(struct ep93xx_pwm *pwm) { - ep93xx_pwm_writel(pwm, 0x1, EP93XX_PWMx_ENABLE); + writel(0x1, pwm->mmio_base + EP93XX_PWMx_ENABLE); } static inline void ep93xx_pwm_disable(struct ep93xx_pwm *pwm) { - ep93xx_pwm_writel(pwm, 0x0, EP93XX_PWMx_ENABLE); + writel(0x0, pwm->mmio_base + EP93XX_PWMx_ENABLE); } static inline int ep93xx_pwm_is_enabled(struct ep93xx_pwm *pwm) { - return ep93xx_pwm_readl(pwm, EP93XX_PWMx_ENABLE) & 0x1; + return readl(pwm->mmio_base + EP93XX_PWMx_ENABLE) & 0x1; } static inline void ep93xx_pwm_invert(struct ep93xx_pwm *pwm) { - ep93xx_pwm_writel(pwm, 0x1, EP93XX_PWMx_INVERT); + writel(0x1, pwm->mmio_base + EP93XX_PWMx_INVERT); } static inline void ep93xx_pwm_normal(struct ep93xx_pwm *pwm) { - ep93xx_pwm_writel(pwm, 0x0, EP93XX_PWMx_INVERT); + writel(0x0, pwm->mmio_base + EP93XX_PWMx_INVERT); } static inline int ep93xx_pwm_is_inverted(struct ep93xx_pwm *pwm) { - return ep93xx_pwm_readl(pwm, EP93XX_PWMx_INVERT) & 0x1; + return readl(pwm->mmio_base + EP93XX_PWMx_INVERT) & 0x1; } /* -- cgit v1.2.3 From 53e2e380891facf2b0fdb43482b8febb6e17f7f6 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:23:00 -0700 Subject: misc/ep93xx_pwm: remove ep93xx_pwm_write_tc() inline function This is a simple wrapper around writel(), remove it. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 06f0c63e8b44..ab5a48135508 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -39,11 +39,6 @@ struct ep93xx_pwm { u32 duty_percent; }; -static inline void ep93xx_pwm_write_tc(struct ep93xx_pwm *pwm, u16 value) -{ - writel(value, pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); -} - static inline u16 ep93xx_pwm_read_tc(struct ep93xx_pwm *pwm) { return readl(pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); @@ -157,11 +152,11 @@ static ssize_t ep93xx_pwm_set_freq(struct device *dev, /* If pwm is running, order is important */ if (val > term) { - ep93xx_pwm_write_tc(pwm, val); + writel(val, pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); ep93xx_pwm_write_dc(pwm, duty); } else { ep93xx_pwm_write_dc(pwm, duty); - ep93xx_pwm_write_tc(pwm, val); + writel(val, pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); } if (!ep93xx_pwm_is_enabled(pwm)) @@ -290,7 +285,7 @@ static int __init ep93xx_pwm_probe(struct platform_device *pdev) /* disable pwm at startup. Avoids zero value. */ ep93xx_pwm_disable(pwm); - ep93xx_pwm_write_tc(pwm, EP93XX_PWM_MAX_COUNT); + writel(EP93XX_PWM_MAX_COUNT, pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); ep93xx_pwm_write_dc(pwm, EP93XX_PWM_MAX_COUNT / 2); clk_enable(pwm->clk); -- cgit v1.2.3 From aa919769c625e2b2c4a70c6bd62a1a83f9f64aa5 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:23:38 -0700 Subject: misc/ep93xx_pwm: remove ep93xx_pwm_write_dc() inline function This is a simple wrapper around writel(), remove it. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index ab5a48135508..7a133042e92c 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -44,11 +44,6 @@ static inline u16 ep93xx_pwm_read_tc(struct ep93xx_pwm *pwm) return readl(pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); } -static inline void ep93xx_pwm_write_dc(struct ep93xx_pwm *pwm, u16 value) -{ - writel(value, pwm->mmio_base + EP93XX_PWMx_DUTY_CYCLE); -} - static inline void ep93xx_pwm_enable(struct ep93xx_pwm *pwm) { writel(0x1, pwm->mmio_base + EP93XX_PWMx_ENABLE); @@ -153,9 +148,9 @@ static ssize_t ep93xx_pwm_set_freq(struct device *dev, /* If pwm is running, order is important */ if (val > term) { writel(val, pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); - ep93xx_pwm_write_dc(pwm, duty); + writel(duty, pwm->mmio_base + EP93XX_PWMx_DUTY_CYCLE); } else { - ep93xx_pwm_write_dc(pwm, duty); + writel(duty, pwm->mmio_base + EP93XX_PWMx_DUTY_CYCLE); writel(val, pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); } @@ -191,7 +186,9 @@ static ssize_t ep93xx_pwm_set_duty_percent(struct device *dev, if (val > 0 && val < 100) { u32 term = ep93xx_pwm_read_tc(pwm); - ep93xx_pwm_write_dc(pwm, ((term + 1) * val / 100) - 1); + u32 duty = ((term + 1) * val / 100) - 1; + + writel(duty, pwm->mmio_base + EP93XX_PWMx_DUTY_CYCLE); pwm->duty_percent = val; return count; } @@ -286,7 +283,7 @@ static int __init ep93xx_pwm_probe(struct platform_device *pdev) /* disable pwm at startup. Avoids zero value. */ ep93xx_pwm_disable(pwm); writel(EP93XX_PWM_MAX_COUNT, pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); - ep93xx_pwm_write_dc(pwm, EP93XX_PWM_MAX_COUNT / 2); + writel(EP93XX_PWM_MAX_COUNT/2, pwm->mmio_base + EP93XX_PWMx_DUTY_CYCLE); clk_enable(pwm->clk); -- cgit v1.2.3 From ac91b96f3070a2c3b562464604847887cc44b342 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:24:16 -0700 Subject: misc/ep93xx_pwm: remove ep93xx_pwm_enable() inline function This is a simple wrapper around writel(), remove it. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 7a133042e92c..cf42347182bc 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -44,11 +44,6 @@ static inline u16 ep93xx_pwm_read_tc(struct ep93xx_pwm *pwm) return readl(pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); } -static inline void ep93xx_pwm_enable(struct ep93xx_pwm *pwm) -{ - writel(0x1, pwm->mmio_base + EP93XX_PWMx_ENABLE); -} - static inline void ep93xx_pwm_disable(struct ep93xx_pwm *pwm) { writel(0x0, pwm->mmio_base + EP93XX_PWMx_ENABLE); @@ -155,7 +150,7 @@ static ssize_t ep93xx_pwm_set_freq(struct device *dev, } if (!ep93xx_pwm_is_enabled(pwm)) - ep93xx_pwm_enable(pwm); + writel(0x1, pwm->mmio_base + EP93XX_PWMx_ENABLE); } else { return -EINVAL; } -- cgit v1.2.3 From 02846b97d7464b92441df2e9d2f59fd5591bbd81 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:24:51 -0700 Subject: misc/ep93xx_pwm: remove ep93xx_pwm_disable() inline function This is a simple wrapper around writel(), remove it. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index cf42347182bc..320d911edcbc 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -44,11 +44,6 @@ static inline u16 ep93xx_pwm_read_tc(struct ep93xx_pwm *pwm) return readl(pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); } -static inline void ep93xx_pwm_disable(struct ep93xx_pwm *pwm) -{ - writel(0x0, pwm->mmio_base + EP93XX_PWMx_ENABLE); -} - static inline int ep93xx_pwm_is_enabled(struct ep93xx_pwm *pwm) { return readl(pwm->mmio_base + EP93XX_PWMx_ENABLE) & 0x1; @@ -127,7 +122,7 @@ static ssize_t ep93xx_pwm_set_freq(struct device *dev, return -EINVAL; if (val == 0) { - ep93xx_pwm_disable(pwm); + writel(0x0, pwm->mmio_base + EP93XX_PWMx_ENABLE); } else if (val <= (clk_get_rate(pwm->clk) / 2)) { u32 term, duty; @@ -276,7 +271,7 @@ static int __init ep93xx_pwm_probe(struct platform_device *pdev) pwm->duty_percent = 50; /* disable pwm at startup. Avoids zero value. */ - ep93xx_pwm_disable(pwm); + writel(0x0, pwm->mmio_base + EP93XX_PWMx_ENABLE); writel(EP93XX_PWM_MAX_COUNT, pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); writel(EP93XX_PWM_MAX_COUNT/2, pwm->mmio_base + EP93XX_PWMx_DUTY_CYCLE); @@ -290,7 +285,7 @@ static int __exit ep93xx_pwm_remove(struct platform_device *pdev) { struct ep93xx_pwm *pwm = platform_get_drvdata(pdev); - ep93xx_pwm_disable(pwm); + writel(0x0, pwm->mmio_base + EP93XX_PWMx_ENABLE); clk_disable(pwm->clk); sysfs_remove_group(&pdev->dev.kobj, &ep93xx_pwm_sysfs_files); ep93xx_pwm_release_gpio(pdev); -- cgit v1.2.3 From 47a36ee95a5fe31358e97a055988fe7a00163038 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:25:23 -0700 Subject: misc/ep93xx_pwm: remove ep93xx_pwm_invert() inline function This is a simple wrapper around writel(), remove it. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 320d911edcbc..5193faf594bf 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -49,11 +49,6 @@ static inline int ep93xx_pwm_is_enabled(struct ep93xx_pwm *pwm) return readl(pwm->mmio_base + EP93XX_PWMx_ENABLE) & 0x1; } -static inline void ep93xx_pwm_invert(struct ep93xx_pwm *pwm) -{ - writel(0x1, pwm->mmio_base + EP93XX_PWMx_INVERT); -} - static inline void ep93xx_pwm_normal(struct ep93xx_pwm *pwm) { writel(0x0, pwm->mmio_base + EP93XX_PWMx_INVERT); @@ -210,7 +205,7 @@ static ssize_t ep93xx_pwm_set_invert(struct device *dev, if (val == 0) ep93xx_pwm_normal(pwm); else if (val == 1) - ep93xx_pwm_invert(pwm); + writel(0x1, pwm->mmio_base + EP93XX_PWMx_INVERT); else return -EINVAL; -- cgit v1.2.3 From d98d7903d14781ab6a8f85daa393eddf13b7f918 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:26:11 -0700 Subject: misc/ep93xx_pwm: remove ep93xx_pwm_normal() inline function This is a simple wrapper around writel(), remove it. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 5193faf594bf..cdc2ffc08ab9 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -49,11 +49,6 @@ static inline int ep93xx_pwm_is_enabled(struct ep93xx_pwm *pwm) return readl(pwm->mmio_base + EP93XX_PWMx_ENABLE) & 0x1; } -static inline void ep93xx_pwm_normal(struct ep93xx_pwm *pwm) -{ - writel(0x0, pwm->mmio_base + EP93XX_PWMx_INVERT); -} - static inline int ep93xx_pwm_is_inverted(struct ep93xx_pwm *pwm) { return readl(pwm->mmio_base + EP93XX_PWMx_INVERT) & 0x1; @@ -203,7 +198,7 @@ static ssize_t ep93xx_pwm_set_invert(struct device *dev, return -EINVAL; if (val == 0) - ep93xx_pwm_normal(pwm); + writel(0x0, pwm->mmio_base + EP93XX_PWMx_INVERT); else if (val == 1) writel(0x1, pwm->mmio_base + EP93XX_PWMx_INVERT); else -- cgit v1.2.3 From 7501ba361f4b22004deec31a8227ca0240630193 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:26:41 -0700 Subject: misc/ep93xx_pwm: remove ep93xx_pwm_read_tc() inline function This is a simple wrapper around readl(), remove it. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index cdc2ffc08ab9..6f483753b435 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -39,11 +39,6 @@ struct ep93xx_pwm { u32 duty_percent; }; -static inline u16 ep93xx_pwm_read_tc(struct ep93xx_pwm *pwm) -{ - return readl(pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); -} - static inline int ep93xx_pwm_is_enabled(struct ep93xx_pwm *pwm) { return readl(pwm->mmio_base + EP93XX_PWMx_ENABLE) & 0x1; @@ -91,7 +86,7 @@ static ssize_t ep93xx_pwm_get_freq(struct device *dev, if (ep93xx_pwm_is_enabled(pwm)) { unsigned long rate = clk_get_rate(pwm->clk); - u16 term = ep93xx_pwm_read_tc(pwm); + u16 term = readl(pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); return sprintf(buf, "%ld\n", rate / (term + 1)); } else { @@ -122,7 +117,7 @@ static ssize_t ep93xx_pwm_set_freq(struct device *dev, if (val < 1) val = 1; - term = ep93xx_pwm_read_tc(pwm); + term = readl(pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); duty = ((val + 1) * pwm->duty_percent / 100) - 1; /* If pwm is running, order is important */ @@ -165,7 +160,7 @@ static ssize_t ep93xx_pwm_set_duty_percent(struct device *dev, return -EINVAL; if (val > 0 && val < 100) { - u32 term = ep93xx_pwm_read_tc(pwm); + u32 term = readl(pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); u32 duty = ((term + 1) * val / 100) - 1; writel(duty, pwm->mmio_base + EP93XX_PWMx_DUTY_CYCLE); -- cgit v1.2.3 From 5b2cd8f9b4a098d5aab91539ab5d589c6b676b1e Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:27:08 -0700 Subject: misc/ep93xx_pwm: remove ep93xx_pwm_is_enabled() inline function This is a simple wrapper around readl(), remove it. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 6f483753b435..3dd20069971c 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -39,11 +39,6 @@ struct ep93xx_pwm { u32 duty_percent; }; -static inline int ep93xx_pwm_is_enabled(struct ep93xx_pwm *pwm) -{ - return readl(pwm->mmio_base + EP93XX_PWMx_ENABLE) & 0x1; -} - static inline int ep93xx_pwm_is_inverted(struct ep93xx_pwm *pwm) { return readl(pwm->mmio_base + EP93XX_PWMx_INVERT) & 0x1; @@ -84,7 +79,7 @@ static ssize_t ep93xx_pwm_get_freq(struct device *dev, struct platform_device *pdev = to_platform_device(dev); struct ep93xx_pwm *pwm = platform_get_drvdata(pdev); - if (ep93xx_pwm_is_enabled(pwm)) { + if (readl(pwm->mmio_base + EP93XX_PWMx_ENABLE) & 0x1) { unsigned long rate = clk_get_rate(pwm->clk); u16 term = readl(pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); @@ -129,7 +124,7 @@ static ssize_t ep93xx_pwm_set_freq(struct device *dev, writel(val, pwm->mmio_base + EP93XX_PWMx_TERM_COUNT); } - if (!ep93xx_pwm_is_enabled(pwm)) + if (!readl(pwm->mmio_base + EP93XX_PWMx_ENABLE) & 0x1) writel(0x1, pwm->mmio_base + EP93XX_PWMx_ENABLE); } else { return -EINVAL; -- cgit v1.2.3 From ddfd6894db8d1c1a5b5e532283aee1f3afd880b9 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:27:38 -0700 Subject: misc/ep93xx_pwm: remove ep93xx_pwm_is_inverted() inline function This is a simple wrapper around readl(), remove it. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index 3dd20069971c..dd570d1d2245 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -39,11 +39,6 @@ struct ep93xx_pwm { u32 duty_percent; }; -static inline int ep93xx_pwm_is_inverted(struct ep93xx_pwm *pwm) -{ - return readl(pwm->mmio_base + EP93XX_PWMx_INVERT) & 0x1; -} - /* * /sys/devices/platform/ep93xx-pwm.N * /min_freq read-only minimum pwm output frequency @@ -171,8 +166,9 @@ static ssize_t ep93xx_pwm_get_invert(struct device *dev, { struct platform_device *pdev = to_platform_device(dev); struct ep93xx_pwm *pwm = platform_get_drvdata(pdev); + int inverted = readl(pwm->mmio_base + EP93XX_PWMx_INVERT) & 0x1; - return sprintf(buf, "%d\n", ep93xx_pwm_is_inverted(pwm)); + return sprintf(buf, "%d\n", inverted); } static ssize_t ep93xx_pwm_set_invert(struct device *dev, -- cgit v1.2.3 From 6e1cf66ee3105b41ec93a3848e848ae682add3ff Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:28:14 -0700 Subject: misc/ep93xx_pwm: use module_platform_driver() Add the (*probe) function to the platform_driver and use the module_platform_driver() macro to initialize the module. Remove the unnecessary __init and __exit tags. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index dd570d1d2245..b5ad0c6a5af1 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -215,7 +215,7 @@ static const struct attribute_group ep93xx_pwm_sysfs_files = { .attrs = ep93xx_pwm_attrs, }; -static int __init ep93xx_pwm_probe(struct platform_device *pdev) +static int ep93xx_pwm_probe(struct platform_device *pdev) { struct ep93xx_pwm *pwm; struct resource *res; @@ -257,7 +257,7 @@ static int __init ep93xx_pwm_probe(struct platform_device *pdev) return 0; } -static int __exit ep93xx_pwm_remove(struct platform_device *pdev) +static int ep93xx_pwm_remove(struct platform_device *pdev) { struct ep93xx_pwm *pwm = platform_get_drvdata(pdev); @@ -274,10 +274,10 @@ static struct platform_driver ep93xx_pwm_driver = { .name = "ep93xx-pwm", .owner = THIS_MODULE, }, - .remove = __exit_p(ep93xx_pwm_remove), + .probe = ep93xx_pwm_probe, + .remove = ep93xx_pwm_remove, }; - -module_platform_driver_probe(ep93xx_pwm_driver, ep93xx_pwm_probe); +module_platform_driver(ep93xx_pwm_driver); MODULE_AUTHOR("Matthieu Crapet , " "H Hartley Sweeten "); -- cgit v1.2.3 From a4b05d1262c1f79ff07e9baceccbf3398846b8c0 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Fri, 24 May 2013 16:28:44 -0700 Subject: misc/ep93xx_pwm: use kstrtol instead of strict_strtol strict_strtol is deprecated in favor of kstrtol. Signed-off-by: H Hartley Sweeten Acked-by: Arnd Bergmann Reviewed-by: Ryan Mallon Cc: Matthieu Crapet Signed-off-by: Greg Kroah-Hartman --- drivers/misc/ep93xx_pwm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'drivers/misc/ep93xx_pwm.c') diff --git a/drivers/misc/ep93xx_pwm.c b/drivers/misc/ep93xx_pwm.c index b5ad0c6a5af1..cdb67a9c1959 100644 --- a/drivers/misc/ep93xx_pwm.c +++ b/drivers/misc/ep93xx_pwm.c @@ -92,7 +92,7 @@ static ssize_t ep93xx_pwm_set_freq(struct device *dev, long val; int err; - err = strict_strtol(buf, 10, &val); + err = kstrtol(buf, 10, &val); if (err) return -EINVAL; @@ -145,7 +145,7 @@ static ssize_t ep93xx_pwm_set_duty_percent(struct device *dev, long val; int err; - err = strict_strtol(buf, 10, &val); + err = kstrtol(buf, 10, &val); if (err) return -EINVAL; @@ -179,7 +179,7 @@ static ssize_t ep93xx_pwm_set_invert(struct device *dev, long val; int err; - err = strict_strtol(buf, 10, &val); + err = kstrtol(buf, 10, &val); if (err) return -EINVAL; -- cgit v1.2.3