diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2014-04-28 07:15:24 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-05-20 09:43:18 -0400 |
commit | d2152b2524a96e6cb71097ea26c2e7c3f9e3ee12 (patch) | |
tree | ecd005705a3389ff03ae2510283e0c37b837306b /drivers/gpu/drm/i915/intel_dp.c | |
parent | 580d3811f4465feee9d5cacdc88b6aa6b345eff5 (diff) |
drm/i915/chv: Set soft reset override bit for data lane resets
The bits we've been setting so far only progagate the reset singal to
the data lanes. To actaully force the reset signal we need to set another
override bit.
v2: Fix mispalced ';' (Mika)
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 7235ffb58a18..37638f8e2265 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -1882,6 +1882,10 @@ static void chv_post_disable_dp(struct intel_encoder *encoder) | |||
1882 | mutex_lock(&dev_priv->dpio_lock); | 1882 | mutex_lock(&dev_priv->dpio_lock); |
1883 | 1883 | ||
1884 | /* Propagate soft reset to data lane reset */ | 1884 | /* Propagate soft reset to data lane reset */ |
1885 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW1(ch)); | ||
1886 | val |= CHV_PCS_REQ_SOFTRESET_EN; | ||
1887 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW1(ch), val); | ||
1888 | |||
1885 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW0(ch)); | 1889 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW0(ch)); |
1886 | val &= ~(DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET); | 1890 | val &= ~(DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET); |
1887 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(ch), val); | 1891 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(ch), val); |
@@ -2023,6 +2027,10 @@ static void chv_pre_enable_dp(struct intel_encoder *encoder) | |||
2023 | mutex_lock(&dev_priv->dpio_lock); | 2027 | mutex_lock(&dev_priv->dpio_lock); |
2024 | 2028 | ||
2025 | /* Deassert soft data lane reset*/ | 2029 | /* Deassert soft data lane reset*/ |
2030 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW1(ch)); | ||
2031 | val |= CHV_PCS_REQ_SOFTRESET_EN; | ||
2032 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW1(ch), val); | ||
2033 | |||
2026 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW0(ch)); | 2034 | val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW0(ch)); |
2027 | val |= (DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET); | 2035 | val |= (DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET); |
2028 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(ch), val); | 2036 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(ch), val); |