[Intel-gfx] [PATCH 1/2] drm/i915/ddi: Align timeout for DDI_BUF_CTL active with Bspec
Ankit Nautiyal
ankit.k.nautiyal at intel.com
Sun Nov 27 05:22:31 UTC 2022
For Gen12+ wait for 1ms for Combo Phy and 3ms for TC Phy for
DDI_BUF_CTL to be active for TC phy. (Bspec:49190)
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 0f1ec2a98cc8..9e16db920bf2 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -186,6 +186,8 @@ static void intel_wait_ddi_buf_active(struct drm_i915_private *dev_priv,
enum port port)
{
int ret;
+ int timeout_us;
+ enum phy phy = intel_port_to_phy(dev_priv, port);
/* Wait > 518 usecs for DDI_BUF_CTL to be non idle */
if (DISPLAY_VER(dev_priv) < 10) {
@@ -193,8 +195,17 @@ static void intel_wait_ddi_buf_active(struct drm_i915_private *dev_priv,
return;
}
+ if (IS_DG2(dev_priv))
+ timeout_us = 1200;
+ else if (DISPLAY_VER(dev_priv) >= 12 && intel_phy_is_tc(dev_priv, phy))
+ timeout_us = 3000;
+ else if (DISPLAY_VER(dev_priv) >= 12)
+ timeout_us = 1000;
+ else
+ timeout_us = 500;
+
ret = _wait_for(!(intel_de_read(dev_priv, DDI_BUF_CTL(port)) &
- DDI_BUF_IS_IDLE), IS_DG2(dev_priv) ? 1200 : 500, 10, 10);
+ DDI_BUF_IS_IDLE), timeout_us, 10, 10);
if (ret)
drm_err(&dev_priv->drm, "Timeout waiting for DDI BUF %c to get active\n",
--
2.25.1
More information about the Intel-gfx
mailing list