Message ID | 20231220025842.7082-1-chunfeng.yun@mediatek.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [v3,1/3] dt-bindings: usb: mtk-xhci: add a property for Gen1 isoc-in transfer issue | expand |
On 20/12/2023 03:58, 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 3k bytes; > The side-effect is that may cause performance drop about 10%, including > bulk transfer. > > Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> > --- > v3: add fifo depth unit, change the value range from 0-3 to 1-4 > 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..9478b7031796 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 3 here. The unit is 1K bytes. NAK. Read comments on previous submission. Best regards, Krzysztof
Il 20/12/23 08:38, Krzysztof Kozlowski ha scritto: > On 20/12/2023 03:58, 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 3k bytes; >> The side-effect is that may cause performance drop about 10%, including >> bulk transfer. >> >> Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> >> --- >> v3: add fifo depth unit, change the value range from 0-3 to 1-4 >> 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..9478b7031796 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 3 here. The unit is 1K bytes. > > NAK. Read comments on previous submission. > > Best regards, > Krzysztof > Chunfeng, I think the discussion was not clear for you, so I will try to give you a different explanation: this should be expressed in bytes, so 1000, or 1024, 2048, 4096, etc, and not 1/2/3/4/5/n. The driver shall then validate and map your bytes number to hardware register value and subsequently write to the registers. Cheers, Angleo
On Wed, 2023-12-20 at 08:38 +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:58, 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 3k bytes; > > The side-effect is that may cause performance drop about 10%, > including > > bulk transfer. > > > > Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> > > --- > > v3: add fifo depth unit, change the value range from 0-3 to 1-4 > > 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..9478b7031796 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 3 here. The unit is 1K bytes. > > NAK. Read comments on previous submission. Ok, will do it today Thanks a lot > > Best regards, > Krzysztof >
On Wed, 2023-12-20 at 11:40 +0100, AngeloGioacchino Del Regno wrote: > Il 20/12/23 08:38, Krzysztof Kozlowski ha scritto: > > On 20/12/2023 03:58, 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 3k bytes; > > > The side-effect is that may cause performance drop about 10%, > > > including > > > bulk transfer. > > > > > > Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> > > > --- > > > v3: add fifo depth unit, change the value range from 0-3 to 1-4 > > > 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..9478b7031796 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 3 here. The unit is 1K bytes. > > > > NAK. Read comments on previous submission. > > > > Best regards, > > Krzysztof > > > > Chunfeng, I think the discussion was not clear for you, so I will try > to give > you a different explanation: this should be expressed in bytes, so > 1000, or 1024, > 2048, 4096, etc, and not 1/2/3/4/5/n. > > The driver shall then validate and map your bytes number to hardware > register > value and subsequently write to the registers. Got it, I left out Krzysztof's comments when sent v3 series, Thanks a lot > > Cheers, > Angleo
diff --git a/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml b/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml index e9644e333d78..9478b7031796 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 3 here. The unit is 1K bytes. + minimum: 1 + maximum: 4 + # the following properties are only used for case 1 wakeup-source: description: enable USB remote wakeup, see power/wakeup-source.txt
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 3k bytes; The side-effect is that may cause performance drop about 10%, including bulk transfer. Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> --- v3: add fifo depth unit, change the value range from 0-3 to 1-4 v2: change 'mediatek,rxfifo-depth' to 'rx-fifo-depth' --- .../devicetree/bindings/usb/mediatek,mtk-xhci.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+)