[PATCH v3 6/6] drm/msm/dp: Remove the hpd init delay for eDP

From: Sankeerth Billakanti
Date: Wed Oct 27 2021 - 21:55:54 EST


DP driver needs a 10 second delay before phy_init so that
the usb combo phy initializes and sets up the necessary
clocks for usb devices such as keyboard and mouse.

eDP controller uses a standalone phy and need not wait for
phy initialization from any other component. This change
will remove the delay for eDP controller.

Signed-off-by: Sankeerth Billakanti <quic_sbillaka@xxxxxxxxxxx>
---
drivers/gpu/drm/msm/dp/dp_display.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
index 61385d6..de6a1fd 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -1430,6 +1430,7 @@ void __exit msm_dp_unregister(void)
void msm_dp_irq_postinstall(struct msm_dp *dp_display)
{
struct dp_display_private *dp;
+ u8 delay;

if (!dp_display)
return;
@@ -1438,7 +1439,15 @@ void msm_dp_irq_postinstall(struct msm_dp *dp_display)

dp_hpd_event_setup(dp);

- dp_add_event(dp, EV_HPD_INIT_SETUP, 0, 100);
+ if (dp->dp_display.connector_type == DRM_MODE_CONNECTOR_eDP) {
+ /* eDP does not need any delay before phy init */
+ delay = 0;
+ } else {
+ /* DP needs 10 second delay to let usb combo phy initialize */
+ delay = 100;
+ }
+
+ dp_add_event(dp, EV_HPD_INIT_SETUP, 0, delay);
}

void msm_dp_debugfs_init(struct msm_dp *dp_display, struct drm_minor *minor)
--
2.7.4