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 (mailing list archive)
State Accepted
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
>
Krishna Kurapati June 4, 2024, 8:04 a.m. UTC | #2
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."

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.

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
>>
>
Dmitry Baryshkov June 4, 2024, 9:46 a.m. UTC | #3
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 | #4
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
>>>>
>>>
>
Dmitry Baryshkov June 4, 2024, 10:05 a.m. UTC | #5
On Tue, 4 Jun 2024 at 12:58, Krishna Kurapati PSSNV
<quic_kriskura@quicinc.com> wrote:
>
>
>
> 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.

Ack, this is fine from my point of view. Thank you!

>
> Regards,
> Krishna,
>
> >
> >> I can update thread with more info once we get some data from Synopsys.
Doug Anderson June 4, 2024, 2:31 p.m. UTC | #6
Hi,

On Mon, Jun 3, 2024 at 11:07 PM Krishna Kurapati
<quic_kriskura@quicinc.com> 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.
>
> 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.

It was a minor change so you could have kept my tags (especially the
Tested-by, which isn't affected by the commit text), but in any case:

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
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";