Yuji Sasaki

iMX28 USB interrupt after resume

Discussion created by Yuji Sasaki on Aug 3, 2012

Hello,

I experience USB wakeup issue on iMX28.

(1) plug a USB stick to iMX28 USB port
(2) suspend the system (without pull USB stick out)
(3) resume the system
(4) iMX28 does not respond to USB removal / insersion anymore

When I commit positive operation on USB port (such as try mount /dev/sda1 /mnt) after resume, USB interrupt suddenly comes back. I guess USB driver does not unmask EHCI interrupt after resume.

I can dive into Kernel tree and look for what's going on, but before doing that I want ask if any of you guys saw this issue before (and how to solve  hopefully).

It happens on iMX28 EVK + Linux-2.6.35.3-571 (BSP 2010-12). I applied patches_for_L2.6.35_MX28_SDK_10.12_SOURCE, hoping patch 0590 and 0591 may solve this issue but no change has been observed. Comment on patch 0590 mentions PHY clock but no mention to IRQ...

Interestingly, this issue does not happen on older Linux (Linux-2.6.31-855, the original LINUX SD memory comes with EVK board). However with this version, USB device never successfully resumes; it reports error -108.

wakeup irq = 6
USB Gadget resumed
USB Host resumedpm_op(): usb_dev_resume+0x0/0x18 returns -108
PM: Device usb1 failed to resume: error -108
usb 2-1: reset high speed USB device using fsl-ehci and address 4

Outcomes