Reduce SHPD_CNT to 250us for Display12 to implement WA 14013120569
in a alternative way. Its not what the Wa asks to do but has the same
effect which would be detecting shpd when it is less than 250us and
this would be okay as it lines up with DP1.4a(Table3-4) spec.

Signed-off-by: Suraj Kandpal <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_hotplug_irq.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_hotplug_irq.c 
b/drivers/gpu/drm/i915/display/intel_hotplug_irq.c
index 2c4e946d5575..05a9e82cac75 100644
--- a/drivers/gpu/drm/i915/display/intel_hotplug_irq.c
+++ b/drivers/gpu/drm/i915/display/intel_hotplug_irq.c
@@ -849,7 +849,12 @@ static void icp_hpd_irq_setup(struct drm_i915_private 
*dev_priv)
        enabled_irqs = intel_hpd_enabled_irqs(dev_priv, 
dev_priv->display.hotplug.pch_hpd);
        hotplug_irqs = intel_hpd_hotplug_irqs(dev_priv, 
dev_priv->display.hotplug.pch_hpd);
 
-       if (INTEL_PCH_TYPE(dev_priv) <= PCH_TGP)
+       /*
+        * As an alternative to WA_14013120569 we reduce the value to 250us to 
be able to
+        * detect SHPD when an external display is connected. This is also 
expected of
+        * us as stated in DP1.4a Table 3-4.
+        */
+       if (INTEL_PCH_TYPE(dev_priv) < PCH_TGP)
                intel_uncore_write(&dev_priv->uncore, SHPD_FILTER_CNT, 
SHPD_FILTER_CNT_500_ADJ);
        else
                intel_uncore_write(&dev_priv->uncore, SHPD_FILTER_CNT, 
SHPD_FILTER_CNT_250);
-- 
2.43.2

Reply via email to