backlight: atmel-pwm-bl: clean up probe error handling
Clean up probe error handling by checking parameters before any allocations and removing an obsolete error label. Also remove unnecessary reset of private gpio number. Signed-off-by: Johan Hovold <jhovold@gmail.com> Acked-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5c057e5570
commit
ce726c9738
|
@ -126,40 +126,33 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev)
|
|||
struct atmel_pwm_bl *pwmbl;
|
||||
int retval;
|
||||
|
||||
pdata = dev_get_platdata(&pdev->dev);
|
||||
if (!pdata)
|
||||
return -ENODEV;
|
||||
|
||||
if (pdata->pwm_compare_max < pdata->pwm_duty_max ||
|
||||
pdata->pwm_duty_min > pdata->pwm_duty_max ||
|
||||
pdata->pwm_frequency == 0)
|
||||
return -EINVAL;
|
||||
|
||||
pwmbl = devm_kzalloc(&pdev->dev, sizeof(struct atmel_pwm_bl),
|
||||
GFP_KERNEL);
|
||||
if (!pwmbl)
|
||||
return -ENOMEM;
|
||||
|
||||
pwmbl->pdev = pdev;
|
||||
|
||||
pdata = dev_get_platdata(&pdev->dev);
|
||||
if (!pdata) {
|
||||
retval = -ENODEV;
|
||||
goto err_free_mem;
|
||||
}
|
||||
|
||||
if (pdata->pwm_compare_max < pdata->pwm_duty_max ||
|
||||
pdata->pwm_duty_min > pdata->pwm_duty_max ||
|
||||
pdata->pwm_frequency == 0) {
|
||||
retval = -EINVAL;
|
||||
goto err_free_mem;
|
||||
}
|
||||
|
||||
pwmbl->pdata = pdata;
|
||||
pwmbl->gpio_on = pdata->gpio_on;
|
||||
|
||||
retval = pwm_channel_alloc(pdata->pwm_channel, &pwmbl->pwmc);
|
||||
if (retval)
|
||||
goto err_free_mem;
|
||||
return retval;
|
||||
|
||||
if (pwmbl->gpio_on != -1) {
|
||||
retval = devm_gpio_request(&pdev->dev, pwmbl->gpio_on,
|
||||
"gpio_atmel_pwm_bl");
|
||||
if (retval) {
|
||||
pwmbl->gpio_on = -1;
|
||||
if (retval)
|
||||
goto err_free_pwm;
|
||||
}
|
||||
|
||||
/* Turn display off by default. */
|
||||
retval = gpio_direction_output(pwmbl->gpio_on,
|
||||
|
@ -197,7 +190,7 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev)
|
|||
|
||||
err_free_pwm:
|
||||
pwm_channel_free(&pwmbl->pwmc);
|
||||
err_free_mem:
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue