[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