aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_crt.c
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyuw@linux.intel.com>2010-01-25 10:35:16 +0800
committerEric Anholt <eric@anholt.net>2010-01-25 08:52:54 -0800
commiteceb784cec4dc0fcc2993d9ee4a7c0d111ada80a (patch)
treebdb478e5d60004304b1106967473557edcb883b9 /drivers/gpu/drm/i915/intel_crt.c
parent92dcffb916d309aa01778bf8963a6932e4014d07 (diff)
downloadkernel_samsung_smdk4412-eceb784cec4dc0fcc2993d9ee4a7c0d111ada80a.zip
kernel_samsung_smdk4412-eceb784cec4dc0fcc2993d9ee4a7c0d111ada80a.tar.gz
kernel_samsung_smdk4412-eceb784cec4dc0fcc2993d9ee4a7c0d111ada80a.tar.bz2
drm/i915: disable hotplug detect before Ironlake CRT detect
This tries to fix CRT detect loop hang seen on some Ironlake form factor, to clear up hotplug detect state before taking CRT detect to make sure next hotplug detect cycle is consistent. Cc: Stable Team <stable@kernel.org> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_crt.c')
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index ddefc87..79dd402 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -157,6 +157,9 @@ static bool intel_ironlake_crt_detect_hotplug(struct drm_connector *connector)
adpa = I915_READ(PCH_ADPA);
adpa &= ~ADPA_CRT_HOTPLUG_MASK;
+ /* disable HPD first */
+ I915_WRITE(PCH_ADPA, adpa);
+ (void)I915_READ(PCH_ADPA);
adpa |= (ADPA_CRT_HOTPLUG_PERIOD_128 |
ADPA_CRT_HOTPLUG_WARMUP_10MS |