2023-12-15 07:35:32

by Chunfeng Yun

[permalink] [raw]
Subject: [PATCH v2 1/3] dt-bindings: usb: mtk-xhci: add a property for Gen1 isoc-in transfer issue

For Gen1 isoc-in endpoint on controller before about SSUSB IPM v1.6.0, it
still send out unexpected ACK after receiving a short packet in burst
transfer, this will cause an exception on connected device, specially for
a 4k camera.
Add a quirk property "rx-fifo-depth" to work around this hardware issue,
prefer to use 2;
The side-effect is that may cause performance drop about 10%, including
bulk transfer.

Signed-off-by: Chunfeng Yun <[email protected]>
---
v2: change 'mediatek,rxfifo-depth' to 'rx-fifo-depth'
---
.../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml
index e9644e333d78..e44a71acb5c0 100644
--- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml
+++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml
@@ -124,6 +124,18 @@ properties:
defined in the xHCI spec on MTK's controller.
default: 5000

+ rx-fifo-depth:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description:
+ It is a quirk used to work around Gen1 isoc-in endpoint transfer issue
+ that still send out unexpected ACK after device finish the burst transfer
+ with a short packet and cause an exception, specially on a 4K camera
+ device, it happens on controller before about IPM v1.6.0; the side-effect
+ is that may cause performance drop about 10%, include bulk transfer,
+ prefer to use 2 here.
+ minimum: 0
+ maximum: 3
+
# the following properties are only used for case 1
wakeup-source:
description: enable USB remote wakeup, see power/wakeup-source.txt
--
2.18.0



2023-12-15 07:37:02

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 1/3] dt-bindings: usb: mtk-xhci: add a property for Gen1 isoc-in transfer issue

On 15/12/2023 08:34, Chunfeng Yun wrote:
> For Gen1 isoc-in endpoint on controller before about SSUSB IPM v1.6.0, it
> still send out unexpected ACK after receiving a short packet in burst
> transfer, this will cause an exception on connected device, specially for
> a 4k camera.
> Add a quirk property "rx-fifo-depth" to work around this hardware issue,
> prefer to use 2;
> The side-effect is that may cause performance drop about 10%, including
> bulk transfer.
>
> Signed-off-by: Chunfeng Yun <[email protected]>
> ---
> v2: change 'mediatek,rxfifo-depth' to 'rx-fifo-depth'
> ---
> .../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml
> index e9644e333d78..e44a71acb5c0 100644
> --- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml
> +++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml
> @@ -124,6 +124,18 @@ properties:
> defined in the xHCI spec on MTK's controller.
> default: 5000
>
> + rx-fifo-depth:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + It is a quirk used to work around Gen1 isoc-in endpoint transfer issue
> + that still send out unexpected ACK after device finish the burst transfer
> + with a short packet and cause an exception, specially on a 4K camera
> + device, it happens on controller before about IPM v1.6.0; the side-effect
> + is that may cause performance drop about 10%, include bulk transfer,
> + prefer to use 2 here.

What is the meaning of 0-3? bytes? words?

> + minimum: 0
> + maximum: 3


Best regards,
Krzysztof


2023-12-20 02:05:54

by Chunfeng Yun

[permalink] [raw]
Subject: Re: [PATCH v2 1/3] dt-bindings: usb: mtk-xhci: add a property for Gen1 isoc-in transfer issue

On Fri, 2023-12-15 at 08:36 +0100, Krzysztof Kozlowski wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> On 15/12/2023 08:34, Chunfeng Yun wrote:
> > For Gen1 isoc-in endpoint on controller before about SSUSB IPM
> v1.6.0, it
> > still send out unexpected ACK after receiving a short packet in
> burst
> > transfer, this will cause an exception on connected device,
> specially for
> > a 4k camera.
> > Add a quirk property "rx-fifo-depth" to work around this hardware
> issue,
> > prefer to use 2;
> > The side-effect is that may cause performance drop about 10%,
> including
> > bulk transfer.
> >
> > Signed-off-by: Chunfeng Yun <[email protected]>
> > ---
> > v2: change 'mediatek,rxfifo-depth' to 'rx-fifo-depth'
> > ---
> > .../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 12
> ++++++++++++
> > 1 file changed, 12 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-
> xhci.yaml b/Documentation/devicetree/bindings/usb/mediatek,mtk-
> xhci.yaml
> > index e9644e333d78..e44a71acb5c0 100644
> > --- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml
> > +++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml
> > @@ -124,6 +124,18 @@ properties:
> > defined in the xHCI spec on MTK's controller.
> > default: 5000
> >
> > + rx-fifo-depth:
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + description:
> > + It is a quirk used to work around Gen1 isoc-in endpoint
> transfer issue
> > + that still send out unexpected ACK after device finish the
> burst transfer
> > + with a short packet and cause an exception, specially on a
> 4K camera
> > + device, it happens on controller before about IPM v1.6.0;
> the side-effect
> > + is that may cause performance drop about 10%, include bulk
> transfer,
> > + prefer to use 2 here.
>
> What is the meaning of 0-3? bytes? words?
0 - 1K bytes;
3 - 4K bytes;
I will add this in description

>
> > + minimum: 0
> > + maximum: 3
>
>
> Best regards,
> Krzysztof
>
>

2023-12-20 07:27:34

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 1/3] dt-bindings: usb: mtk-xhci: add a property for Gen1 isoc-in transfer issue

On 20/12/2023 03:05, Chunfeng Yun (云春峰) wrote:
> On Fri, 2023-12-15 at 08:36 +0100, Krzysztof Kozlowski wrote:
>>
>> External email : Please do not click links or open attachments until
>> you have verified the sender or the content.
>> On 15/12/2023 08:34, Chunfeng Yun wrote:
>>> For Gen1 isoc-in endpoint on controller before about SSUSB IPM
>> v1.6.0, it
>>> still send out unexpected ACK after receiving a short packet in
>> burst
>>> transfer, this will cause an exception on connected device,
>> specially for
>>> a 4k camera.
>>> Add a quirk property "rx-fifo-depth" to work around this hardware
>> issue,
>>> prefer to use 2;
>>> The side-effect is that may cause performance drop about 10%,
>> including
>>> bulk transfer.
>>>
>>> Signed-off-by: Chunfeng Yun <[email protected]>
>>> ---
>>> v2: change 'mediatek,rxfifo-depth' to 'rx-fifo-depth'
>>> ---
>>> .../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 12
>> ++++++++++++
>>> 1 file changed, 12 insertions(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-
>> xhci.yaml b/Documentation/devicetree/bindings/usb/mediatek,mtk-
>> xhci.yaml
>>> index e9644e333d78..e44a71acb5c0 100644
>>> --- a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml
>>> +++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml
>>> @@ -124,6 +124,18 @@ properties:
>>> defined in the xHCI spec on MTK's controller.
>>> default: 5000
>>>
>>> + rx-fifo-depth:
>>> + $ref: /schemas/types.yaml#/definitions/uint32
>>> + description:
>>> + It is a quirk used to work around Gen1 isoc-in endpoint
>> transfer issue
>>> + that still send out unexpected ACK after device finish the
>> burst transfer
>>> + with a short packet and cause an exception, specially on a
>> 4K camera
>>> + device, it happens on controller before about IPM v1.6.0;
>> the side-effect
>>> + is that may cause performance drop about 10%, include bulk
>> transfer,
>>> + prefer to use 2 here.
>>
>> What is the meaning of 0-3? bytes? words?
> 0 - 1K bytes;
> 3 - 4K bytes;
> I will add this in description

No, don't add. Just use correct values. 0 means 0 words or bytes. Not
1000 bytes.

Best regards,
Krzysztof


2023-12-27 02:01:07

by Chunfeng Yun

[permalink] [raw]
Subject: Re: [PATCH v2 1/3] dt-bindings: usb: mtk-xhci: add a property for Gen1 isoc-in transfer issue

On Wed, 2023-12-20 at 08:25 +0100, Krzysztof Kozlowski wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> On 20/12/2023 03:05, Chunfeng Yun (云春峰) wrote:
> > On Fri, 2023-12-15 at 08:36 +0100, Krzysztof Kozlowski wrote:
> >>
> >> External email : Please do not click links or open attachments
> until
> >> you have verified the sender or the content.
> >> On 15/12/2023 08:34, Chunfeng Yun wrote:
> >>> For Gen1 isoc-in endpoint on controller before about SSUSB IPM
> >> v1.6.0, it
> >>> still send out unexpected ACK after receiving a short packet in
> >> burst
> >>> transfer, this will cause an exception on connected device,
> >> specially for
> >>> a 4k camera.
> >>> Add a quirk property "rx-fifo-depth" to work around this hardware
> >> issue,
> >>> prefer to use 2;
> >>> The side-effect is that may cause performance drop about 10%,
> >> including
> >>> bulk transfer.
> >>>
> >>> Signed-off-by: Chunfeng Yun <[email protected]>
> >>> ---
> >>> v2: change 'mediatek,rxfifo-depth' to 'rx-fifo-depth'
> >>> ---
> >>> .../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 12
> >> ++++++++++++
> >>> 1 file changed, 12 insertions(+)
> >>>
> >>> diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-
> >> xhci.yaml b/Documentation/devicetree/bindings/usb/mediatek,mtk-
> >> xhci.yaml
> >>> index e9644e333d78..e44a71acb5c0 100644
> >>> --- a/Documentation/devicetree/bindings/usb/mediatek,mtk-
> xhci.yaml
> >>> +++ b/Documentation/devicetree/bindings/usb/mediatek,mtk-
> xhci.yaml
> >>> @@ -124,6 +124,18 @@ properties:
> >>> defined in the xHCI spec on MTK's controller.
> >>> default: 5000
> >>>
> >>> + rx-fifo-depth:
> >>> + $ref: /schemas/types.yaml#/definitions/uint32
> >>> + description:
> >>> + It is a quirk used to work around Gen1 isoc-in endpoint
> >> transfer issue
> >>> + that still send out unexpected ACK after device finish the
> >> burst transfer
> >>> + with a short packet and cause an exception, specially on a
> >> 4K camera
> >>> + device, it happens on controller before about IPM v1.6.0;
> >> the side-effect
> >>> + is that may cause performance drop about 10%, include bulk
> >> transfer,
> >>> + prefer to use 2 here.
> >>
> >> What is the meaning of 0-3? bytes? words?
> > 0 - 1K bytes;
> > 3 - 4K bytes;
> > I will add this in description
>
> No, don't add. Just use correct values. 0 means 0 words or bytes. Not
> 1000 bytes.
Ok, I'll modify it;

Thanks
>
> Best regards,
> Krzysztof
>