Re: usb-related linux-next boot failures

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux