[RFC PATCH] clk: fix clk_get_rate() always return ulong

Simon Glass sjg at chromium.org
Sat Aug 27 02:20:55 CEST 2022


Hi,

On Fri, 26 Aug 2022 at 08:00, Sean Anderson <seanga2 at gmail.com> wrote:
>
> On 8/26/22 6:31 AM, Julien Masson wrote:
> > According to clk_ops struct definition, the callback `get_rate()`
> > return current clock rate value as ulong.
> > `clk_get_rate()` should handle the clock rate returned as ulong also.
> >
> > Otherwise we may have invalid/truncated clock rate value returned by
> > `clk_get_rate()`.
> >
> > `log_ret` has also been removed since it use an `int` in the macro
> > definition.
> >
> > Signed-off-by: Julien Masson <jmasson at baylibre.com>
> > ---
> >   drivers/clk/clk-uclass.c | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
> > index b89c77bf79..446f7c49b8 100644
> > --- a/drivers/clk/clk-uclass.c
> > +++ b/drivers/clk/clk-uclass.c
> > @@ -469,7 +469,7 @@ void clk_free(struct clk *clk)
> >   ulong clk_get_rate(struct clk *clk)
> >   {
> >       const struct clk_ops *ops;
> > -     int ret;
> > +     ulong ret;
> >
> >       debug("%s(clk=%p)\n", __func__, clk);
> >       if (!clk_valid(clk))
> > @@ -481,7 +481,7 @@ ulong clk_get_rate(struct clk *clk)
> >
> >       ret = ops->get_rate(clk);
> >       if (ret)
> > -             return log_ret(ret);

How about:

if (IS_ERR(ret))
   return log_ret(ret)

> > +             return ret;
> >
> >       return 0;
>
> This can just be return ret no if required.

Yes, but it is nice to have the 'success' path clear and at the end.

>
> >   }
> >

Regards,
Simon


More information about the U-Boot mailing list