Re: [PATCH] drm/msm/dp: Shorten SETUP timeout

From: Bjorn Andersson
Date: Thu Oct 07 2021 - 16:04:49 EST


On Thu 07 Oct 12:51 PDT 2021, khsieh@xxxxxxxxxxxxxx wrote:

> On 2021-10-06 10:31, Bjorn Andersson wrote:
> > On Wed 06 Oct 08:37 PDT 2021, khsieh@xxxxxxxxxxxxxx wrote:
> >
> > > On 2021-10-05 19:10, Bjorn Andersson wrote:
> > > > On Tue 05 Oct 16:04 PDT 2021, khsieh@xxxxxxxxxxxxxx wrote:
> > > >
> > > > > On 2021-10-05 15:36, Stephen Boyd wrote:
> > > > > > Quoting Bjorn Andersson (2021-10-05 14:40:38)
> > > > > > > On Tue 05 Oct 11:45 PDT 2021, Stephen Boyd wrote:
> > > > > > >
> > > > > > > > Quoting Bjorn Andersson (2021-10-04 19:37:50)
> > > > > > > > > Found in the middle of a patch from Sankeerth was the reduction of the
> > > > > > > > > INIT_SETUP timeout from 10s to 100ms. Upon INIT_SETUP timeout the host
> > > > > > > > > is initalized and HPD interrupt start to be serviced, so in the case of
> > > > > > > > > eDP this reduction improves the user experience dramatically - i.e.
> > > > > > > > > removes 9.9s of bland screen time at boot.
> > > > > > > > >
> > > > > > > > > Suggested-by: Sankeerth Billakanti <sbillaka@xxxxxxxxxxxxxx>
> > > > > > > > > Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
> > > > > > > > > ---
> > > > > > > >
> > > > > > > > Any Fixes tag? BTW, the delay design is pretty convoluted. I had to go
> > > > > > > > re-read the code a couple times to understand that it's waiting 100ms
> > > > > > > > times the 'delay' number. Whaaaaat?
> > > > > > > >
> > > > > > >
> > > > > > > I assume you're happy with the current 10s delay on the current
> > > > > > > devices, so I don't think we should push for this to be backported.
> > > > > > > I have no need for it to be backported on my side at least.
> > > > > > >
> > > > > >
> > > > > > Sure. Fixes tag != backported to stable trees but it is close.
> > > > > >
> > > > > > > > Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx>
> > > > > > >
> > > > > dp_add_event(dp, EV_HPD_INIT_SETUP, 0, 1); <== to 100ms
> > > > >
> > > > > This patch will prevent usb3 from working due to dp driver
> > > > > initialize phy
> > > > > earlier than usb3 which cause timeout error at power up usb3 phy
> > > > > when both
> > > > > edp and dp are enabled.
> > > >
> > > > Can you please help me understand what you mean here, I use this on my
> > > > sc8180x with both eDP and USB-C/DP right now. What is it that doesn't
> > > > work? Or am I just lucky in some race condition?
> > > >
> > > > Thanks,
> > > > Bjorn
> > > >
> > > The problem is seen at sc7280.
> > > Apple dongle have both hdmi and usb port.
> > > plug Apple dongle into type-c, then plug DP into apple's hdmi port
> > > and usb
> > > mouse into apple's usb port.
> > > If edp enabled at this time, then usb mouse will not work due to
> > > timeout at
> > > phy power up.
> > >
> >
> > Okay, so you're saying that if the DP driver invokes phy_power_on()
> > before the USB driver does, USB initialization fails (or at least USB
> > doesn't work)?
>
> if dp driver call qcom_qmp_phy_init() before usb3 call qcom_qmp_phy_init(),
> usb3 driver will timeout at readl_poll_timeout(status, val, (val & mask) ==
> ready, 10, PHY_INIT_COMPLETE_TIMEOUT) of qcom_qmp_phy_power_on().

Thanks, I will try to reproduce this on my side. So the 10 seconds here
is strictly to give good enough time for the dwc3 driver to probe...

Any idea why you're saying that this is specific to sc7280, what changed
from sc7180?

> >
> > Sounds like something we need to work out in the QMP phy driver. Do you
> > have any more details about what's going wrong.
> >
> >
> > Also, I've seen various references to said "Apple dongle", do you have a
> > link to the exact one you're testing with so I can pick one up for
> > testing purposes as well?
>
> Apple A2119 hdmi+usb dongle.
> https://www.amazon.com/Apple-USB-C-Digital-Multiport-Adapter/dp/B07WF96FY5/ref=sr_1_2?dchild=1&keywords=apple+a2119&qid=1633636227&sr=8-2
>

Thanks,
Bjorn

> >
> > Regards,
> > Bjorn
> >
> > > > > I had prepared a patch (drm/msm/dp: do not initialize combo phy
> > > > > until plugin
> > > > > interrupt) to fix this problem.
> > > > > Unfortunately, my patch is depend on Bjorn's patch (PATCH v3 3/5]
> > > > > drm/msm/dp: Support up to 3 DP controllers).
> > > > > I will submit my patch for review once Bjorn's patches merged in.
> > > > > Therefore I would think this patch should go after both Bjorn's
> > > > > patches and
> > > > > my patch.
> > > > >
> > > > >
> > > > >