[Intel-gfx] [PATCH] drm/i915: Fix VLV analog output shivers

ville.syrjala at linux.intel.com ville.syrjala at linux.intel.com
Tue Jun 11 22:08:16 CEST 2013


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

The current PLL settings produce a rather unstable picture when
I hook up a VLV to my HP ZR24w display via a VGA cable. Switching
the PLL to hybrid mode makes the picture a lot more stable. No
idea if this is truly wise though...

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 29f2c0d..8c30a4c 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4412,8 +4412,14 @@ static void vlv_update_pll(struct intel_crtc *crtc)
 		vlv_dpio_write(dev_priv, DPIO_LFP_COEFF(pipe),
 				 0x00d0000f);
 
-	if (intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_EDP) ||
-	    intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_DISPLAYPORT)) {
+	if (intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_ANALOG)) {
+		/* XXX this gives a less shivery picture */
+		if (!pipe)
+			vlv_dpio_write(dev_priv, DPIO_REFSFR(pipe), 0x08f70000);
+		else
+			vlv_dpio_write(dev_priv, DPIO_REFSFR(pipe), 0x08f40000);
+	} else if (intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_EDP) ||
+		   intel_pipe_has_type(&crtc->base, INTEL_OUTPUT_DISPLAYPORT)) {
 		/* Use SSC source */
 		if (!pipe)
 			vlv_dpio_write(dev_priv, DPIO_REFSFR(pipe),
@@ -4421,7 +4427,7 @@ static void vlv_update_pll(struct intel_crtc *crtc)
 		else
 			vlv_dpio_write(dev_priv, DPIO_REFSFR(pipe),
 					 0x0df70000);
-	} else { /* HDMI or VGA */
+	} else { /* HDMI */
 		/* Use bend source */
 		if (!pipe)
 			vlv_dpio_write(dev_priv, DPIO_REFSFR(pipe),
-- 
1.8.1.5




More information about the Intel-gfx mailing list