Re: [chipidea] continuous USB resets on NXP i.MX 6ULL device

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

 



Hi Peter,

On Wed, Sep 25, 2019 at 3:44 AM Peter Chen <peter.chen@xxxxxxx> wrote:
>
>
> >
> > Hi Fabio, Peter, Stefan,
> >
> > I've incidentally discovered your last year discussion in ML [1] (I hope it rings the
> > bell) regarding the issue I'm still observing on the same device with the mainline
> > kernel.
> >
> > The difference between i.MX 6ULL EVK and this particular device, is that usbotg2 is
> > used only in host mode with the usb hub integrated on the carrier board [2] [3].
> >
> > root@colibri-imx6:~# lsusb -s 1:1 --tree
> > /:  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
> >
> > However I can't reproduce the same behavior with i.MX 6ULL EVK with connected
> > usb hub to usbotg2. Also this behavior can't be reproduced with NXP downstream
> > kernel (Linux version 4.9.144) on my device.
> >
> > After digging in a bit I found out that this happens only when autosuspend is
> > enabled for the usb controller:
> > echo auto > /sys/bus/usb/devices/1-1/power/control
> >
> > It tries to go to suspend mode, but everytime fails and resumes:
> > root@colibri-imx6:~# cat /sys/bus/usb/devices/1-1/power/runtime_status
> > suspended
> > root@colibri-imx6:~# cat /sys/bus/usb/devices/1-1/power/runtime_status
> > resuming
> > root@colibri-imx6:~# cat /sys/bus/usb/devices/1-1/power/runtime_status
> > suspended
> > root@colibri-imx6:~# cat /sys/bus/usb/devices/1-1/power/runtime_status
> > suspended
> > root@colibri-imx6:~# cat /sys/bus/usb/devices/1-1/power/runtime_status
> > suspended
> > root@colibri-imx6:~# cat /sys/bus/usb/devices/1-1/power/runtime_status
> > resuming
> >
> > I'm observing ~2 seconds wakeup interrupts handled in ci_irq() in core.c and
> > subsequent invocation of imx_controller_resume().
> >
> > Meantime usboh3 remains enabled all the time (though
> > imx_disable_unprepare_clks() should disable it):
> > root@colibri-imx6:~# cat /sys/kernel/debug/clk/clk_summary | grep usb
> >     usbphy2_gate                      1        1        0           0
> >         0     0  50000
> >     usbphy1_gate                      1        1        0           0
> >         0     0  50000
> >           pll7_usb_host               1        1        0   480000000
> >         0     0  50000
> >              usbphy2                  1        1        0   480000000
> >         0     0  50000
> >           pll3_usb_otg                2        3        0   480000000
> >         0     0  50000
> >              usbphy1                  0        0        0   480000000
> >         0     0  50000
> >                          usboh3       1        1        0    66000000
> >         0     0  50000
> >
> > While I'm trying to localize the root cause, maybe you can give some hints where to
> > look into?
> >
>
> Would you please look below two downstream patches see if it helps?
>
> commit e8e95658fe75f3873e06d5ad72a6bf0bad40f068
> Author: Li Jun <jun.li@xxxxxxx>
> Date:   Mon Oct 16 23:13:19 2017 +0800
>
>     MLK-16576 usb: phy: mxs: set hold_ring_off for USB2 PLL power up
>
>     USB2 PLL use ring VCO, when the PLL power up, the ring VCO’s supply also
>     ramp up. There is a possibility that the ring VCO start oscillation at
>     multi nodes in this phase, especially for VCO which has many stages, then
>     the multiwave will kept until PLL power down. Hold_ring_off(bit11) can
>     force the VCO in one determined state when VCO supply start ramp up, to
>     avoid this multiwave issue. Per IC design's suggestion it's better this
>     bit can be off from 25us after pll power up to 25us before USB TX/RX.
>
>
> commit aa4680d844a340a5b6b60484f6e04cb9ba613c65
> Author: Peter Chen <peter.chen@xxxxxxx>
> Date:   Wed Sep 7 12:16:59 2016 +0800
>
>     MLK-13125 usb: phy: phy-mxs-usb: enable weak 1p1 regulator for imx6ul during suspend
>
>     For imx6ul PHY, when the system enters suspend, its 1p1 is off by default,
>     that may cause the PHY get inaccurate USB DP/DM value. If the USB wakeup
>     is enabled at this time, the unexpected wakeup may occur when the system
>     enters suspend.
>
>     In this patch, when the vbus is there, we enable weak 1p1 during the PHY
>     suspend API, in that case, the USB DP/DM will be accurate for USB PHY,
>     then unexpected usb wakeup will not be occurred, especially for the USB
>     charger is connected scenario. The user needs to enable PHY wakeup for
>     USB wakeup function using below setting.
>
> Peter
>
> > Thanks for helping me!
> >
> > [1]
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmarc.info%2
> > F%3Fl%3Dlinux-
> > usb%26m%3D151844741732751&amp;data=02%7C01%7Cpeter.chen%40nxp.co
> > m%7Cb61742d4ff4646c2cb9408d740d735fe%7C686ea1d3bc2b4c6fa92cd99c5c30
> > 1635%7C0%7C0%7C637049165376859788&amp;sdata=eZdOVCuyVyA502DgwoN
> > 16QmU5WDknrqCK5xmEbIovAE%3D&amp;reserved=0
> > [2]
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%
> > 2Ftorvalds%2Flinux%2Fblob%2Fmaster%2Farch%2Farm%2Fboot%2Fdts%2Fimx6
> > ull-
> > colibri.dtsi%23L191&amp;data=02%7C01%7Cpeter.chen%40nxp.com%7Cb61742d
> > 4ff4646c2cb9408d740d735fe%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C
> > 0%7C637049165376859788&amp;sdata=7%2FVP15v1XGeQzweIu%2FaGhJEt1ov
> > Tn4zl%2F3pghKBcGlw%3D&amp;reserved=0
> > [3]
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%
> > 2Ftorvalds%2Flinux%2Fblob%2Fmaster%2Farch%2Farm%2Fboot%2Fdts%2Fimx6
> > ull-colibri-eval-
> > v3.dtsi%23L143&amp;data=02%7C01%7Cpeter.chen%40nxp.com%7Cb61742d4ff4
> > 646c2cb9408d740d735fe%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7
> > C637049165376859788&amp;sdata=M43BXrJedKgszOJkZ9W4h5bqQo9WBaxe7C
> > L4tAD2Ouk%3D&amp;reserved=0
> >
> > --
> > Best regards - Freundliche Grüsse - Meilleures salutations
> >
> > Igor Opaniuk
> >
> > mailto: igor.opaniuk@xxxxxxxxx
> > skype: igor.opanyuk
> > +380 (93) 836 40 67
> > https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fua.linkedin.co
> > m%2Fin%2Fiopaniuk&amp;data=02%7C01%7Cpeter.chen%40nxp.com%7Cb61742
> > d4ff4646c2cb9408d740d735fe%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7
> > C0%7C637049165376859788&amp;sdata=qzgWZaeraIUjiLG24s9x%2BUQEnRrJ2
> > TiRKD%2F6ndna4Ws%3D&amp;reserved=0


Unfortunately these two commits didn't help (+ 'MLK-10170 usb: phy:
mxs: keep USBPHY2's clk always on',
which one of the commits depends on).


-- 
Best regards - Freundliche Grüsse - Meilleures salutations

Igor Opaniuk

mailto: igor.opaniuk@xxxxxxxxx
skype: igor.opanyuk
+380 (93) 836 40 67
http://ua.linkedin.com/in/iopaniuk




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux