Re: [PATCH] usb: dwc3: qcom: Add support to skip phy management by USB core

From: Val Packett

Date: Tue Sep 08 2026 - 18:48:56 EST



On 9/8/26 7:33 PM, Val Packett wrote:

On 7/23/26 7:54 AM, Krishna Kurapati wrote:
DWC3 driver does manage phys itself sufficiently for Qualcomm platforms.
If xhci-skip-phy-init is not set, the HCD core does a phy_init and phy_
exit is done only when roothub is being destroyed. Due to this, during
system suspend in host mode, although phy_exit is done by DWC3 core, the
init_count on phy is never down to zero since HCD core also did an init.
consequently causing phy's exit routine to not be called. Hence, add
support to skip phy management by USB core.

Some Exynos platforms still do rely on USB core for phy_calibrate calls,
hence disable USB core management for Qualcomm platforms only.

Signed-off-by: Krishna Kurapati <krishna.kurapati@xxxxxxxxxxxxxxxx>
---
Link to PHY calibrate handling for Exynos platforms:
https://lore.kernel.org/all/20190829053028.32438-1-m.szyprowski@xxxxxxxxxxx/

Hi,

this was merged into -next a few days ago, and I'm seeing warnings on boot now:

[    0.613188] sysfs: cannot create duplicate filename '/devices/platform/soc@0/a800000.usb/software_node'
[    0.613195] CPU: 10 UID: 0 PID: 93 Comm: kworker/u49:0 Tainted: G        W           7.3.0-rc2-next-20260907-uwu+ #143 PREEMPT(full)
[    0.613197] Tainted: [W]=WARN
[    0.613198] Hardware name: Dell Inc. Latitude 7455/0FK7MX, BIOS 2.13.0 09/19/2025
[    0.613199] Workqueue: events_unbound deferred_probe_work_func
[    0.613206] Call trace:
[..]
[    0.613226]  device_create_managed_software_node+0xe8/0x108
[    0.613227]  dwc3_qcom_probe+0x5a4/0x7b0

There is indeed already a software node being created in the shared dwc3 core code.

Could there be any other consequences than a duplicate sysfs path?

Answering my own question: even worse messages when the controller switches to gadget mode (which happens even with chargers when DRD is enabled)

[    5.620951] refcount_t: underflow; use-after-free.
[    5.620957] WARNING: lib/refcount.c:28 at refcount_warn_saturate+0xd8/0x140, CPU#2: kworker/2:1/98
[    5.621075] CPU: 2 UID: 0 PID: 98 Comm: kworker/2:1 Tainted: G       W           7.3.0-rc2-next-20260907-uwu+ #143 PREEMPT(full)
[    5.621077] Tainted: [W]=WARN
[    5.621078] Hardware name: Dell Inc. Latitude 7455/0FK7MX, BIOS 2.13.0 09/19/2025
[    5.621079] Workqueue: events_freezable __dwc3_set_mode
[..]
[    5.621114] Call trace:
[    5.621115]  refcount_warn_saturate+0xd8/0x140 (P)
[    5.621117]  kobject_put+0x11c/0x230
[    5.621121]  software_node_notify_remove+0xdc/0xf8
[    5.621124]  device_del+0x1dc/0x328
[    5.621126]  usb_disconnect+0x1d8/0x348
[    5.621129]  usb_remove_hcd+0x100/0x2a8
[    5.621131]  xhci_plat_remove+0x8c/0x170
[    5.621134]  platform_remove+0x28/0x40
[    5.621135]  device_release_driver_internal+0x174/0x290
[    5.621138]  device_release_driver+0x20/0x38
[    5.621140]  bus_remove_device+0x19c/0x1f8
[    5.621142]  device_del+0x1c4/0x328
[    5.621143]  platform_device_unregister+0x34/0xc0
[    5.621145]  dwc3_host_exit+0x50/0x70
[    5.621146]  __dwc3_set_mode+0xa4/0x378


[..]


[    5.644535] Unable to handle kernel paging request at virtual address 006563697665642f
[    5.644537] Mem abort info:
[    5.644538]   ESR = 0x0000000096000004
[    5.644539]   EC = 0x25: DABT (current EL), IL = 32 bits
[    5.644540]   SET = 0, FnV = 0
[    5.644541]   EA = 0, S1PTW = 0
[    5.644542]   FSC = 0x04: level 0 translation fault
[    5.644543] Data abort info:
[    5.644543]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
[    5.644545]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[    5.644546]   GCS = 0, Overlay = 0, DirtyBit = 0
[    5.644546] [006563697665642f] address between user and kernel address ranges
[    5.644548] Internal error: Oops: 0000000096000004 [#1]  SMP
[    5.644653] CPU: 2 UID: 0 PID: 98 Comm: kworker/2:1 Tainted: G       W           7.3.0-rc2-next-20260907-uwu+ #143 PREEMPT(full)
[    5.644655] Tainted: [W]=WARN
[    5.644656] Hardware name: Dell Inc. Latitude 7455/0FK7MX, BIOS 2.13.0 09/19/2025
[    5.644657] Workqueue: events_freezable __dwc3_set_mode
[    5.644664] pc : __pi_strcmp+0x9c/0x140
[    5.644668] lr : software_node_property_present+0x60/0x98
[    5.644697] Call trace:
[    5.644698]  __pi_strcmp+0x9c/0x140 (P)
[    5.644700]  device_property_present+0x9c/0xc0
[    5.644703]  dwc3_gadget_init+0x230/0x7b0
[    5.644704]  __dwc3_set_mode+0x314/0x378
[    5.644707]  process_scheduled_works+0x1b8/0x538
[    5.644710]  worker_thread+0x1fc/0x2f8
[    5.644711]  kthread+0x114/0x148
[    5.644713]  ret_from_fork+0x10/0x20


Thanks,
~val