diff mbox series

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

Message ID 1635386088-18089-7-git-send-email-quic_sbillaka@quicinc.com (mailing list archive)
State New, archived
Headers show
Series Add support for eDP controller on SC7280 | expand

Commit Message

Sankeerth Billakanti (QUIC) Oct. 28, 2021, 1:54 a.m. UTC
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@quicinc.com>
---
 drivers/gpu/drm/msm/dp/dp_display.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Comments

Kuogee Hsieh Oct. 29, 2021, 5:20 p.m. UTC | #1
On 2021-10-27 23:38, Stephen Boyd wrote:
> Quoting Sankeerth Billakanti (2021-10-27 18:54:48)
>> 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@quicinc.com>
>> ---
>>  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
>> @@ -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 */
> 
> This seems to be a different approach to the patch Kuogee sent a week 
> or
> two ago. Can we figure out what's wrong with the DP phy starting before
> the USB phy? I suppose this patch is OK as a temporary hack to keep
> moving with eDP, but we really need to figure out what's wrong with DP
> so this delay can be removed entirely. Has any progress been made on
> that?
> 
Sankeerth,
Can you drop this patch for now.
Let's discuss more.

>> +               delay = 100;
>> +       }
>> +
>> +       dp_add_event(dp, EV_HPD_INIT_SETUP, 0, delay);
diff mbox series

Patch

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)