diff options
Diffstat (limited to 'drivers/usb/host/ehci-fsl.c')
-rw-r--r-- | drivers/usb/host/ehci-fsl.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c index c6012d6cd527..59f90f76ee31 100644 --- a/drivers/usb/host/ehci-fsl.c +++ b/drivers/usb/host/ehci-fsl.c | |||
@@ -198,6 +198,16 @@ static void mpc83xx_usb_setup(struct usb_hcd *hcd) | |||
198 | mpc83xx_setup_phy(ehci, pdata->phy_mode, 0); | 198 | mpc83xx_setup_phy(ehci, pdata->phy_mode, 0); |
199 | 199 | ||
200 | if (pdata->operating_mode == FSL_USB2_MPH_HOST) { | 200 | if (pdata->operating_mode == FSL_USB2_MPH_HOST) { |
201 | unsigned int chip, rev, svr; | ||
202 | |||
203 | svr = mfspr(SPRN_SVR); | ||
204 | chip = svr >> 16; | ||
205 | rev = (svr >> 4) & 0xf; | ||
206 | |||
207 | /* Deal with USB Erratum #14 on MPC834x Rev 1.0 & 1.1 chips */ | ||
208 | if ((rev == 1) && (chip >= 0x8050) && (chip <= 0x8055)) | ||
209 | ehci->has_fsl_port_bug = 1; | ||
210 | |||
201 | if (pdata->port_enables & FSL_USB2_PORT0_ENABLED) | 211 | if (pdata->port_enables & FSL_USB2_PORT0_ENABLED) |
202 | mpc83xx_setup_phy(ehci, pdata->phy_mode, 0); | 212 | mpc83xx_setup_phy(ehci, pdata->phy_mode, 0); |
203 | if (pdata->port_enables & FSL_USB2_PORT1_ENABLED) | 213 | if (pdata->port_enables & FSL_USB2_PORT1_ENABLED) |