[PATCH 2/4] cmd: clk: replace clk_lookup by uclass_get_device_by_name
Sean Anderson
seanga2 at gmail.com
Tue Feb 1 15:43:41 CET 2022
On 1/31/22 11:21 AM, Patrick Delaunay wrote:
> The function clk_lookup can be replaced by a direct call
> to uclass_get_device_by_name for UCLASS_CLK.
>
> This patch removes duplicated codes by the generic DM API and avoids
> issue in clk_lookup because result of uclass_get_device wasn't tested;
> when ret < 0, dev = NULL and dev->name is invalid, the next function
> call strcmp(name, dev->name) causes a crash.
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
> ---
>
> cmd/clk.c | 18 +-----------------
> 1 file changed, 1 insertion(+), 17 deletions(-)
>
> diff --git a/cmd/clk.c b/cmd/clk.c
> index 52237791cf..d615f14a84 100644
> --- a/cmd/clk.c
> +++ b/cmd/clk.c
> @@ -99,20 +99,6 @@ static int do_clk_dump(struct cmd_tbl *cmdtp, int flag, int argc,
> }
>
> #if CONFIG_IS_ENABLED(DM) && CONFIG_IS_ENABLED(CLK)
> -struct udevice *clk_lookup(const char *name)
> -{
> - int i = 0;
> - struct udevice *dev;
> -
> - do {
> - uclass_get_device(UCLASS_CLK, i++, &dev);
> - if (!strcmp(name, dev->name))
> - return dev;
> - } while (dev);
> -
> - return NULL;
> -}
> -
> static int do_clk_setfreq(struct cmd_tbl *cmdtp, int flag, int argc,
> char *const argv[])
> {
> @@ -125,9 +111,7 @@ static int do_clk_setfreq(struct cmd_tbl *cmdtp, int flag, int argc,
>
> freq = dectoul(argv[2], NULL);
>
> - dev = clk_lookup(argv[1]);
> -
> - if (dev)
> + if (!uclass_get_device_by_name(UCLASS_CLK, argv[1], &dev))
> clk = dev_get_clk_ptr(dev);
>
> if (!clk) {
>
Reviewed-by: Sean Anderson
(This is such a strange command, since it can only handle CCF clocks)
More information about the U-Boot
mailing list