aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_hdmi.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2014-04-28 07:15:24 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-05-20 09:43:18 -0400
commitd2152b2524a96e6cb71097ea26c2e7c3f9e3ee12 (patch)
treeecd005705a3389ff03ae2510283e0c37b837306b /drivers/gpu/drm/i915/intel_hdmi.c
parent580d3811f4465feee9d5cacdc88b6aa6b345eff5 (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_hdmi.c')
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 9ea494a2a32e..f66c7a2ebd9a 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1259,6 +1259,10 @@ static void chv_hdmi_post_disable(struct intel_encoder *encoder)
1259 mutex_lock(&dev_priv->dpio_lock); 1259 mutex_lock(&dev_priv->dpio_lock);
1260 1260
1261 /* Propagate soft reset to data lane reset */ 1261 /* Propagate soft reset to data lane reset */
1262 val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW1(ch));
1263 val |= CHV_PCS_REQ_SOFTRESET_EN;
1264 vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW1(ch), val);
1265
1262 val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW0(ch)); 1266 val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW0(ch));
1263 val &= ~(DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET); 1267 val &= ~(DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET);
1264 vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(ch), val); 1268 vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(ch), val);
@@ -1281,6 +1285,10 @@ static void chv_hdmi_pre_enable(struct intel_encoder *encoder)
1281 mutex_lock(&dev_priv->dpio_lock); 1285 mutex_lock(&dev_priv->dpio_lock);
1282 1286
1283 /* Deassert soft data lane reset*/ 1287 /* Deassert soft data lane reset*/
1288 val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW1(ch));
1289 val |= CHV_PCS_REQ_SOFTRESET_EN;
1290 vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW1(ch), val);
1291
1284 val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW0(ch)); 1292 val = vlv_dpio_read(dev_priv, pipe, VLV_PCS_DW0(ch));
1285 val |= (DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET); 1293 val |= (DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET);
1286 vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(ch), val); 1294 vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(ch), val);