[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-omap
Subject:    Re: usb-related linux-next boot failures
From:       Felipe Balbi <felipe.balbi () linux ! intel ! com>
Date:       2017-06-29 5:54:48
Message-ID: 878tkb5oev.fsf () linux ! intel ! com
[Download RAW message or body]

Hi,

Vignesh R <vigneshr@ti.com> writes:
>> Vignesh R <vigneshr@ti.com> writes:
>>> On Wednesday 28 June 2017 04:00 PM, Tony Lindgren wrote:
>>>>  Felipe Balbi <felipe.balbi@linux.intel.com> [170628 01:32]:
>>>>> Greg KH <gregkh@linuxfoundation.org> 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@linux.intel.com
>>>>>
>>>>> 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@linux.intel.com>
>>> 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@linux.intel.com>
>>>
>>>
>>>
>>> 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;

cool, thanks for figuring this one out ;-)

-- 
balbi

["signature.asc" (application/pgp-signature)]
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic