RE: [PATCH 0/4] usb: chipidea: imx: add HSIC support

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

 



 
> >>> - System suspend/resume
> >>> 1. Enable USB wakeup
> >>> for i in $(find /sys -name wakeup | grep usb);do echo enabled  >
> >>> $i;echo "echo enabled > $i";done; 2. Let the system enter suspend
> >>> using below command echo mem > /sys/power/state 3. And see if there
> >>> is a wakeup block system entering suspend, and check if USB HSIC
> >>> works ok after system resume
> >>
> >> System suspend/resume seems to work fine. After resume the ethernet
> >> controller works.
> >>
> >> root@imxceet-solo-s-43:~# echo mem > /sys/power/state
> >> PM: suspend entry (deep)
> >> PM: Syncing filesystems ... done.
> >> Freezing user space processes ... (elapsed 0.001 seconds) done.
> >> OOM killer disabled.
> >> Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
> >> smsc95xx 3-1:1.0 eth1: entering SUSPEND2 mode
> >> PM: suspend devices took 0.050 seconds Disabling non-boot CPUs ...
> >> usb 3-1: reset high-speed USB device number 2 using ci_hdrc
> >> PM: resume devices took 0.590 seconds OOM killer enabled.
> >> Restarting tasks ... done.
> >> PM: suspend exit
> >> smsc95xx 3-1:1.0 eth1: link up, 100Mbps, full-duplex, lpa 0x4DE1 fec
> >> 2188000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
> >>
> >>>
> >>> - Runtime suspend
> >>> 1. Enable auto suspend for all USB devices, and check if USBOH3
> >>> clock is closed, make sure do not plug any ethernet cable on the
> >>> RJ45 port.
> >>>
> >>> /* Enable auto suspend */
> >>> for i in $(find /sys -name control | grep usb);do echo auto  >
> >>> $i;echo "echo auto > $i";done;
> >>
> >> This doesn't work. When the port is suspended it gets into a loop of
> >> suspending/resuming endlessly. If i put two logs in
> >> ci_hdrc_imx_runtime_suspend() and ci_hdrc_imx_runtime_resume(), I get
> >> this:
> >>
> >> [...]
> >> ci_hdrc_imx_runtime_resume:603
> >> ci_hdrc_imx_runtime_suspend:574
> >> ci_hdrc_imx_runtime_resume:603
> >> ci_hdrc_imx_runtime_suspend:574
> >> ci_hdrc_imx_runtime_resume:603
> >> ci_hdrc_imx_runtime_suspend:574
> >> ci_hdrc_imx_runtime_resume:603
> >> ci_hdrc_imx_runtime_suspend:574
> >> [...]
> >
> > Ok, forget about the loop, this was caused by one of the other ports,
> > that had issues with overcurrent detection.
> >
> > But still it doesn't work for the HSIC port.
> >
> > The HSIC device is stuck in status "suspending" (note: "suspending"
> > and not "suspended"):
> >
> > ~# cat /sys/bus/usb/devices/usb1/power/runtime_status
> > suspended
> > ~# cat /sys/bus/usb/devices/usb2/power/runtime_status
> > suspended
> > ~# cat /sys/bus/usb/devices/usb3/power/runtime_status
> > active
> > ~# cat /sys/bus/usb/devices/usb3/3-1/power/runtime_status
> > suspending
> 
> It seems like this is a problem with the smsc95xx driver. I fixed this and now the
> device is suspending properly, when the network interface is down and resumes
> when it comes up.
> 
> I also checked the USBOH3 clock and its properly switched on and off.
> 
> What didn't work is auto suspend and resume on ethernet link down/up, but this
> seems to be a restriction of the smsc95xx/usbnet driver.
> 
> So all in all this looks good to me. Please let me know if you need any more
> information or tests.
> 

Thanks, Frieder, no more tests are needed.
You could send me your dts changes as patches, I will append it at my v2 patch series.

Peter




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux