[PATCH] drm/i915: g4x doesn't have scramble reset bits in the DFT2 register
Ville Syrjala
ville.syrjala at linux.intel.com
Fri Dec 1 20:15:25 UTC 2017
From: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
drivers/gpu/drm/i915/i915_reg.h | 8 ++++----
drivers/gpu/drm/i915/intel_pipe_crc.c | 34 +++++++++-------------------------
2 files changed, 13 insertions(+), 29 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 09bf043c1c2e..f8f24692acfd 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -4274,10 +4274,10 @@ enum {
#define DC_BALANCE_RESET (1 << 25)
#define PORT_DFT2_G4X _MMIO(dev_priv->info.display_mmio_offset + 0x61154)
#define DC_BALANCE_RESET_VLV (1 << 31)
-#define PIPE_SCRAMBLE_RESET_MASK ((1 << 14) | (0x3 << 0))
-#define PIPE_C_SCRAMBLE_RESET (1 << 14) /* chv */
-#define PIPE_B_SCRAMBLE_RESET (1 << 1)
-#define PIPE_A_SCRAMBLE_RESET (1 << 0)
+#define PIPE_SCRAMBLE_RESET_MASK_VLV ((1 << 14) | (0x3 << 0))
+#define PIPE_C_SCRAMBLE_RESET_CHV (1 << 14)
+#define PIPE_B_SCRAMBLE_RESET_VLV (1 << 1)
+#define PIPE_A_SCRAMBLE_RESET_VLV (1 << 0)
/* Gen 3 SDVO bits: */
#define SDVO_ENABLE (1 << 31)
diff --git a/drivers/gpu/drm/i915/intel_pipe_crc.c b/drivers/gpu/drm/i915/intel_pipe_crc.c
index 1f5cd572a7ff..7457324d576a 100644
--- a/drivers/gpu/drm/i915/intel_pipe_crc.c
+++ b/drivers/gpu/drm/i915/intel_pipe_crc.c
@@ -347,13 +347,13 @@ static int vlv_pipe_crc_ctl_reg(struct drm_i915_private *dev_priv,
tmp |= DC_BALANCE_RESET_VLV;
switch (pipe) {
case PIPE_A:
- tmp |= PIPE_A_SCRAMBLE_RESET;
+ tmp |= PIPE_A_SCRAMBLE_RESET_VLV;
break;
case PIPE_B:
- tmp |= PIPE_B_SCRAMBLE_RESET;
+ tmp |= PIPE_B_SCRAMBLE_RESET_VLV;
break;
case PIPE_C:
- tmp |= PIPE_C_SCRAMBLE_RESET;
+ tmp |= PIPE_C_SCRAMBLE_RESET_CHV;
break;
default:
return -EINVAL;
@@ -421,19 +421,10 @@ static int i9xx_pipe_crc_ctl_reg(struct drm_i915_private *dev_priv,
* - DisplayPort scrambling: used for EMI reduction
*/
if (need_stable_symbols) {
- uint32_t tmp = I915_READ(PORT_DFT2_G4X);
-
WARN_ON(!IS_G4X(dev_priv));
I915_WRITE(PORT_DFT_I9XX,
I915_READ(PORT_DFT_I9XX) | DC_BALANCE_RESET);
-
- if (pipe == PIPE_A)
- tmp |= PIPE_A_SCRAMBLE_RESET;
- else
- tmp |= PIPE_B_SCRAMBLE_RESET;
-
- I915_WRITE(PORT_DFT2_G4X, tmp);
}
return 0;
@@ -446,18 +437,18 @@ static void vlv_undo_pipe_scramble_reset(struct drm_i915_private *dev_priv,
switch (pipe) {
case PIPE_A:
- tmp &= ~PIPE_A_SCRAMBLE_RESET;
+ tmp &= ~PIPE_A_SCRAMBLE_RESET_VLV;
break;
case PIPE_B:
- tmp &= ~PIPE_B_SCRAMBLE_RESET;
+ tmp &= ~PIPE_B_SCRAMBLE_RESET_VLV;
break;
case PIPE_C:
- tmp &= ~PIPE_C_SCRAMBLE_RESET;
+ tmp &= ~PIPE_C_SCRAMBLE_RESET_CHV;
break;
default:
return;
}
- if (!(tmp & PIPE_SCRAMBLE_RESET_MASK))
+ if (!(tmp & PIPE_SCRAMBLE_RESET_MASK_VLV))
tmp &= ~DC_BALANCE_RESET_VLV;
I915_WRITE(PORT_DFT2_G4X, tmp);
@@ -466,15 +457,8 @@ static void vlv_undo_pipe_scramble_reset(struct drm_i915_private *dev_priv,
static void g4x_undo_pipe_scramble_reset(struct drm_i915_private *dev_priv,
enum pipe pipe)
{
- uint32_t tmp = I915_READ(PORT_DFT2_G4X);
-
- if (pipe == PIPE_A)
- tmp &= ~PIPE_A_SCRAMBLE_RESET;
- else
- tmp &= ~PIPE_B_SCRAMBLE_RESET;
- I915_WRITE(PORT_DFT2_G4X, tmp);
-
- if (!(tmp & PIPE_SCRAMBLE_RESET_MASK)) {
+ /* FIXME */
+ if (1) {
I915_WRITE(PORT_DFT_I9XX,
I915_READ(PORT_DFT_I9XX) & ~DC_BALANCE_RESET);
}
--
2.13.6
More information about the Intel-gfx-trybot
mailing list