[PATCH v5 0/2] usb: misc: onboard_usb_dev: don't defer probing after the device is configured
From: James Clark
Date: Fri Nov 06 2026 - 21:37:06 EST
On a BeagleY-AI, kernels since commit f918e3804498 ("arm64: enable
HAVE_SHARED_GPIOS for all ARM64 platforms") no longer boot: the on-board
USB hub is re-probed in a loop, because onboard_usb_dev defers probing
after the hub has been configured.
Following Johan Hovold's suggestion [1], patch 1 exports the generic
driver's operations, and patch 2 changes onboard_usb_dev to call them
itself instead of setting generic_subclass, so that it can defer probing
before the device is configured.
Tested on the BeagleY-AI on top of v7.4-rc1: the board boots normally,
and unbinding and rebinding the onboard-usb-dev platform device works.
With the peer-hub property removed from one hub's node, that hub binds
to the generic driver.
I used an LLM coding assistant to help prepare this series.
Changes in v5:
- Patch 1: added Alan's Acked-by
- Patch 2: stopped matching a device that has no platform device, so
that the generic driver binds it (Sashiko)
- Link to v4: https://lore.kernel.org/all/cover.1793941292.git.jjc@xxxxxxxxxx/
Changes in v4:
- Switched to calling the generic driver's operations from
onboard_usb_dev, instead of adding pre_probe to the USB core
- Link to v3: https://lore.kernel.org/all/cover.1793669297.git.jjc@xxxxxxxxxx/
Changes in v3:
- Added a patch fixing existing problems in usb_probe_device() (Alan)
- Link to v2: https://lore.kernel.org/all/20261030151919.3511106-1-jjc@xxxxxxxxxx/
Changes in v2:
- Switched to adding a pre_probe callback to the USB core (Johan)
- Link to v1: https://lore.kernel.org/all/20261030114705.3159093-1-jjc@xxxxxxxxxx/
[1] https://lore.kernel.org/all/auSdA8MfolA8OhdM@xxxxxxxxxxxxxxxxxxxx/
James Clark (2):
usb: core: export the generic device driver's operations
usb: misc: onboard_usb_dev: don't defer probing after the device is
configured
drivers/usb/core/generic.c | 4 ++
drivers/usb/core/usb.h | 6 ---
drivers/usb/misc/onboard_usb_dev.c | 67 +++++++++++++++++++++---------
include/linux/usb.h | 10 ++++-
4 files changed, 61 insertions(+), 26 deletions(-)
base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
--
2.56.0