mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 14:38:58 +00:00
clk: Check that composite clock's div has set_rate()
It's possible for composite clocks to have a divider that does not implement set_rate() operation. For example, sandbox_clk_composite() registers composite clock with a divider that only has get_rate(). Currently clk_composite_set_rate() only checks thate rate_ops are present, so for sandbox it will cause NULL dereference during clk_set_rate(). This patch adds rate_ops->set_rate check tp clk_composite_set_rate(). Signed-off-by: Igor Prusov <ivprusov@salutedevices.com> Reviewed-by: Sean Anderson <seanga2@gmail.com> Link: https://lore.kernel.org/r/20231205232334.2931-2-ivprusov@salutedevices.com
This commit is contained in:
parent
3fb2d3d6ac
commit
54d7da7730
1 changed files with 1 additions and 1 deletions
|
@ -66,7 +66,7 @@ static ulong clk_composite_set_rate(struct clk *clk, unsigned long rate)
|
|||
const struct clk_ops *rate_ops = composite->rate_ops;
|
||||
struct clk *clk_rate = composite->rate;
|
||||
|
||||
if (rate && rate_ops)
|
||||
if (rate && rate_ops && rate_ops->set_rate)
|
||||
return rate_ops->set_rate(clk_rate, rate);
|
||||
else
|
||||
return clk_get_rate(clk);
|
||||
|
|
Loading…
Add table
Reference in a new issue