Re: [PATCH] media: v4l2-common: Always register clock with device-specific name

From: Paul Cercueil

Date: Fri Mar 27 2026 - 15:52:41 EST


Hi Laurent,

Le vendredi 27 mars 2026 à 20:06 +0200, Laurent Pinchart a écrit :
> On Fri, Mar 27, 2026 at 06:52:12PM +0100, Paul Cercueil wrote:
> > If we need to register a dummy fixed-frequency clock, always
> > register it
> > using a device-specific name.
> >
> > This supports the use case where a system has two of the same
> > sensor,
> > meaning two instances of the same driver, which previously both
> > tried
> > (and failed) to create a clock with the same name.
> >
> > Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx>
> > ---
> >  drivers/media/v4l2-core/v4l2-common.c | 11 ++++-------
> >  1 file changed, 4 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/media/v4l2-core/v4l2-common.c
> > b/drivers/media/v4l2-core/v4l2-common.c
> > index 554c591e1113..5f3295c3122a 100644
> > --- a/drivers/media/v4l2-core/v4l2-common.c
> > +++ b/drivers/media/v4l2-core/v4l2-common.c
> > @@ -792,14 +792,11 @@ struct clk *__devm_v4l2_sensor_clk_get(struct
> > device *dev, const char *id,
> >   if (ret)
> >   return ERR_PTR(ret == -EINVAL ? -EPROBE_DEFER :
> > ret);
> >  
> > - if (!id) {
> > - clk_id = kasprintf(GFP_KERNEL, "clk-%s",
> > dev_name(dev));
> > - if (!clk_id)
> > - return ERR_PTR(-ENOMEM);
> > - id = clk_id;
> > - }
> > + clk_id = kasprintf(GFP_KERNEL, "clk-%s", dev_name(dev));
>
> This will now fail if the same device needs to register two clocks.
> You
> need to include the id in the name. Maybe something like
>
> clk_id = kasprintf(GFP_KERNEL, "clk-%s-%s", dev_name(dev),
> id);

Ha, good point. I'll v2.

Cheers,
-Paul

>
> > + if (!clk_id)
> > + return ERR_PTR(-ENOMEM);
> >  
> > - clk_hw = devm_clk_hw_register_fixed_rate(dev, id, NULL, 0,
> > rate);
> > + clk_hw = devm_clk_hw_register_fixed_rate(dev, clk_id,
> > NULL, 0, rate);
> >   if (IS_ERR(clk_hw))
> >   return ERR_CAST(clk_hw);
> >