Commit 9d3fde86 authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman

backlight: atmel-pwm-bl: fix deferred probe from __init

Move probe out of __init section and don't use platform_driver_probe
which cannot be used with deferred probing.

Since commit e9354576 ("gpiolib: Defer failed gpio requests by default")
this driver might return -EPROBE_DEFER if a gpio_request fails.

Cc: Richard Purdie <rpurdie@rpsys.net>
Cc: Jingoo Han <jg1.han@samsung.com>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 17dab4d5
...@@ -118,7 +118,7 @@ static const struct backlight_ops atmel_pwm_bl_ops = { ...@@ -118,7 +118,7 @@ static const struct backlight_ops atmel_pwm_bl_ops = {
.update_status = atmel_pwm_bl_set_intensity, .update_status = atmel_pwm_bl_set_intensity,
}; };
static int __init atmel_pwm_bl_probe(struct platform_device *pdev) static int atmel_pwm_bl_probe(struct platform_device *pdev)
{ {
struct backlight_properties props; struct backlight_properties props;
const struct atmel_pwm_bl_platform_data *pdata; const struct atmel_pwm_bl_platform_data *pdata;
...@@ -202,7 +202,7 @@ static int __init atmel_pwm_bl_probe(struct platform_device *pdev) ...@@ -202,7 +202,7 @@ static int __init atmel_pwm_bl_probe(struct platform_device *pdev)
return retval; return retval;
} }
static int __exit atmel_pwm_bl_remove(struct platform_device *pdev) static int atmel_pwm_bl_remove(struct platform_device *pdev)
{ {
struct atmel_pwm_bl *pwmbl = platform_get_drvdata(pdev); struct atmel_pwm_bl *pwmbl = platform_get_drvdata(pdev);
...@@ -220,10 +220,11 @@ static struct platform_driver atmel_pwm_bl_driver = { ...@@ -220,10 +220,11 @@ static struct platform_driver atmel_pwm_bl_driver = {
.name = "atmel-pwm-bl", .name = "atmel-pwm-bl",
}, },
/* REVISIT add suspend() and resume() */ /* REVISIT add suspend() and resume() */
.remove = __exit_p(atmel_pwm_bl_remove), .probe = atmel_pwm_bl_probe,
.remove = atmel_pwm_bl_remove,
}; };
module_platform_driver_probe(atmel_pwm_bl_driver, atmel_pwm_bl_probe); module_platform_driver(atmel_pwm_bl_driver);
MODULE_AUTHOR("Hans-Christian egtvedt <hans-christian.egtvedt@atmel.com>"); MODULE_AUTHOR("Hans-Christian egtvedt <hans-christian.egtvedt@atmel.com>");
MODULE_DESCRIPTION("Atmel PWM backlight driver"); MODULE_DESCRIPTION("Atmel PWM backlight driver");
......
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