diff mbox series

[v2,1/2] arm64: dts: qcom: sc7180: Disable SuperSpeed instances in park mode

Message ID 20240604060659.1449278-2-quic_kriskura@quicinc.com
State Accepted
Commit 5b8baed4b88132c12010ce6ca1b56f00d122e376
Headers show
Series Disable SS instances in park mode for SC7180/ SC7280 | expand

Commit Message

Krishna Kurapati June 4, 2024, 6:06 a.m. UTC
On SC7180, in host mode, it is observed that stressing out controller
results in HC died error:

 xhci-hcd.12.auto: xHCI host not responding to stop endpoint command
 xhci-hcd.12.auto: xHCI host controller not responding, assume dead
 xhci-hcd.12.auto: HC died; cleaning up

And at this instant only restarting the host mode fixes it. Disable
SuperSpeed instances in park mode for SC7180 to mitigate this issue.

Reported-by: Doug Anderson <dianders@google.com>
Cc: <stable@vger.kernel.org>
Fixes: 0b766e7fe5a2 ("arm64: dts: qcom: sc7180: Add USB related nodes")
Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
---
Removed RB/TB tag from Doug as commit text was updated. 

 arch/arm64/boot/dts/qcom/sc7180.dtsi | 1 +
 1 file changed, 1 insertion(+)

Comments

Dmitry Baryshkov June 4, 2024, 7:46 a.m. UTC | #1
On Tue, Jun 04, 2024 at 11:36:58AM +0530, Krishna Kurapati wrote:
> On SC7180, in host mode, it is observed that stressing out controller
> results in HC died error:
> 
>  xhci-hcd.12.auto: xHCI host not responding to stop endpoint command
>  xhci-hcd.12.auto: xHCI host controller not responding, assume dead
>  xhci-hcd.12.auto: HC died; cleaning up
> 
> And at this instant only restarting the host mode fixes it. Disable
> SuperSpeed instances in park mode for SC7180 to mitigate this issue.

Let me please repeat the question from v1:

Just out of curiosity, what is the park mode?

> 
> Reported-by: Doug Anderson <dianders@google.com>
> Cc: <stable@vger.kernel.org>
> Fixes: 0b766e7fe5a2 ("arm64: dts: qcom: sc7180: Add USB related nodes")
> Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
> ---
> Removed RB/TB tag from Doug as commit text was updated. 
> 
>  arch/arm64/boot/dts/qcom/sc7180.dtsi | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> index 2b481e20ae38..cc93b5675d5d 100644
> --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> @@ -3063,6 +3063,7 @@ usb_1_dwc3: usb@a600000 {
>  				iommus = <&apps_smmu 0x540 0>;
>  				snps,dis_u2_susphy_quirk;
>  				snps,dis_enblslpm_quirk;
> +				snps,parkmode-disable-ss-quirk;
>  				phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
>  				phy-names = "usb2-phy", "usb3-phy";
>  				maximum-speed = "super-speed";
> -- 
> 2.34.1
>
Dmitry Baryshkov June 4, 2024, 9:46 a.m. UTC | #2
On Tue, Jun 04, 2024 at 01:34:44PM +0530, Krishna Kurapati PSSNV wrote:
> 
> 
> On 6/4/2024 1:16 PM, Dmitry Baryshkov wrote:
> > On Tue, Jun 04, 2024 at 11:36:58AM +0530, Krishna Kurapati wrote:
> > > On SC7180, in host mode, it is observed that stressing out controller
> > > results in HC died error:
> > > 
> > >   xhci-hcd.12.auto: xHCI host not responding to stop endpoint command
> > >   xhci-hcd.12.auto: xHCI host controller not responding, assume dead
> > >   xhci-hcd.12.auto: HC died; cleaning up
> > > 
> > > And at this instant only restarting the host mode fixes it. Disable
> > > SuperSpeed instances in park mode for SC7180 to mitigate this issue.
> > 
> > Let me please repeat the question from v1:
> > 
> > Just out of curiosity, what is the park mode?
> > 
> 
> Sorry, Missed the mail in v1.
> 
> Databook doesn't give much info on this bit (SS case, commit 7ba6b09fda5e0)
> but it does in HS case (commit d21a797a3eeb2).
> 
> From the mail we received from Synopsys, they described it as follows:
> 
> "Park mode feature allows better throughput on the USB in cases where a
> single EP is active. It increases the degree of pipelining within the
> controller as long as a single EP is active."

Thank you!

> 
> Even in the current debug for this test case, Synopsys suggested us to set
> this bit to avoid the controller being dead and we are waiting for further
> answers from them.

Should these quirks be enabled for other Qualcomm platforms? If so,
which platforms should get it?

> I can update thread with more info once we get some data from Synopsys.
> 
> Regards,
> Krishna,
> 
> > > 
> > > Reported-by: Doug Anderson <dianders@google.com>
> > > Cc: <stable@vger.kernel.org>
> > > Fixes: 0b766e7fe5a2 ("arm64: dts: qcom: sc7180: Add USB related nodes")
> > > Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
> > > ---
> > > Removed RB/TB tag from Doug as commit text was updated.
> > > 
> > >   arch/arm64/boot/dts/qcom/sc7180.dtsi | 1 +
> > >   1 file changed, 1 insertion(+)
> > > 
> > > diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > > index 2b481e20ae38..cc93b5675d5d 100644
> > > --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > > +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
> > > @@ -3063,6 +3063,7 @@ usb_1_dwc3: usb@a600000 {
> > >   				iommus = <&apps_smmu 0x540 0>;
> > >   				snps,dis_u2_susphy_quirk;
> > >   				snps,dis_enblslpm_quirk;
> > > +				snps,parkmode-disable-ss-quirk;
> > >   				phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
> > >   				phy-names = "usb2-phy", "usb3-phy";
> > >   				maximum-speed = "super-speed";
> > > -- 
> > > 2.34.1
> > > 
> >
Krishna Kurapati June 4, 2024, 9:57 a.m. UTC | #3
On 6/4/2024 3:16 PM, Dmitry Baryshkov wrote:
> On Tue, Jun 04, 2024 at 01:34:44PM +0530, Krishna Kurapati PSSNV wrote:
>>
>>
>> On 6/4/2024 1:16 PM, Dmitry Baryshkov wrote:
>>> On Tue, Jun 04, 2024 at 11:36:58AM +0530, Krishna Kurapati wrote:
>>>> On SC7180, in host mode, it is observed that stressing out controller
>>>> results in HC died error:
>>>>
>>>>    xhci-hcd.12.auto: xHCI host not responding to stop endpoint command
>>>>    xhci-hcd.12.auto: xHCI host controller not responding, assume dead
>>>>    xhci-hcd.12.auto: HC died; cleaning up
>>>>
>>>> And at this instant only restarting the host mode fixes it. Disable
>>>> SuperSpeed instances in park mode for SC7180 to mitigate this issue.
>>>
>>> Let me please repeat the question from v1:
>>>
>>> Just out of curiosity, what is the park mode?
>>>
>>
>> Sorry, Missed the mail in v1.
>>
>> Databook doesn't give much info on this bit (SS case, commit 7ba6b09fda5e0)
>> but it does in HS case (commit d21a797a3eeb2).
>>
>>  From the mail we received from Synopsys, they described it as follows:
>>
>> "Park mode feature allows better throughput on the USB in cases where a
>> single EP is active. It increases the degree of pipelining within the
>> controller as long as a single EP is active."
> 
> Thank you!
> 
>>
>> Even in the current debug for this test case, Synopsys suggested us to set
>> this bit to avoid the controller being dead and we are waiting for further
>> answers from them.
> 
> Should these quirks be enabled for other Qualcomm platforms? If so,
> which platforms should get it?

In downstream we enable this for Gen-1 platforms. On v1 discussion 
thread, I agreed to send another series for other platforms.

I could've included it for others as well in this v2, but there are 
around 30 QC SoCs (or more) on upstream and many are very old. I need to 
go through all of them and figure out which ones are Gen-1. To not delay 
this for SC7280 and SC7180 (as chrome platforms need it right away), I 
sent v2 only for these two targets.

Regards,
Krishna,

> 
>> I can update thread with more info once we get some data from Synopsys.
>>
>> Regards,
>> Krishna,
>>
>>>>
>>>> Reported-by: Doug Anderson <dianders@google.com>
>>>> Cc: <stable@vger.kernel.org>
>>>> Fixes: 0b766e7fe5a2 ("arm64: dts: qcom: sc7180: Add USB related nodes")
>>>> Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com>
>>>> ---
>>>> Removed RB/TB tag from Doug as commit text was updated.
>>>>
>>>>    arch/arm64/boot/dts/qcom/sc7180.dtsi | 1 +
>>>>    1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
>>>> index 2b481e20ae38..cc93b5675d5d 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
>>>> @@ -3063,6 +3063,7 @@ usb_1_dwc3: usb@a600000 {
>>>>    				iommus = <&apps_smmu 0x540 0>;
>>>>    				snps,dis_u2_susphy_quirk;
>>>>    				snps,dis_enblslpm_quirk;
>>>> +				snps,parkmode-disable-ss-quirk;
>>>>    				phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
>>>>    				phy-names = "usb2-phy", "usb3-phy";
>>>>    				maximum-speed = "super-speed";
>>>> -- 
>>>> 2.34.1
>>>>
>>>
>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index 2b481e20ae38..cc93b5675d5d 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -3063,6 +3063,7 @@  usb_1_dwc3: usb@a600000 {
 				iommus = <&apps_smmu 0x540 0>;
 				snps,dis_u2_susphy_quirk;
 				snps,dis_enblslpm_quirk;
+				snps,parkmode-disable-ss-quirk;
 				phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
 				phy-names = "usb2-phy", "usb3-phy";
 				maximum-speed = "super-speed";