diff mbox series

[14/15] usb: dwc3: Add disabling of start_transfer failure quirk

Message ID 3c63b5f97343d276049e1d59ef2371160004b137.1515182391.git.thinhn@synopsys.com
State Changes Requested, archived
Headers show
Series usb: dwc3: Add new updates for DWC_usb31 | expand

Commit Message

Thinh Nguyen Jan. 5, 2018, 8:16 p.m. UTC
In DWC_usb31 version 1.70a-ea06 and prior needs a SW workaround for isoc
START TRANSFER command failure. However, some affected versions may have
RTL patches to fix this without a SW workaround. Add this quirk to
disable the SW workaround when it is not needed.

Synopsys STAR 9001202023: Wrong microframe number for isochronous IN
endpoints.

Cc: John Youn <johnyoun@synopsys.com>
Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
---
 Documentation/devicetree/bindings/usb/dwc3.txt | 3 +++
 1 file changed, 3 insertions(+)

Comments

Rob Herring (Arm) Jan. 9, 2018, 4:16 a.m. UTC | #1
On Fri, Jan 05, 2018 at 12:16:02PM -0800, Thinh Nguyen wrote:
> In DWC_usb31 version 1.70a-ea06 and prior needs a SW workaround for isoc
> START TRANSFER command failure. However, some affected versions may have
> RTL patches to fix this without a SW workaround. Add this quirk to
> disable the SW workaround when it is not needed.

I really think this one should be implied by compatible strings.

> Synopsys STAR 9001202023: Wrong microframe number for isochronous IN
> endpoints.
> 
> Cc: John Youn <johnyoun@synopsys.com>
> Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
> ---
>  Documentation/devicetree/bindings/usb/dwc3.txt | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
> index 02dde83d02fa..c03a3b363cde 100644
> --- a/Documentation/devicetree/bindings/usb/dwc3.txt
> +++ b/Documentation/devicetree/bindings/usb/dwc3.txt
> @@ -15,6 +15,9 @@ Optional properties:
>   - phys: from the *Generic PHY* bindings
>   - phy-names: from the *Generic PHY* bindings; supported names are "usb2-phy"
>  	or "usb3-phy".
> + - snps,dis_start_transfer_quirk: when set, disable isoc START TRANSFER command
> +			failure SW work-around for DWC_usb31 version 1.70a-ea06
> +			and prior.
>   - snps,usb3_lpm_capable: determines if platform is USB3 LPM capable
>   - snps,disable_scramble_quirk: true when SW should disable data scrambling.
>  	Only really useful for FPGA builds.
> -- 
> 2.11.0
> 
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Felipe Balbi Jan. 9, 2018, 8:45 a.m. UTC | #2
Hi,

Rob Herring <robh@kernel.org> writes:
> On Fri, Jan 05, 2018 at 12:16:02PM -0800, Thinh Nguyen wrote:
>> In DWC_usb31 version 1.70a-ea06 and prior needs a SW workaround for isoc
>> START TRANSFER command failure. However, some affected versions may have
>> RTL patches to fix this without a SW workaround. Add this quirk to
>> disable the SW workaround when it is not needed.
>
> I really think this one should be implied by compatible strings.

won't work for dwc3. Core driver has a single compatible string, also
this wouldn't work for PCI-based implementations.
Rob Herring (Arm) Jan. 11, 2018, 2:35 p.m. UTC | #3
On Tue, Jan 9, 2018 at 2:45 AM, Felipe Balbi <balbi@kernel.org> wrote:
>
> Hi,
>
> Rob Herring <robh@kernel.org> writes:
>> On Fri, Jan 05, 2018 at 12:16:02PM -0800, Thinh Nguyen wrote:
>>> In DWC_usb31 version 1.70a-ea06 and prior needs a SW workaround for isoc
>>> START TRANSFER command failure. However, some affected versions may have
>>> RTL patches to fix this without a SW workaround. Add this quirk to
>>> disable the SW workaround when it is not needed.
>>
>> I really think this one should be implied by compatible strings.
>
> won't work for dwc3. Core driver has a single compatible string, also
> this wouldn't work for PCI-based implementations.

Then you will have to look at the parent node (this is why the way
DWC3 was split is wrong) or make the compatible strings more specific.
That is the purpose of compatible strings.

For PCI, don't you have different VID/PIDs? If not how would quirks
work for non-DT systems.

Rob
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 02dde83d02fa..c03a3b363cde 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -15,6 +15,9 @@  Optional properties:
  - phys: from the *Generic PHY* bindings
  - phy-names: from the *Generic PHY* bindings; supported names are "usb2-phy"
 	or "usb3-phy".
+ - snps,dis_start_transfer_quirk: when set, disable isoc START TRANSFER command
+			failure SW work-around for DWC_usb31 version 1.70a-ea06
+			and prior.
  - snps,usb3_lpm_capable: determines if platform is USB3 LPM capable
  - snps,disable_scramble_quirk: true when SW should disable data scrambling.
 	Only really useful for FPGA builds.