drm/msm/dp: Support the eDP modes given by panel
authorSankeerth Billakanti <quic_sbillaka@quicinc.com>
Mon, 25 Apr 2022 11:44:32 +0000 (17:14 +0530)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Sun, 1 May 2022 23:39:34 +0000 (02:39 +0300)
The eDP controller does not have a reliable way keep panel
powered on to read the sink capabilities. So, the controller
driver cannot validate if a mode can be supported by the
source. We will rely on the panel driver to populate only
the supported modes for now.

Signed-off-by: Sankeerth Billakanti <quic_sbillaka@quicinc.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Patchwork: https://patchwork.freedesktop.org/patch/483313/
Link: https://lore.kernel.org/r/1650887072-16652-5-git-send-email-quic_sbillaka@quicinc.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drivers/gpu/drm/msm/dp/dp_display.c

index 0e52c0a..c388323 100644 (file)
@@ -980,6 +980,14 @@ enum drm_mode_status dp_bridge_mode_valid(struct drm_bridge *bridge,
                return -EINVAL;
        }
 
+       /*
+        * The eDP controller currently does not have a reliable way of
+        * enabling panel power to read sink capabilities. So, we rely
+        * on the panel driver to populate only supported modes for now.
+        */
+       if (dp->is_edp)
+               return MODE_OK;
+
        if (mode->clock > DP_MAX_PIXEL_CLK_KHZ)
                return MODE_BAD;