diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2014-04-09 06:29:00 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-05-20 09:43:03 -0400 |
commit | 580d3811f4465feee9d5cacdc88b6aa6b345eff5 (patch) | |
tree | f16db96541b8dba404da6cfb09cffef39809e294 /drivers/gpu/drm/i915/intel_display.c | |
parent | d752048dcd1225b481074318cf92ee751d6d475e (diff) |
drm/i915/chv: Reset data lanes in encoder .post_disable() hook
Seems like we shouldn't leave the data lane resert deasserted when
the port if disabled. So propagate the reset the data lanes in
the encoder .post_disable() hook.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 21103a547aa7..bcb0c2eafde0 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -5515,7 +5515,7 @@ static void chv_update_pll(struct intel_crtc *crtc) | |||
5515 | int pipe = crtc->pipe; | 5515 | int pipe = crtc->pipe; |
5516 | int dpll_reg = DPLL(crtc->pipe); | 5516 | int dpll_reg = DPLL(crtc->pipe); |
5517 | enum dpio_channel port = vlv_pipe_to_channel(pipe); | 5517 | enum dpio_channel port = vlv_pipe_to_channel(pipe); |
5518 | u32 val, loopfilter, intcoeff; | 5518 | u32 loopfilter, intcoeff; |
5519 | u32 bestn, bestm1, bestm2, bestp1, bestp2, bestm2_frac; | 5519 | u32 bestn, bestm1, bestm2, bestp1, bestp2, bestm2_frac; |
5520 | int refclk; | 5520 | int refclk; |
5521 | 5521 | ||
@@ -5543,11 +5543,6 @@ static void chv_update_pll(struct intel_crtc *crtc) | |||
5543 | 5543 | ||
5544 | mutex_lock(&dev_priv->dpio_lock); | 5544 | mutex_lock(&dev_priv->dpio_lock); |
5545 | 5545 | ||
5546 | /* Propagate soft reset to data lane reset */ | ||
5547 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW0(port)); | ||
5548 | val &= ~(DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET); | ||
5549 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(port), val); | ||
5550 | |||
5551 | /* p1 and p2 divider */ | 5546 | /* p1 and p2 divider */ |
5552 | vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW13(port), | 5547 | vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW13(port), |
5553 | 5 << DPIO_CHV_S1_DIV_SHIFT | | 5548 | 5 << DPIO_CHV_S1_DIV_SHIFT | |