|
@@ -3590,6 +3590,7 @@ static void cpt_init_clock_gating(struct drm_device *dev)
|
|
|
{
|
|
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
|
|
int pipe;
|
|
|
+ uint32_t val;
|
|
|
|
|
|
/*
|
|
|
* On Ibex Peak and Cougar Point, we need to disable clock
|
|
@@ -3602,8 +3603,12 @@ static void cpt_init_clock_gating(struct drm_device *dev)
|
|
|
/* The below fixes the weird display corruption, a few pixels shifted
|
|
|
* downward, on (only) LVDS of some HP laptops with IVY.
|
|
|
*/
|
|
|
- for_each_pipe(pipe)
|
|
|
- I915_WRITE(TRANS_CHICKEN2(pipe), TRANS_CHICKEN2_TIMING_OVERRIDE);
|
|
|
+ for_each_pipe(pipe) {
|
|
|
+ val = TRANS_CHICKEN2_TIMING_OVERRIDE;
|
|
|
+ if (dev_priv->fdi_rx_polarity_inverted)
|
|
|
+ val |= TRANS_CHICKEN2_FDI_POLARITY_REVERSED;
|
|
|
+ I915_WRITE(TRANS_CHICKEN2(pipe), val);
|
|
|
+ }
|
|
|
/* WADP0ClockGatingDisable */
|
|
|
for_each_pipe(pipe) {
|
|
|
I915_WRITE(TRANS_CHICKEN1(pipe),
|