Re: DWC2 gadget: unexpected device reenumeration on Rockchip RK3308

From: Luca Ceresoli
Date: Tue Apr 15 2025 - 11:58:42 EST


Hello again,

On Tue, 15 Apr 2025 16:28:25 +0200
Luca Ceresoli <luca.ceresoli@xxxxxxxxxxx> wrote:

[...]

> There are two more facts that may hint at something:
>
> * using the Rockchip 4.4 vendor kernel the problem does never happen
> * using a custom board with the RK3308 the problem happens if the
> USB-C cable is connected before booting; it does not happen if the
> connectror is connected after the boot has completed
>
> These two have been reported to me and I haven't reproduced them (yet)
> so I cannot provide logs at the moment. I can prioritize working on
> them, or the 4.4 vendor kernel at least, if it is deemed useful.

FWIW I managed to try the 4.4 vendor kernel:

git repo: https://github.com/radxa/kernel.git
commit: 4.4.143-23-rockchip-796-g09ee299143e4

As said, there is only one enumerations, not two.

Here's a log of the host during said enumeration (same host as before,
no changes on the host side):

[110685.837058] hub 3-3:1.0: state 7 ports 4 chg 0000 evt 0010
[110685.844824] usb 3-3-port4: status 0101, change 0001, 12 Mb/s
[110685.848278] usb 3-3-port4: indicator auto status 0
[110685.958750] usb 3-3-port4: debounce total 100ms stable 100ms status 0x101
[110686.053638] usb 3-3.4: new high-speed USB device number 116 using xhci_hcd
[110686.163756] usb 3-3.4: skipped 2 descriptors after configuration
[110686.163775] usb 3-3.4: skipped 4 descriptors after interface
[110686.163996] usb 3-3.4: default language 0x0409
[110686.164557] usb 3-3.4: udev 116, busnum 3, minor = 371
[110686.164567] usb 3-3.4: New USB device found, idVendor=1209, idProduct=0001, bcdDevice= 1.00
[110686.164574] usb 3-3.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[110686.164579] usb 3-3.4: Product: foobar
[110686.164583] usb 3-3.4: Manufacturer: ACME
[110686.164586] usb 3-3.4: SerialNumber: 12345678
[110686.165279] usb 3-3.4: usb_probe_device
[110686.165290] usb 3-3.4: configuration #1 chosen from 1 choice
[110686.169116] usb 3-3.4: adding 3-3.4:1.0 (config #1, interface 0)
[110686.169384] cdc_acm 3-3.4:1.0: usb_probe_interface
[110686.169389] cdc_acm 3-3.4:1.0: usb_probe_interface - got id
[110686.169827] cdc_acm 3-3.4:1.0: ttyACM0: USB ACM device
[110686.169868] usb 3-3.4: adding 3-3.4:1.1 (config #1, interface 1)

The only potentially significant difference I could spot from the
previous host log is:

mainline: [105021.396995] usb 3-3.4: skipped 1 descriptor after configuration
4.4: [110686.163756] usb 3-3.4: skipped 2 descriptors after configuration

Luca

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com