Hi Felipe, On Wednesday 28 June 2017 04:24 PM, Felipe Balbi wrote: > > Hi, > > Vignesh R <vigneshr@xxxxxx> writes: >> On Wednesday 28 June 2017 04:00 PM, Tony Lindgren wrote: >>> Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> [170628 01:32]: >>>> Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> writes: >>>>> On Tue, Jun 27, 2017 at 02:28:56PM -0400, Carlos Hernandez wrote: >>>>>> Still seeing AM57xx/DRA72/DRA7x usb-related boot failures on linux-next... >>>>> >>>>> Is this a regression? If so, any specific commit that caused it? >>>> >>>> I did ask for a bisection last time but nobody from TI replied ;-) >>>> >>>> https://marc.info/?i=87h8zi4gmx.fsf@xxxxxxxxxxxxxxx >>>> >>>> Can't really help without bisection logs :-) >>> >>> Seems this warning got add with 04c848d39879 ("genirq: Warn when >>> IRQ_NOAUTOEN is used with shared interrupts"). The fix is to get >>> rid of IRQ_NOAUTOEN and enable_irq for a shared interrupt. Hard >>> to say as the warning line does not match the version of next I >>> have so this should be verified. >>> >> >> There seems to be two different problems here. >> One is what Tony is pointing to above that throws a first warn dump >> during dwc3_omap_probe(). >> >> Second one is the imprecise external abort that happens later: >> [ 24.809939] Unhandled fault: imprecise external abort (0x1406) at >> 0x00000000 >> >> Bisecting the second issue lead to the first bad commit as: >> commit f54edb539c1167e7a96073848d0afad100df4580 >> Author: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> >> Date: Mon Jun 5 17:03:18 2017 +0300 >> >> usb: dwc3: core: initialize ULPI before trying to get the PHY >> >> If don't reorder initialization like this, we will never be able to >> get a reference to ULPI PHYs. >> >> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> >> >> >> >> Reverting above commit from -next seems to help. > > reverting will break other things. Seems like we should move > pm_runtime_* operations a little earlier to ensure clocks are enabled > early enough. > Looking at the above commit, I see that call to dwc3_core_get_phy() is now moved from dwc3_probe() to dwc3_core_init() after dwc3_core_soft_reset(). But dwc3_core_soft_reset() calls phy_init(), therefore dwc3_core_get_phy() needs to be called before dwc3_core_soft_reset(). Below diff fixes the issue on DRA7xx platforms. I can submit a formal patch, if it looks fine. diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 326b302fc440..03474d3575ab 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -766,15 +766,15 @@ static int dwc3_core_init(struct dwc3 *dwc) dwc->maximum_speed = USB_SPEED_HIGH; } - ret = dwc3_core_soft_reset(dwc); + ret = dwc3_core_get_phy(dwc); if (ret) goto err0; - ret = dwc3_phy_setup(dwc); + ret = dwc3_core_soft_reset(dwc); if (ret) goto err0; - ret = dwc3_core_get_phy(dwc); + ret = dwc3_phy_setup(dwc); if (ret) goto err0; -- Regards Vignesh -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html