We are currently observing problems with LG panel when Panel Replay is
enabled. Add new quirk DP_DPCD_QUIRK_NO_PANEL_REPLAY and set it for
the problematic panel model.

Signed-off-by: Jouni Högander <[email protected]>
---
 drivers/gpu/drm/display/drm_dp_helper.c | 2 ++
 include/drm/display/drm_dp_helper.h     | 8 ++++++++
 2 files changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/display/drm_dp_helper.c 
b/drivers/gpu/drm/display/drm_dp_helper.c
index a697cc227e28..96c8b53ba4e4 100644
--- a/drivers/gpu/drm/display/drm_dp_helper.c
+++ b/drivers/gpu/drm/display/drm_dp_helper.c
@@ -2540,6 +2540,8 @@ static const struct dpcd_quirk dpcd_quirk_list[] = {
        { OUI(0x00, 0x22, 0xb9), DEVICE_ID_ANY, true, 
BIT(DP_DPCD_QUIRK_CONSTANT_N) },
        /* LG LP140WF6-SPM1 eDP panel */
        { OUI(0x00, 0x22, 0xb9), DEVICE_ID('s', 'i', 'v', 'a', 'r', 'T'), 
false, BIT(DP_DPCD_QUIRK_CONSTANT_N) },
+       /* Problems observed with LG panel */
+       { OUI(0x00, 0x22, 0xb9), DEVICE_ID_ANY, false, 
BIT(DP_DPCD_QUIRK_NO_PANEL_REPLAY) },
        /* Apple panels need some additional handling to support PSR */
        { OUI(0x00, 0x10, 0xfa), DEVICE_ID_ANY, false, 
BIT(DP_DPCD_QUIRK_NO_PSR) },
        /* CH7511 seems to leave SINK_COUNT zeroed */
diff --git a/include/drm/display/drm_dp_helper.h 
b/include/drm/display/drm_dp_helper.h
index 1d0acd58f486..ca36b5a9c1b6 100644
--- a/include/drm/display/drm_dp_helper.h
+++ b/include/drm/display/drm_dp_helper.h
@@ -824,6 +824,14 @@ enum drm_dp_quirk {
         * driver still need to implement proper handling for such device.
         */
        DP_DPCD_QUIRK_NO_PSR,
+       /**
+        * @DP_DPCD_QUIRK_NO_PANEL_REPLAY:
+        *
+        * The device does not support Panel Replay even if reports
+        * that it supports or driver still need to implement proper
+        * handling for such device.
+        */
+       DP_DPCD_QUIRK_NO_PANEL_REPLAY,
        /**
         * @DP_DPCD_QUIRK_NO_SINK_COUNT:
         *
-- 
2.43.0

Reply via email to