[PATCH] Revert "clk: Detect failure to set defaults"

Sean Anderson seanga2 at gmail.com
Sat Jan 1 22:41:25 CET 2022


Hi Marek,

Please CC clock maintainers for future patches.

On 1/1/22 1:51 PM, Marek Vasut wrote:
> This reverts commit 92f1e9a4b31c0bf0f4f61ab823a6a88657323646.
> The aforementioned patch causes massive breakage on all platforms which
> have 'assigned-clock' DT property in their DT which references any clock
> that are not supported by the platform clock driver. That can easily
> happen either in SPL, or because the clock driver is reduced. Currently
> it seems all iMX8M are affected and fail to boot altogether.
> 
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Peng Fan <peng.fan at oss.nxp.com>
> Cc: Simon Glass <sjg at chromium.org>
> ---
>   drivers/clk/clk-uclass.c | 6 +-----
>   1 file changed, 1 insertion(+), 5 deletions(-)
> 
> diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
> index f2d26427543..094b1abf13c 100644
> --- a/drivers/clk/clk-uclass.c
> +++ b/drivers/clk/clk-uclass.c
> @@ -846,17 +846,13 @@ 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
>   	 */
> -	ret = clk_set_defaults(dev, CLK_DEFAULTS_POST);
> -	if (ret)
> -		return log_ret(ret);
> +	clk_set_defaults(dev, CLK_DEFAULTS_POST);
>   
>   	return 0;
>   }
> 

See [1] for previous discussion. For more background,

- Device trees for i.MX are sync'd with Linux.
- General clock assignments may live in the clock-controller node,
   including those which U-Boot does not implement, but which Linux does.
   It's OK to not set up these clocks, but U-Boot doesn't know that and
   fails.

We don't necessarily need to revert this commit, but we do need a way to
say "it's OK not to set the defaults, since we can function without
them". Tom suggested doing this in the clock driver last time. I think a
Kconfig or a device tree property would work, perhaps something like
'u-boot,clock-defaults-optional'.

--Sean

[1] https://lore.kernel.org/u-boot/20211029012801.15193-1-peng.fan@oss.nxp.com/


More information about the U-Boot mailing list