From: Vandita Kulkarni <[email protected]>

EHL has 2 additional steps in the DSI sequence, this is one of then
the lane latency optimization for DW1.

BSpec: 20597
Cc: Uma Shankar <[email protected]>
Cc: Rodrigo Vivi <[email protected]>
Cc: Jani Nikula <[email protected]>
Signed-off-by: Vandita Kulkarni <[email protected]>
---
 drivers/gpu/drm/i915/display/icl_dsi.c | 11 +++++++++++
 drivers/gpu/drm/i915/i915_reg.h        |  2 ++
 2 files changed, 13 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c 
b/drivers/gpu/drm/i915/display/icl_dsi.c
index 74448e6bf749..ee85428b309f 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -403,6 +403,17 @@ static void gen11_dsi_config_phy_lanes_sequence(struct 
intel_encoder *encoder)
                tmp &= ~FRC_LATENCY_OPTIM_MASK;
                tmp |= FRC_LATENCY_OPTIM_VAL(0x5);
                I915_WRITE(ICL_PORT_TX_DW2_GRP(port), tmp);
+               /* For EHL set latency optimization for PCS_DW1 lanes */
+               if (IS_ELKHARTLAKE(dev_priv)) {
+                       tmp = I915_READ(ICL_PORT_PCS_DW1_AUX(port));
+                       tmp &= ~LATENCY_OPTIM_MASK;
+                       tmp |= LATENCY_OPTIM_VAL(0);
+                       I915_WRITE(ICL_PORT_PCS_DW1_AUX(port), tmp);
+                       tmp = I915_READ(ICL_PORT_PCS_DW1_LN0(port));
+                       tmp &= ~LATENCY_OPTIM_MASK;
+                       tmp |= LATENCY_OPTIM_VAL(0x1);
+                       I915_WRITE(ICL_PORT_PCS_DW1_GRP(port), tmp);
+               }
        }
 
 }
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index d6483b5dc8e5..1f2c3ebdf87b 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1896,6 +1896,8 @@ enum i915_power_well_id {
 #define ICL_PORT_PCS_DW1_GRP(port)     _MMIO(_ICL_PORT_PCS_DW_GRP(1, port))
 #define ICL_PORT_PCS_DW1_LN0(port)     _MMIO(_ICL_PORT_PCS_DW_LN(1, 0, port))
 #define   COMMON_KEEPER_EN             (1 << 26)
+#define   LATENCY_OPTIM_MASK           (0x3 << 2)
+#define   LATENCY_OPTIM_VAL(x)         ((x) << 2)
 
 /* CNL/ICL Port TX registers */
 #define _CNL_PORT_TX_AE_GRP_OFFSET             0x162340
-- 
2.22.0

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to