diff options
Diffstat (limited to 'drivers/video/backlight/pwm_bl.c')
| -rw-r--r-- | drivers/video/backlight/pwm_bl.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c index 55044351889..21866ec6965 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c @@ -25,6 +25,7 @@ struct pwm_bl_data {  	struct pwm_device	*pwm;  	struct device		*dev;  	unsigned int		period; +	unsigned int		lth_brightness;  	int			(*notify)(struct device *,  					  int brightness);  }; @@ -48,7 +49,9 @@ static int pwm_backlight_update_status(struct backlight_device *bl)  		pwm_config(pb->pwm, 0, pb->period);  		pwm_disable(pb->pwm);  	} else { -		pwm_config(pb->pwm, brightness * pb->period / max, pb->period); +		brightness = pb->lth_brightness + +			(brightness * (pb->period - pb->lth_brightness) / max); +		pwm_config(pb->pwm, brightness, pb->period);  		pwm_enable(pb->pwm);  	}  	return 0; @@ -92,6 +95,8 @@ static int pwm_backlight_probe(struct platform_device *pdev)  	pb->period = data->pwm_period_ns;  	pb->notify = data->notify; +	pb->lth_brightness = data->lth_brightness * +		(data->pwm_period_ns / data->max_brightness);  	pb->dev = &pdev->dev;  	pb->pwm = pwm_request(data->pwm_id, "backlight");  |