(EXT) Re: [RFC 1/1] usb: chipidea: ci_hdrc_imx: disable runtime pm for HSIC interface

Alexander Stein alexander.stein at ew.tq-group.com
Tue Mar 29 01:14:36 PDT 2022


Hello Peter,

Am Dienstag, 15. März 2022, 02:23:23 CEST schrieb Peter Chen:
> On Wed, Mar 2, 2022 at 5:42 PM Alexander Stein
> 
> <alexander.stein at ew.tq-group.com> wrote:
> > With the add of power-domain support in commit 02f8eb40ef7b ("ARM: dts:
> > imx7s: Add power domain for imx7d HSIC") runtime suspend will disable
> > the power-domain. This prevents IRQs to occur when a new device is
> > attached
> > on a downstream hub.
> > 
> > Signed-off-by: Alexander Stein <alexander.stein at ew.tq-group.com>
> > ---
> > Our board TQMa7x + MBa7x (i.MX7 based) uses a HSIC link to mounted USB HUB
> > on usbh device. Cold plugging an USB mass storage device is working fine.
> > But once the last non-HUB device is disconnected the ci_hdrc device goes
> > into runtime suspend.
> 
> Would you please show the difference between cold boot and runtime
> suspend after disconnecting
> the last USB device?
> 
> - Power domain on/off status for HUB device
> - Runtime suspend status at /sys entry for HUB device
> - "/sys/..power/wakeup" /sys entry  for HUB device

I hope I got all entries you requested.

For reference this is the bus topology:
lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ci_hdrc/1p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ci_hdrc/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 480M

Bus 2 is a different connector and doesn't matter here. I'm disconnecting 'Dev 
3' in this scenario.

After boot up with the bus as shown above:
$ cat /sys/bus/usb/devices/1-1/power/wakeup
disabled
$ cat /sys/bus/usb/devices/1-1/power/runtime_status
active
$ cat /sys/kernel/debug/pm_genpd/usb-hsic-phy/current_state
on

After disconnecting Dev 3 from the bus ('usb 1-1.2: USB disconnect, device 
number 3' in dmesg) the status changes as follows (without the patch):
$ cat /sys/bus/usb/devices/1-1/power/wakeup
disabled
$ cat /sys/bus/usb/devices/1-1/power/runtime_status
suspended
$ cat /sys/kernel/debug/pm_genpd/usb-hsic-phy/current_state
off-0

For the record, when applying the posted patch this changes into:
$ cat /sys/bus/usb/devices/1-1/power/wakeup
disabled
$ cat /sys/bus/usb/devices/1-1/power/runtime_status
suspended
$ cat /sys/kernel/debug/pm_genpd/usb-hsic-phy/current_state
on

Regards,
Alexander






More information about the linux-arm-kernel mailing list