linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Igor Opaniuk <igor.opaniuk@gmail.com>
To: Fabio Estevam <festevam@gmail.com>,
	Peter Chen <peter.chen@nxp.com>,
	stefan.wahren@i2se.com
Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>,
	Stefan Agner <stefan.agner@toradex.com>,
	linux-usb@vger.kernel.org
Subject: [chipidea] continuous USB resets on NXP i.MX 6ULL device
Date: Tue, 24 Sep 2019 13:08:45 +0300	[thread overview]
Message-ID: <CAByghJYLLdtYiQGNCxJ4HEjm5Y1v0LQ1pc+dmHemoNWxx2h6jg@mail.gmail.com> (raw)

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?

Thanks for helping me!

[1] https://marc.info/?l=linux-usb&m=151844741732751
[2] https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/imx6ull-colibri.dtsi#L191
[3] https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi#L143

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

Igor Opaniuk

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

             reply	other threads:[~2019-09-24 10:09 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-24 10:08 Igor Opaniuk [this message]
2019-09-25  0:44 ` [chipidea] continuous USB resets on NXP i.MX 6ULL device Peter Chen
2019-09-30 11:35   ` Igor Opaniuk
2019-10-02 16:15     ` Igor Opaniuk
2019-10-08  3:17       ` Peter Chen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAByghJYLLdtYiQGNCxJ4HEjm5Y1v0LQ1pc+dmHemoNWxx2h6jg@mail.gmail.com \
    --to=igor.opaniuk@gmail.com \
    --cc=festevam@gmail.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=marcel.ziswiler@toradex.com \
    --cc=peter.chen@nxp.com \
    --cc=stefan.agner@toradex.com \
    --cc=stefan.wahren@i2se.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).