From: Johan Hovold Date: Tue, 12 Nov 2013 23:09:41 +0000 (-0800) Subject: backlight: atmel-pwm-bl: clean up probe error handling X-Git-Tag: upstream/snapshot3+hdmi~3995^2~110 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ce726c9738a27ee32a00136cc512b1058044a0fe;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git 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 Acked-by: Jingoo Han Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/video/backlight/atmel-pwm-bl.c b/drivers/video/backlight/atmel-pwm-bl.c index 4886028..01af5c2 100644 --- a/drivers/video/backlight/atmel-pwm-bl.c +++ b/drivers/video/backlight/atmel-pwm-bl.c @@ -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; }