backlight: pwm_bl: fix devicetree parsing with auto-generated brightness tables
Subsystems (2)
PATCH 1/1 backlight: pwm_bl: fix devicetree parsing with auto-generated brightness tables
From: Heiko Stuebner <[email protected]>
Commit 88ba95bedb79 ("backlight: pwm_bl: Compute brightness of LED linearly to human eye") made the parse-dt function return early when using an auto- generated brightness-table, but didn't take into account that some more settings were handled below the brightness handling, like power-on-delays and also setting the pdata enable-gpio to -EINVAL.
This surfaces for example in the case of a backlight without any enable-gpio which then tries to use gpio-0 in error.
Fix this by simply moving the trailing settings above the brightness handling.
--- drivers/video/backlight/pwm_bl.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
drivers/video/backlight/pwm_bl.c +10 -9
@@ -272,6 +272,16 @@ static int pwm_backlight_parse_dt(struct device *dev,memset (data,0 ,sizeof (*data)); +/* +* These values are optional and set as 0 by default, the out values +* are modified only if a valid u32 value can be decoded. +*/ +of_property_read_u32 (node,"post-pwm-on-delay-ms" , + &data->post_pwm_on_delay); +of_property_read_u32 (node,"pwm-off-delay-ms" , &data->pwm_off_delay); + + data->enable_gpio = -EINVAL ; +/* * Determine the number of brightness levels, if this property is not * set a default table of brightness levels will be used.
@@ -384,15 +394,6 @@ static int pwm_backlight_parse_dt(struct device *dev, data->max_brightness--; } -/* -* These values are optional and set as 0 by default, the out values -* are modified only if a valid u32 value can be decoded. -*/ -of_property_read_u32 (node,"post-pwm-on-delay-ms" , - &data->post_pwm_on_delay); -of_property_read_u32 (node,"pwm-off-delay-ms" , &data->pwm_off_delay); - - data->enable_gpio = -EINVAL ;return 0 ; }
Signature · 1 line
2.18.0
Quoted 8 lines · Heiko Stuebner
From: Heiko Stuebner <[email protected]>
Commit
88ba95bedb79("backlight:pwm_bl: Compute brightness of LED linearly to human eye") made the parse-dt function return early when using an auto- generated brightness-table, but didn't take into account that some more settings were handled below the brightness handling, like power-on-delays and also setting the pdata enable-gpio to-EINVAL.
Quoted 8 lines
This surfaces for example in the case of a backlight without any enable-gpio which then tries to use gpio-0 in error.
Fix this by simply moving the trailing settings above the brightness handling.
Fixes 88ba95bedb79 ("backlight: pwm_bl: Compute brightness of LED linearly to human eye")Signed-off-by Heiko Stuebner <[email protected]>
Quoted 44 lines
--- drivers/video/backlight/pwm_bl.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)drivers/video/backlight/pwm_bl.c +10
-9@@ -272,6 +272,16 @@ static int pwm_backlight_parse_dt(struct device *dev,memset (data,0 ,sizeof (*data)); +/* +* These values are optional and set as 0 by default, the out values +* are modified only if a valid u32 value can be decoded. +*/ +of_property_read_u32 (node,"post-pwm-on-delay-ms" , + &data->post_pwm_on_delay); +of_property_read_u32 (node,"pwm-off-delay-ms" , &data->pwm_off_delay); + + data->enable_gpio = -EINVAL ; +/* * Determine the number of brightness levels, if this property is not * set a default table of brightness levels will be used. @@ -384,15 +394,6 @@ static int pwm_backlight_parse_dt(struct device *dev, data->max_brightness--; } -/* -* These values are optional and set as 0 by default, the out values -* are modified only if a valid u32 value can be decoded. -*/ -of_property_read_u32 (node,"post-pwm-on-delay-ms" , - &data->post_pwm_on_delay); -of_property_read_u32 (node,"pwm-off-delay-ms" , &data->pwm_off_delay); - - data->enable_gpio = -EINVAL ;return 0 ; }Signature · 1 line
2.18.0