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

Marek Vasut marex at denx.de
Wed Jan 5 20:35:19 CET 2022


On 1/1/22 22:41, Sean Anderson wrote:
> Hi Marek,

Hi,

> Please CC clock maintainers for future patches.

btw. I'm surprised the commit 92f1e9a4b31c0bf0f4f61ab823a6a88657323646 
has zero reviews/acks from clock maintainers.

> 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,

clock assignments can be anywhere, even in non-clock-controller nodes.

>    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'.

We didn't need custom DT properties before, Linux doesn't need them 
either, so that approach seems wrong.

If the clock driver could say "skip unimplemented clock, because I don't 
implement them and that is OK", that sounds like the right approach.

Unless the 2022.01 release should be completely broken for a lot of 
platforms, I would propose we revert the clock uclass patch now and 
re-add it right after the release, so we would not roll out a completely 
broken release and would have more time to fix this properly.


More information about the U-Boot mailing list