[PATCH v16 2/6] usb: dwc3: rockchip: introduce glue driver
sashiko-bot at kernel.org
sashiko-bot at kernel.org
Thu Sep 24 10:36:47 PDT 2026
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] usb: dwc3: unconditional blocklist breaks USB fallback without rockchip glue
--
commit b1c2a157ba4928faa78118602b451577e3210786
Author: Sebastian Reichel <sebastian.reichel at collabora.com>
usb: dwc3: rockchip: introduce glue driver
This commit introduces Rockchip specific glue code for the Synopsys DWC3
USB driver. It currently handles things identically to the default glue.
> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
> index fd5c2cd36c595..4b7132887a030 100644
> --- a/drivers/usb/dwc3/core.c
> +++ b/drivers/usb/dwc3/core.c
> @@ -2448,11 +2448,26 @@ int dwc3_core_probe(const struct dwc3_probe_data *data)
> }
> EXPORT_SYMBOL_GPL(dwc3_core_probe);
>
> +/*
> + * List of compatibles, which have "synopsys,dwc3" as a fallback
> + * compatible, but have a vendor specific glue driver that should
> + * be used instead of this one.
> + */
> +static const char *const dwc3_compatible_blocklist[] = {
> + "rockchip,rk3588-dwc3",
> + "rockchip,rk3576-dwc3",
> +};
> +
> static int dwc3_probe(struct platform_device *pdev)
> {
> struct dwc3_probe_data probe_data = {};
> struct resource *res;
> struct dwc3 *dwc;
> + int i;
> +
> + for (i = 0; i < ARRAY_SIZE(dwc3_compatible_blocklist); i++)
> + if (device_is_compatible(&pdev->dev, dwc3_compatible_blocklist[i]))
> + return -ENODEV;
[Severity: Medium]
Does this unconditional blocklist break the USB fallback mechanism when the
kernel is built without CONFIG_USB_DWC3_ROCKCHIP?
The device tree bindings for these boards specify snps,dwc3 as a fallback
so the generic driver can bind if the specialized Rockchip driver is
unavailable. By unconditionally blocklisting the Rockchip compatibles in
dwc3_probe(), the fallback mechanism is defeated.
If a user configures their kernel without the newly added
CONFIG_USB_DWC3_ROCKCHIP, will the device be rejected completely and leave
the system with no USB functionality?
Could these blocklist entries be conditionally compiled (for example, using
IS_ENABLED(CONFIG_USB_DWC3_ROCKCHIP)) so the generic driver can still serve
as a fallback when the glue driver is not built?
>
> res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> if (!res) {
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260924-b4-rockchip-dwc3-rockchip-glue-v16-0-126a2e9133c3@collabora.com?part=2
More information about the linux-phy
mailing list