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