Re: Bad DMA for ehci_qtd after suspend/resume cycle on Exynos7 (64-bit)

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

 



On Thu, 22 Jan 2015, Vivek Gautam wrote:

> Hi all,
> 
> 
> While working on our test board with Exynos7 SoC, we see that across
> suspend/resume (Suspend to RAM) the EHCI can't resume the devices connected
> to HSIC phy properly.
> We have been using 3.16 kernel for our development, but on the ehci-exynos 
> driver
> side there isn't any delta that we have added, and the driver is pretty much 
> in same shape
> as in 3.19
> 
> We have a HSIC hub connected to the HSIC phy interface on the controller
> which gets enumerated during boot up, and the devices connected across this
> hub also get enumerated completely.
> But once we suspend the system, after resume the hub gets disconnected from
> the bus and we see **bad dma** error from dma_pool_free for ehci_qtd.

Does the phy get resumed before the EHCI controller?

Have you enabled dynamic debugging for usbcore and ehci-hcd?

What does a usbmon trace show?

> Below is a short log of the resume.
> 
> --------------------------------------------------------------------------
> [   11.231907] Resume caused by wakeup_stat 0x80000001
> [   11.232926] PM: noirq resume of devices complete after 0.949 msecs
> [   11.239387] PM: early resume of devices complete after 1.[   11.244699]
> ..
> ..
> [   11.262665] usb usb1: root hub lost power or was reset
> [   11.324501] usb usb2: root hub lost power or was reset
> [   11.328747] wake disabled for irq 5
> [   11.337449] usb usb3: root hub lost power or was reset
> [   11.342472] usb usb4: root hub lost power or was reset
> [   11.360866] wake disabled for irq 6
> [   11.540541] PM: resume of devices complete after 296.332 msecs
> [   11.545645] Restarting tasks ...
> [   11.549009] usb 1-2: USB disconnect, device number 2
> [   11.554208] done.
> [   11.555727] exynos-ehci 15510000.usb: dma_pool_free ehci_qtd, 
> ffffff8000125120/b900002212876c62 (bad dma)
> [   11.564906] exynos-ehci 15510000.usb: dma_pool_free ehci_qtd, 
> ffffff8000125060/f2a20ae152806402 (bad dma)
> --------------------------------------------------------------------------

> Any pointers for debugging this would be very much appreciated.

You could add printk statements to the places where things get 
allocated from and returned to the ehci_qtd pool, namely, 
ehci_qtd_alloc() and ehci_qtd_free() in drivers/usb/host/ehci-mem.c.  
Print out the address and the DMA address of each entry and then 
compare the free's to the alloc's.

Alan Stern

--
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