Thread (19 messages) 19 messages, 5 authors, 2021-07-11

Re: ODROID-C1/-C2 USB Detection only triggered by some devices

From: Anand Moon <hidden>
Date: 2021-07-02 19:12:11
Also in: linux-amlogic

Hi Martin,

On Fri, 2 Jul 2021 at 02:48, Martin Blumenstingl
[off-list ref] wrote:
Hi Anand,

On Thu, Jul 1, 2021 at 12:04 PM Anand Moon [off-list ref] wrote:
[...]
quoted
I have been trying some reorder code changes with PHY some new DTS
changes both on C1+ and C2.
with my changes I got false positve results.

So in my debug investigation, it seems that USB reset is not working.
I am attaching my latest code changes so that you could verify at your end.
If we drop the  phy_meson8b_usb2_reset(phy) all the USB PHY get initialized.
Note:  phy core does not call the .reset callback function on its own

I have tried crazy ideas with reset API and new approaches, but it seems to fail
and also used the reset-name features, but with no luck at my end.
I wil try to followup on the suggestion shared in this email thread.
with your patch USB is not working for me at all on my Odroid-C1+.
kernel log extract:
...
[    5.089251] phy phy-c1108800.phy.0: phy poweron failed --> -22
[    5.096456] dwc2: probe of c9040000.usb failed with error -22
[    5.102182] dwc2 c90c0000.usb: supply vusb_d not found, using dummy regulator
[    5.108781] dwc2 c90c0000.usb: supply vusb_a not found, using dummy regulator
[    5.117140] phy phy-c1108820.phy.1: Anand you are calling USB reset1
[    5.121408] phy phy-c1108820.phy.1: Anand you are calling USB reset2
[    5.131197] dwc2 c90c0000.usb: dwc2_core_reset: HANG! Soft Reset
timeout GRSTCTL_CSFTRST
[    5.137163] dwc2: probe of c90c0000.usb failed with error -16

and then:
# lsusb
#
Ok Thanks for testing. my bad luck.
With your patch applied (on top of v5.13) the dwc2 driver does not
probe anymore.
I suggest we move the discussion about your patch elsewhere so we can
focus on getting USB devices detected (again) with the help of Minas
and Alan.
quoted
I am attaching my usbmon output on Odroid C2.
Can you please specifically state the testing steps you have used to
obtain that output?
I followed the kernel documentation to get the output
[0] https://www.kernel.org/doc/html/v5.10/usb/usbmon.html

it's hard to interpret the logs.
This is important so people who are involved in this discussion don't
get confused about the results.
But I have learned that we could use Wireshark to capture USB handshake
[1] https://fedoraproject.org/wiki/Usbmon#Wireshark_CLI

So I have done some trace capture USB trace with the following command.

# ls /dev/usbmon0 /dev/usbmon1
/dev/usbmon0  /dev/usbmon1
# tshark -i usbmon0 -w /var/tmp/usbmon0.pcap
# tshark -i usbmon1 -w /var/tmp/usbmon1.pcap

Attach are the logs.
quoted
On some other note on USB HUB reset. I recollect following series (it
like *mmc_pwrseq*)
[0] https://lore.kernel.org/linux-devicetree/1474342607-27512-1-git-send-email-peter.chen@nxp.com/ (local)
this is being replaced by "usb: misc: Add onboard_usb_hub driver"
which is currently at version 13: [1]


Best regards,
Martin


[1] https://marc.info/?l=linux-usb&m=162447367404217&w=2
Thanks for the inputs, cool this looks good.

Thanks
-Anand

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help