diff options
Diffstat (limited to 'drivers/video/backlight/pwm_bl.c')
| -rw-r--r-- | drivers/video/backlight/pwm_bl.c | 20 | 
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c index f2f4c43d6e2..fa00304a63d 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c @@ -41,10 +41,9 @@ static int pwm_backlight_update_status(struct backlight_device *bl)  	int brightness = bl->props.brightness;  	int max = bl->props.max_brightness; -	if (bl->props.power != FB_BLANK_UNBLANK) -		brightness = 0; - -	if (bl->props.fb_blank != FB_BLANK_UNBLANK) +	if (bl->props.power != FB_BLANK_UNBLANK || +	    bl->props.fb_blank != FB_BLANK_UNBLANK || +	    bl->props.state & BL_CORE_FBBLANK)  		brightness = 0;  	if (pb->notify) @@ -135,12 +134,6 @@ static int pwm_backlight_parse_dt(struct device *dev,  		if (ret < 0)  			return ret; -		if (value >= data->max_brightness) { -			dev_warn(dev, "invalid default brightness level: %u, using %u\n", -				 value, data->max_brightness - 1); -			value = data->max_brightness - 1; -		} -  		data->dft_brightness = value;  		data->max_brightness--;  	} @@ -249,6 +242,13 @@ static int pwm_backlight_probe(struct platform_device *pdev)  		goto err_alloc;  	} +	if (data->dft_brightness > data->max_brightness) { +		dev_warn(&pdev->dev, +			 "invalid default brightness level: %u, using %u\n", +			 data->dft_brightness, data->max_brightness); +		data->dft_brightness = data->max_brightness; +	} +  	bl->props.brightness = data->dft_brightness;  	backlight_update_status(bl);  |