Re: [PATCH] usb: dwc3: omap: Fix imprecise external abort and oops on boot

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

 



* Tony Lindgren <tony@xxxxxxxxxxx> [161208 10:25]:
> * Felipe Balbi <balbi@xxxxxxxxxx> [161208 09:52]:
> > 
> > Hi,
> > 
> > Tony Lindgren <tony@xxxxxxxxxxx> writes:
> > > * Felipe Balbi <balbi@xxxxxxxxxx> [161208 01:45]:
> > >> 
> > >> Hi,
> > >> 
> > >> Tony Lindgren <tony@xxxxxxxxxxx> writes:
> > >> > Somehow starting with v4.9-rc7 there have been imprecise
> > >> 
> > >> There's nothing touching dwc3 since v4.9-rc5.
> > >
> > > Right, nothing obvious has changed. I think it's just a slight timing
> > > change in the code that started triggering it.
> > 
> > could be
> > 
> > >> > external aborts on omap5-uevm dwc3 controller. I have not been
> > >> > able to bisect what exactly triggered this as it does not always
> > >> > happen. It seems that something changed with probing that
> > >> > now exposes the issue:
> > >> >
> > >> > Unhandled fault: imprecise external abort (0x1406) at 0x00000000
> > >> 
> > >> hmmm, clock disabled... dwc3-omap shouldn't have pm runtime at all.
> > >
> > > It does for the interconnect target module clkctrl register via PM
> > > runtime. That's the "usb_otg_ss" module.
> > 
> > but that's all hidden in omap_device.c, we don't touch it from driver
> > perspective.
> 
> The call to pm_runtime_get_sync() in dwc3_omap_probe() will use it.
> 
> Is there also some dwc3 internal clock? If we assume the usb_otg_ss
> module is properly enabled it could be some dwc3 internal clock not
> enabled?
> 
> We do have a srst_udelay needed for enabling musb controller for some
> SoCs, I'll check if that's the case here.

If there are no dwc3 internal clocks that may be causing the imprecise
external abort, then most likely we should apply the following change
for srst_udelay. Looks like srst_udelay value of 2 is not enough here
but 3 seems to do the job.

The issue of the spurious interrupts on dwc3 probe remains though.

Regards,

Tony

8< ------------------------------------
--- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
@@ -1952,6 +1952,7 @@ static struct omap_hwmod omap54xx_usb_tll_hs_hwmod = {
 static struct omap_hwmod_class_sysconfig omap54xx_usb_otg_ss_sysc = {
 	.rev_offs	= 0x0000,
 	.sysc_offs	= 0x0010,
+	.srst_udelay	= 3,
 	.sysc_flags	= (SYSC_HAS_DMADISABLE | SYSC_HAS_MIDLEMODE |
 			   SYSC_HAS_SIDLEMODE),
 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
--
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