diff options
Diffstat (limited to 'drivers/pwm/pwm-lpc18xx-sct.c')
-rw-r--r-- | drivers/pwm/pwm-lpc18xx-sct.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/pwm/pwm-lpc18xx-sct.c b/drivers/pwm/pwm-lpc18xx-sct.c index 19dc64cab2f0..d7f5f7de030d 100644 --- a/drivers/pwm/pwm-lpc18xx-sct.c +++ b/drivers/pwm/pwm-lpc18xx-sct.c | |||
@@ -413,14 +413,18 @@ static int lpc18xx_pwm_probe(struct platform_device *pdev) | |||
413 | } | 413 | } |
414 | 414 | ||
415 | for (i = 0; i < lpc18xx_pwm->chip.npwm; i++) { | 415 | for (i = 0; i < lpc18xx_pwm->chip.npwm; i++) { |
416 | struct lpc18xx_pwm_data *data; | ||
417 | |||
416 | pwm = &lpc18xx_pwm->chip.pwms[i]; | 418 | pwm = &lpc18xx_pwm->chip.pwms[i]; |
417 | pwm->chip_data = devm_kzalloc(lpc18xx_pwm->dev, | 419 | |
418 | sizeof(struct lpc18xx_pwm_data), | 420 | data = devm_kzalloc(lpc18xx_pwm->dev, sizeof(*data), |
419 | GFP_KERNEL); | 421 | GFP_KERNEL); |
420 | if (!pwm->chip_data) { | 422 | if (!data) { |
421 | ret = -ENOMEM; | 423 | ret = -ENOMEM; |
422 | goto remove_pwmchip; | 424 | goto remove_pwmchip; |
423 | } | 425 | } |
426 | |||
427 | pwm_set_chip_data(pwm, data); | ||
424 | } | 428 | } |
425 | 429 | ||
426 | platform_set_drvdata(pdev, lpc18xx_pwm); | 430 | platform_set_drvdata(pdev, lpc18xx_pwm); |