From: Shengzhou Liu <hidden> Date: 2012-02-01 09:21:14
when missing USB PHY clock, kernel booting up will halt during USB
initialization. We should check USBGP[PHY_CLK_VALID] bit to avoid
CPU hang in this case.
Signed-off-by: Shengzhou Liu <redacted>
---
drivers/usb/host/ehci-fsl.c | 11 +++++++++--
drivers/usb/host/ehci-fsl.h | 1 +
2 files changed, 10 insertions(+), 2 deletions(-)
@@ -299,12 +299,19 @@ static void ehci_fsl_usb_setup(struct ehci_hcd *ehci)#endifout_be32(non_ehci+FSL_SOC_USB_SICTRL,0x00000001);}++if(!(in_be32(non_ehci+FSL_SOC_USB_CTRL)&CTRL_PHY_CLK_VALID)){+printk(KERN_WARNING"fsl-ehci: USB PHY clock invalid\n");+return-1;+}+return0;}/* called after powerup, by probe or system-pm "wakeup" */staticintehci_fsl_reinit(structehci_hcd*ehci){-ehci_fsl_usb_setup(ehci);+if(ehci_fsl_usb_setup(ehci))+return-1;ehci_port_power(ehci,0);return0;
From: Liu Shengzhou-B36685 <hidden> Date: 2012-02-02 03:32:13
-----Original Message-----
From: Pavan Kondeti [mailto:pkondeti@codeaurora.org]
Sent: Wednesday, February 01, 2012 6:11 PM
To: Liu Shengzhou-B36685
Cc: linux-usb@vger.kernel.org; linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] powerpc/usb: fix issue of CPU halt when missing
USB PHY clock
=20
On 2/1/2012 2:50 PM, Shengzhou Liu wrote:
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> Date: 2012-02-15 02:31:22
quoted
quoted
+ if (!(in_be32(non_ehci + FSL_SOC_USB_CTRL) & CTRL_PHY_CLK_VALID))
{
quoted
+ printk(KERN_WARNING "fsl-ehci: USB PHY clock invalid\n");
+ return -1;
Please return a proper error code. -ENODEV ?
[Shengzhou] Ok, updated in v2, thanks.
quoted
Note that I just got a p5020ds from FSL, and with it's default
configuration, when I build & boot current upstream with FSL USB
support (64-bit kernel) it hangs when initializing USB.
With or without this patch.
It complains about invalid dr-mode (there's two USB nodes in the .dts
coming from uboot, an "mph" and "dr", the former has no dr-mode property
in the device-tree.
Is the current kernel incompatible with old device-tree's ? (that would
be a shame...)
Cheers,
Ben.