diff options
author | Ramneek Mehresh <ramneek.mehresh@freescale.com> | 2013-04-16 08:41:19 (GMT) |
---|---|---|
committer | Fleming Andrew-AFLEMING <AFLEMING@freescale.com> | 2013-05-02 04:51:51 (GMT) |
commit | cb74e74b3f5bb0aeaa1a36ee20d311c671da02c8 (patch) | |
tree | daf10d2c01da919d6d473d509d14e2ad8630988d /drivers/usb/host/ehci-hub.c | |
parent | c4a4e6fbc411a53a25e653a14835bbda6f55a198 (diff) | |
download | linux-fsl-qoriq-cb74e74b3f5bb0aeaa1a36ee20d311c671da02c8.tar.xz |
fsl/usb: Workaround for USB erratum-A005275
Incoming packets are randomly corrucpted by h/w resulting
in varying errors. This workaround makes FS as default mode
in all affected socs by
- Disabling HS chirp signalling
- Forcing EPS field of all packets to FS
This errata does not affect FS mode.
Forces all HS devices to connect in FS mode for all socs
affected by this erratum:
P3041 and P2041 rev 1.0 and 1.1
P5020 and P5010 rev 1.0 and 2.0
P5040 and P1010 rev 1.0
Workaround can be disabled by mentioning "no_erratum_a005275"
in hwconfig string (in u-boot command line)
Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Change-Id: Ie7b75b033220e4be44b5c769d7c187928d84dd6d
Reviewed-on: http://git.am.freescale.net:8181/1435
Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'drivers/usb/host/ehci-hub.c')
-rw-r--r-- | drivers/usb/host/ehci-hub.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c index 7d06e77..586b2d4 100644 --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c @@ -1064,6 +1064,13 @@ static int ehci_hub_control ( ehci->reset_done [wIndex] = jiffies + msecs_to_jiffies (50); } + + /* Force full-speed connect for FSL high-speed erratum; + * disable HS Chirp by setting PFSC bit + */ + if (ehci_has_fsl_hs_errata(ehci)) + temp |= (1 << PORTSC_FSL_PFSC); + ehci_writel(ehci, temp, status_reg); break; |