drm/i915: use lower aux clock divider on non-ULT HSW
authorJani Nikula <jani.nikula@intel.com>
Tue, 9 Apr 2013 05:11:00 +0000 (08:11 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 18 Apr 2013 07:43:16 +0000 (09:43 +0200)
Workaround to avoid intermittent aux channel failures, per spec change.

v2: Don't mess with cpu dp aux divider (Paulo Zanoni)

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
[danvet: Kill spurious tab spotted by Paulo.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dp.c

index 482b5e570d843dd9b5a7d8f4f71cca427f35444d..173add1d819e6c0a6e91064f1920d7bf115e60ba 100644 (file)
@@ -353,10 +353,14 @@ intel_dp_aux_ch(struct intel_dp *intel_dp,
                        aux_clock_divider = 200; /* SNB & IVB eDP input clock at 400Mhz */
                else
                        aux_clock_divider = 225; /* eDP input clock at 450Mhz */
-       } else if (HAS_PCH_SPLIT(dev))
+       } else if (dev_priv->pch_id == INTEL_PCH_LPT_DEVICE_ID_TYPE) {
+               /* Workaround for non-ULT HSW */
+               aux_clock_divider = 74;
+       } else if (HAS_PCH_SPLIT(dev)) {
                aux_clock_divider = DIV_ROUND_UP(intel_pch_rawclk(dev), 2);
-       else
+       } else {
                aux_clock_divider = intel_hrawclk(dev) / 2;
+       }
 
        if (IS_GEN6(dev))
                precharge = 3;