diff mbox series

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

Message ID 20231215073431.8512-1-chunfeng.yun@mediatek.com
State New
Headers show
Series [v2,1/3] dt-bindings: usb: mtk-xhci: add a property for Gen1 isoc-in transfer issue | expand

Commit Message

Chunfeng Yun (云春峰) Dec. 15, 2023, 7:34 a.m. UTC
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 <chunfeng.yun@mediatek.com>
---
v2: change 'mediatek,rxfifo-depth' to 'rx-fifo-depth'
---
 .../devicetree/bindings/usb/mediatek,mtk-xhci.yaml   | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Chunfeng Yun (云春峰) Dec. 27, 2023, 2 a.m. UTC | #1
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 <chunfeng.yun@mediatek.com>
> >>> ---
> >>> 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
>
diff mbox series

Patch

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