From 7210ad19955c48dfd769419f0f9a7b5a5932e22c Mon Sep 17 00:00:00 2001 From: Florian Mickler Date: Tue, 30 Jun 2009 00:31:53 +0200 Subject: [PATCH] Ignore LVDS_PORT_EN status On my Thinkpad R61 there is a BIOS-Option called "Boot Display Device" (or similar) which has three states: "Analog Output(VGA)", "Thinkpad LCD" or "Both". If set to "Analog Output(VGA)" or "Both" this Thinkpad's LVDS output was broken[1]. Putting some debugprints into the intel_find_best_PLL (as suggested by MaLing in [1] ) showed that in intel_find_best_PLL the 'no lvds'-branch got called for all outputs. removing the check for LVDS_PORT_EN fixes this issue. It has to be judged by a person more knowledgable if this is correct in all cases. [1] see http://bugs.freedesktop.org/22262 Signed-off-by: Florian Mickler --- drivers/gpu/drm/i915/intel_display.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 028f5b6..6944c6b 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -599,8 +599,7 @@ intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, intel_clock_t clock; int err = target; - if (IS_I9XX(dev) && intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS) && - (I915_READ(LVDS) & LVDS_PORT_EN) != 0) { + if (IS_I9XX(dev) && intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) { /* * For LVDS, if the panel is on, just rely on its current * settings for dual-channel. We haven't figured out how to -- 1.6.3.1