usb: uhci-platform: Make the clock really optional
authorAlexey Charkov <alchark@gmail.com>
Fri, 25 Apr 2025 14:11:11 +0000 (18:11 +0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 1 May 2025 15:39:16 +0000 (17:39 +0200)
Device tree bindings state that the clock is optional for UHCI platform
controllers, and some existing device trees don't provide those - such
as those for VIA/WonderMedia devices.

The driver however fails to probe now if no clock is provided, because
devm_clk_get returns an error pointer in such case.

Switch to devm_clk_get_optional instead, so that it could probe again
on those platforms where no clocks are given.

Cc: stable <stable@kernel.org>
Fixes: 26c502701c52 ("usb: uhci: Add clk support to uhci-platform")
Signed-off-by: Alexey Charkov <alchark@gmail.com>
Link: https://lore.kernel.org/r/20250425-uhci-clock-optional-v1-1-a1d462592f29@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/uhci-platform.c

index a7c934404ebc7ed74f64265fafa7830809979ba5..62318291f5664c9ec94f24535c71d962e28354f3 100644 (file)
@@ -121,7 +121,7 @@ static int uhci_hcd_platform_probe(struct platform_device *pdev)
        }
 
        /* Get and enable clock if any specified */
-       uhci->clk = devm_clk_get(&pdev->dev, NULL);
+       uhci->clk = devm_clk_get_optional(&pdev->dev, NULL);
        if (IS_ERR(uhci->clk)) {
                ret = PTR_ERR(uhci->clk);
                goto err_rmr;