Re: [PATCH] usb: uhci-platform: Make the clock really optional

From: Alexey Charkov
Date: Fri Apr 25 2025 - 10:47:26 EST


On Fri, Apr 25, 2025 at 6:20 PM Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Fri, Apr 25, 2025 at 06:11:11PM +0400, Alexey Charkov wrote:
> > 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@xxxxxxxxxxxxxxx
> > Fixes: 26c502701c52 ("usb: uhci: Add clk support to uhci-platform")
> > Signed-off-by: Alexey Charkov <alchark@xxxxxxxxx>
> > ---
> > drivers/usb/host/uhci-platform.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/usb/host/uhci-platform.c b/drivers/usb/host/uhci-platform.c
> > index a7c934404ebc7ed74f64265fafa7830809979ba5..62318291f5664c9ec94f24535c71d962e28354f3 100644
> > --- a/drivers/usb/host/uhci-platform.c
> > +++ b/drivers/usb/host/uhci-platform.c
> > @@ -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);
>
> Why does this need to go to all stable trees all of a sudden? This has
> been "broken" for years, what changed recently to cause this to show up?

Users who suffer from nonfunctional built-in keyboards on WM8650 and
WM8850 based laptops complain. It used to work on even older kernels,
but not on current ones. What changed is that I found the time to
investigate :)

The way 26c502701c52 ("usb: uhci: Add clk support to uhci-platform")
described the change implies that "optional" was the intended behavior
from the outset, so I believe it deserves a backport. Don't know if
the age of a regression prevents it from being considered a regression
or not.

Best regards,
Alexey