aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/intel_panel.c21
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
229void intel_panel_set_backlight(struct drm_device *dev, u32 level) 229static 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
257void intel_panel_disable_backlight(struct drm_device *dev) 257void 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
266void 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
269void intel_panel_enable_backlight(struct drm_device *dev) 274void 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
280static void intel_panel_init_backlight(struct drm_device *dev) 285static void intel_panel_init_backlight(struct drm_device *dev)