@@ -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);
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 <suraj.kandpal@intel.com> --- drivers/gpu/drm/i915/display/intel_hotplug_irq.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)