[PATCH 16/17] clk: Detect failure to set defaults

Simon Glass sjg at chromium.org
Mon May 10 18:28:06 CEST 2021


Hi Sean,

On Sat, 8 May 2021 at 18:40, Sean Anderson <seanga2 at gmail.com> wrote:
>
> On 5/8/21 6:00 PM, Simon Glass wrote:
> > When the default clocks cannot be set, the clock is silently probed and
> > the error is ignored. This is incorrect, since having the clocks at the
> > correct speed may be important for operation of the system.
> >
> > Fix it by checking the return code.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> >   drivers/clk/clk-uclass.c | 6 +++++-
> >   1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
> > index 4ab3c402ed8..2a2e1cfbd61 100644
> > --- a/drivers/clk/clk-uclass.c
> > +++ b/drivers/clk/clk-uclass.c
> > @@ -796,13 +796,17 @@ void devm_clk_put(struct udevice *dev, struct clk *clk)
> >
> >   int clk_uclass_post_probe(struct udevice *dev)
> >   {
> > +     int ret;
> > +
> >       /*
> >        * when a clock provider is probed. Call clk_set_defaults()
> >        * also after the device is probed. This takes care of cases
> >        * where the DT is used to setup default parents and rates
> >        * using assigned-clocks
> >        */
> > -     clk_set_defaults(dev, 1);
> > +     ret = clk_set_defaults(dev, 1);
> > +     if (ret)
> > +             return log_ret(ret);
> >
> >       return 0;
> >   }
> >
>
> See also: https://patchwork.ozlabs.org/project/uboot/patch/20210409021313.433558-2-seanga2@gmail.com/

So which should we do? My feeling is that a failure that is
programmatically silent could cause things to fail, but is there a
reason why this might be wrong but everything is still OK?

Regards,
Simon

> Reviewed-by: Sean Anderson <seanga2 at gmail.com>


More information about the U-Boot mailing list