Commit ce726c97 authored by Johan Hovold's avatar Johan Hovold Committed by Linus Torvalds

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: default avatarJohan Hovold <jhovold@gmail.com>
Acked-by: default avatarJingoo Han <jg1.han@samsung.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 5c057e55
...@@ -126,40 +126,33 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev) ...@@ -126,40 +126,33 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev)
struct atmel_pwm_bl *pwmbl; struct atmel_pwm_bl *pwmbl;
int retval; 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), pwmbl = devm_kzalloc(&pdev->dev, sizeof(struct atmel_pwm_bl),
GFP_KERNEL); GFP_KERNEL);
if (!pwmbl) if (!pwmbl)
return -ENOMEM; return -ENOMEM;
pwmbl->pdev = pdev; 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->pdata = pdata;
pwmbl->gpio_on = pdata->gpio_on; pwmbl->gpio_on = pdata->gpio_on;
retval = pwm_channel_alloc(pdata->pwm_channel, &pwmbl->pwmc); retval = pwm_channel_alloc(pdata->pwm_channel, &pwmbl->pwmc);
if (retval) if (retval)
goto err_free_mem; return retval;
if (pwmbl->gpio_on != -1) { if (pwmbl->gpio_on != -1) {
retval = devm_gpio_request(&pdev->dev, pwmbl->gpio_on, retval = devm_gpio_request(&pdev->dev, pwmbl->gpio_on,
"gpio_atmel_pwm_bl"); "gpio_atmel_pwm_bl");
if (retval) { if (retval)
pwmbl->gpio_on = -1;
goto err_free_pwm; goto err_free_pwm;
}
/* Turn display off by default. */ /* Turn display off by default. */
retval = gpio_direction_output(pwmbl->gpio_on, retval = gpio_direction_output(pwmbl->gpio_on,
...@@ -197,7 +190,7 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev) ...@@ -197,7 +190,7 @@ static int atmel_pwm_bl_probe(struct platform_device *pdev)
err_free_pwm: err_free_pwm:
pwm_channel_free(&pwmbl->pwmc); pwm_channel_free(&pwmbl->pwmc);
err_free_mem:
return retval; return retval;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment