From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Thu, 21 Jun 2012 18:57:56 +0200 Subject: [U-Boot] [PATCH v4 1/1] tegra: usb: Fix device enumeration problem of USB1 In-Reply-To: <4B9C9637D5087840A465BDCB251780E9E2D6EDA3E7@HKMAIL02.nvidia.com> References: <4B9C9637D5087840A465BDCB251780E9E2D6EDA3E6@HKMAIL02.nvidia.com> <201206211216.15818.marek.vasut@gmail.com> <4B9C9637D5087840A465BDCB251780E9E2D6EDA3E7@HKMAIL02.nvidia.com> Message-ID: <201206211857.56921.marek.vasut@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Jim Lin, > >From: Marek Vasut [mailto:marek.vasut at gmail.com] > >Sent: Thursday, June 21, 2012 6:16 PM > > > >> --- a/drivers/usb/host/ehci-tegra.c > >> +++ b/drivers/usb/host/ehci-tegra.c > >> @@ -1,5 +1,5 @@ > >> > >> /* > >> > >> - * Copyright (c) 2009 NVIDIA Corporation > >> + * Copyright (c) 2009-2012 NVIDIA Corporation > >> > >> * > >> * See file CREDITS for list of people who contributed to this > >> * project. > >> > >> @@ -29,6 +29,22 @@ > >> > >> #include > >> #include > >> > >> +/* > >> + * A known hardware issue where Connect Status Change bit of PORTSC > >> register + * of USB1 controller will be set after Port Reset. > >> + * We have to clear it in order for later device enumeration to > >> proceed. + * This ehci_powerup_fixup overrides the weak function > >> ehci_powerup_fixup + * in "ehci-hcd.c". > >> + */ > >> +void ehci_powerup_fixup(uint32_t *status_reg, uint32_t *reg) > > > >So it was even enough to use the already preinstalled callback? :-) > > Yes. > > >> +{ > >> + mdelay(50); > >> + if (((u32) status_reg & 0xFFFFC000) != TEGRA_USB1_BASE) > > > >What's this magic number here? > > Address Mask value, any suggestion? I wonder ... either comment or #define it somewhere, the later is favorable. > > >> + return; > > > > + /* For EHCI_PS_CSC to be cleared in ehci_hcd.c */ > > > >> + if (ehci_readl(status_reg) & EHCI_PS_CSC) > >> + *reg |= EHCI_PS_CSC; > > > >writel() > > The real IO write (ehci_writel) is done in ehci-hcd.c after calling of > ehci_powerup_fixup. Any suggestion? Good, leave it at that. > --------------------------------------------------------------------------- > -------- This email message is for the sole use of the intended > recipient(s) and may contain confidential information. Any unauthorized > review, use, disclosure or distribution is prohibited. If you are not the > intended recipient, please contact the sender by reply email and destroy > all copies of the original message. > --------------------------------------------------------------------------- > -------- ^^ The above is nvidia bullshit, please remove it, it doesn't make sense here. Best regards, Marek Vasut