diff options
-rw-r--r-- | drivers/gpu/drm/i915/intel_panel.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c index 03500e94a73..499d4c0dbee 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c | |||
@@ -226,7 +226,7 @@ static void intel_pch_panel_set_backlight(struct drm_device *dev, u32 level) | |||
226 | I915_WRITE(BLC_PWM_CPU_CTL, val | level); | 226 | I915_WRITE(BLC_PWM_CPU_CTL, val | level); |
227 | } | 227 | } |
228 | 228 | ||
229 | void intel_panel_set_backlight(struct drm_device *dev, u32 level) | 229 | static void intel_panel_actually_set_backlight(struct drm_device *dev, u32 level) |
230 | { | 230 | { |
231 | struct drm_i915_private *dev_priv = dev->dev_private; | 231 | struct drm_i915_private *dev_priv = dev->dev_private; |
232 | u32 tmp; | 232 | u32 tmp; |
@@ -254,16 +254,21 @@ void intel_panel_set_backlight(struct drm_device *dev, u32 level) | |||
254 | I915_WRITE(BLC_PWM_CTL, tmp | level); | 254 | I915_WRITE(BLC_PWM_CTL, tmp | level); |
255 | } | 255 | } |
256 | 256 | ||
257 | void intel_panel_disable_backlight(struct drm_device *dev) | 257 | void intel_panel_set_backlight(struct drm_device *dev, u32 level) |
258 | { | 258 | { |
259 | struct drm_i915_private *dev_priv = dev->dev_private; | 259 | struct drm_i915_private *dev_priv = dev->dev_private; |
260 | 260 | ||
261 | if (dev_priv->backlight_enabled) { | 261 | dev_priv->backlight_level = level; |
262 | dev_priv->backlight_level = intel_panel_get_backlight(dev); | 262 | if (dev_priv->backlight_enabled) |
263 | dev_priv->backlight_enabled = false; | 263 | intel_panel_actually_set_backlight(dev, level); |
264 | } | 264 | } |
265 | |||
266 | void intel_panel_disable_backlight(struct drm_device *dev) | ||
267 | { | ||
268 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
265 | 269 | ||
266 | intel_panel_set_backlight(dev, 0); | 270 | dev_priv->backlight_enabled = false; |
271 | intel_panel_actually_set_backlight(dev, 0); | ||
267 | } | 272 | } |
268 | 273 | ||
269 | void intel_panel_enable_backlight(struct drm_device *dev) | 274 | void intel_panel_enable_backlight(struct drm_device *dev) |
@@ -273,8 +278,8 @@ void intel_panel_enable_backlight(struct drm_device *dev) | |||
273 | if (dev_priv->backlight_level == 0) | 278 | if (dev_priv->backlight_level == 0) |
274 | dev_priv->backlight_level = intel_panel_get_max_backlight(dev); | 279 | dev_priv->backlight_level = intel_panel_get_max_backlight(dev); |
275 | 280 | ||
276 | intel_panel_set_backlight(dev, dev_priv->backlight_level); | ||
277 | dev_priv->backlight_enabled = true; | 281 | dev_priv->backlight_enabled = true; |
282 | intel_panel_actually_set_backlight(dev, dev_priv->backlight_level); | ||
278 | } | 283 | } |
279 | 284 | ||
280 | static void intel_panel_init_backlight(struct drm_device *dev) | 285 | static void intel_panel_init_backlight(struct drm_device *dev) |