diff options
Diffstat (limited to 'drivers/video/backlight/pwm_bl.c')
| -rw-r--r-- | drivers/video/backlight/pwm_bl.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c index b8f38ec6eb1..8b5b2a4124c 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c @@ -28,6 +28,8 @@ struct pwm_bl_data {  	unsigned int		lth_brightness;  	int			(*notify)(struct device *,  					  int brightness); +	void			(*notify_after)(struct device *, +					int brightness);  	int			(*check_fb)(struct device *, struct fb_info *);  }; @@ -55,6 +57,10 @@ static int pwm_backlight_update_status(struct backlight_device *bl)  		pwm_config(pb->pwm, brightness, pb->period);  		pwm_enable(pb->pwm);  	} + +	if (pb->notify_after) +		pb->notify_after(pb->dev, brightness); +  	return 0;  } @@ -105,6 +111,7 @@ static int pwm_backlight_probe(struct platform_device *pdev)  	pb->period = data->pwm_period_ns;  	pb->notify = data->notify; +	pb->notify_after = data->notify_after;  	pb->check_fb = data->check_fb;  	pb->lth_brightness = data->lth_brightness *  		(data->pwm_period_ns / data->max_brightness); @@ -172,6 +179,8 @@ static int pwm_backlight_suspend(struct platform_device *pdev,  		pb->notify(pb->dev, 0);  	pwm_config(pb->pwm, 0, pb->period);  	pwm_disable(pb->pwm); +	if (pb->notify_after) +		pb->notify_after(pb->dev, 0);  	return 0;  }  |