The lpc18xx driver currently manipulates the pwm_device struct directly
rather then using the pwm_set_chip_data. While the current method may
save a clock cycle or two, it is more obvious that data is set to
the local chip data pointer.

Signed-off-by: Olliver Schinagl <oli...@schinagl.nl>
---
Hi,

This is a resend of a patch-series I sent last year. There was no technical
related feedback and so I am re-sending the patch as is. I did rebase it to
Linus's current master.

Changes since v1:
        - removed wrongfully added sun4i patch
        - split patch series into a single patch
        - added author

 drivers/pwm/pwm-lpc18xx-sct.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/pwm/pwm-lpc18xx-sct.c b/drivers/pwm/pwm-lpc18xx-sct.c
index 19dc64c..a630fc5 100644
--- a/drivers/pwm/pwm-lpc18xx-sct.c
+++ b/drivers/pwm/pwm-lpc18xx-sct.c
@@ -413,14 +413,17 @@ static int lpc18xx_pwm_probe(struct platform_device *pdev)
        }
 
        for (i = 0; i < lpc18xx_pwm->chip.npwm; i++) {
+               struct lpc18xx_pwm_data *lpc18xx_data;
+
                pwm = &lpc18xx_pwm->chip.pwms[i];
-               pwm->chip_data = devm_kzalloc(lpc18xx_pwm->dev,
-                                             sizeof(struct lpc18xx_pwm_data),
-                                             GFP_KERNEL);
-               if (!pwm->chip_data) {
+               lpc18xx_data = devm_kzalloc(lpc18xx_pwm->dev,
+                                           sizeof(struct lpc18xx_pwm_data),
+                                           GFP_KERNEL);
+               if (!lpc18xx_data) {
                        ret = -ENOMEM;
                        goto remove_pwmchip;
                }
+               pwm_set_chip_data(pwm, lpc18xx_data);
        }
 
        platform_set_drvdata(pdev, lpc18xx_pwm);
-- 
2.8.1

Reply via email to