i915: disable DAC on Ironlake also when doing CRT load detection.
Subsystems (2)
Dave Airlie
maintainerPATCH 1/1 i915: disable DAC on Ironlake also when doing CRT load detection.
From: Dave Airlie <[email protected]>
Like on Sandybridge, disabling the DAC here when doing CRT load detect avoids forever hangs waiting on the hardware.
test procedure on HP 2740p:
boot with no VGA plugged in, start X,
plug in VGA monitor (1280x1024)
chvt 3
machine hangs waiting forever.
--- drivers/gpu/drm/i915/intel_crt.c | 23 ++++++++++++----------- 1 files changed, 12 insertions(+), 11 deletions(-)
drivers/gpu/drm/i915/intel_crt.c +12 -11
@@ -160,19 +160,20 @@ static bool intel_ironlake_crt_detect_hotplug(struct drm_connector *connector)struct drm_i915_private *dev_priv = dev->dev_private;u32 adpa, temp;bool ret; +bool turn_off_dac = false; temp = adpa =I915_READ (PCH_ADPA ); -if (HAS_PCH_CPT (dev)) { -/* Disable DAC before force detect */ -I915_WRITE (PCH_ADPA , adpa & ~ADPA_DAC_ENABLE ); - (void )I915_READ (PCH_ADPA ); - }else { - adpa &= ~ADPA_CRT_HOTPLUG_MASK ; -/* disable HPD first */ -I915_WRITE (PCH_ADPA , adpa); - (void )I915_READ (PCH_ADPA ); - } +if (HAS_PCH_SPLIT (dev)) + turn_off_dac = true; + + adpa &= ~ADPA_CRT_HOTPLUG_MASK ; +if (turn_off_dac) + adpa &= ~ADPA_DAC_ENABLE ; + +/* disable HPD first */ +I915_WRITE (PCH_ADPA , adpa); + (void )I915_READ (PCH_ADPA ); adpa |= (ADPA_CRT_HOTPLUG_PERIOD_128 | ADPA_CRT_HOTPLUG_WARMUP_10MS |
@@ -188,7 +189,7 @@ static bool intel_ironlake_crt_detect_hotplug(struct drm_connector *connector)while ((I915_READ (PCH_ADPA ) &ADPA_CRT_HOTPLUG_FORCE_TRIGGER ) !=0 ) ; -if (HAS_PCH_CPT (dev)) { +if (turn_off_dac) {I915_WRITE (PCH_ADPA , temp); (void )I915_READ (PCH_ADPA ); }
Signature · 1 line
1.7.1
Eric Anholt
AppliedQuoted 10 lines · Dave Airlie
From: Dave Airlie <[email protected]>
Like on Sandybridge, disabling the DAC here when doing CRT load detect avoids forever hangs waiting on the hardware.
test procedure on HP 2740p:
boot with no VGA plugged in, start X,
plug in VGA monitor (1280x1024)
chvt 3
machine hangs waiting forever.
Applied. Thanks!
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx