diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-08-12 13:27:12 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-08-17 04:10:02 -0400 |
commit | fac3274c4ee090140410b2f29d3fbd8f10eae186 (patch) | |
tree | 76dddaff935feeb008bb4c3d35538325ce92e176 /drivers/gpu/drm/i915/dvo_ivch.c | |
parent | d2434ab7fb085ac6848acd9d82366f96a642e471 (diff) |
drm/i915: simplify dvo dpms interface
All dvo drivers only support 2 dpms states, and our dvo driver
even switches of the dvo port for anything else than DPMS_ON. Hence
ditch this complexity and simply use bool enable.
While reading through this code I've noticed that the mode_set
function of ch7017 is a bit peculiar - it disable the lvds again, even
though the crtc helper code should have done that ... This might be to
work around an issue at driver load, we pretty much ignore the hw
state when taking over.
v2: Also do the conversion for the new ns2501 driver.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/dvo_ivch.c')
-rw-r--r-- | drivers/gpu/drm/i915/dvo_ivch.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/dvo_ivch.c b/drivers/gpu/drm/i915/dvo_ivch.c index 04f2893d5e3c..fa8ff6b050fa 100644 --- a/drivers/gpu/drm/i915/dvo_ivch.c +++ b/drivers/gpu/drm/i915/dvo_ivch.c | |||
@@ -288,7 +288,7 @@ static enum drm_mode_status ivch_mode_valid(struct intel_dvo_device *dvo, | |||
288 | } | 288 | } |
289 | 289 | ||
290 | /** Sets the power state of the panel connected to the ivch */ | 290 | /** Sets the power state of the panel connected to the ivch */ |
291 | static void ivch_dpms(struct intel_dvo_device *dvo, int mode) | 291 | static void ivch_dpms(struct intel_dvo_device *dvo, bool enable) |
292 | { | 292 | { |
293 | int i; | 293 | int i; |
294 | uint16_t vr01, vr30, backlight; | 294 | uint16_t vr01, vr30, backlight; |
@@ -297,13 +297,13 @@ static void ivch_dpms(struct intel_dvo_device *dvo, int mode) | |||
297 | if (!ivch_read(dvo, VR01, &vr01)) | 297 | if (!ivch_read(dvo, VR01, &vr01)) |
298 | return; | 298 | return; |
299 | 299 | ||
300 | if (mode == DRM_MODE_DPMS_ON) | 300 | if (enable) |
301 | backlight = 1; | 301 | backlight = 1; |
302 | else | 302 | else |
303 | backlight = 0; | 303 | backlight = 0; |
304 | ivch_write(dvo, VR80, backlight); | 304 | ivch_write(dvo, VR80, backlight); |
305 | 305 | ||
306 | if (mode == DRM_MODE_DPMS_ON) | 306 | if (enable) |
307 | vr01 |= VR01_LCD_ENABLE | VR01_DVO_ENABLE; | 307 | vr01 |= VR01_LCD_ENABLE | VR01_DVO_ENABLE; |
308 | else | 308 | else |
309 | vr01 &= ~(VR01_LCD_ENABLE | VR01_DVO_ENABLE); | 309 | vr01 &= ~(VR01_LCD_ENABLE | VR01_DVO_ENABLE); |
@@ -315,7 +315,7 @@ static void ivch_dpms(struct intel_dvo_device *dvo, int mode) | |||
315 | if (!ivch_read(dvo, VR30, &vr30)) | 315 | if (!ivch_read(dvo, VR30, &vr30)) |
316 | break; | 316 | break; |
317 | 317 | ||
318 | if (((vr30 & VR30_PANEL_ON) != 0) == (mode == DRM_MODE_DPMS_ON)) | 318 | if (((vr30 & VR30_PANEL_ON) != 0) == enable) |
319 | break; | 319 | break; |
320 | udelay(1000); | 320 | udelay(1000); |
321 | } | 321 | } |