diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2021-06-07 16:12:56 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2021-06-09 13:52:22 +0200 |
commit | 923e9d37912059378c5efab3244ebcbfbcd6833d (patch) | |
tree | 4b6d52b9b0541c304f72c81d6a7681c5f8630aa4 /drivers | |
parent | b2cc56e396b666f0c4d373a76e6660e95193c165 (diff) | |
download | barebox-923e9d37912059378c5efab3244ebcbfbcd6833d.tar.gz barebox-923e9d37912059378c5efab3244ebcbfbcd6833d.tar.xz |
clk: bail out early when rate is already desired one
Return successfully from clk_set_rate() when the rate is already the
desired one. This prevents a failure in clk_set_rate() when the current
clock doesn't have a set_rate hook.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Link: https://lore.barebox.org/20210607141256.24801-1-s.hauer@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/clk/clk.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 8b90f30486..ba726c342c 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -169,6 +169,9 @@ int clk_set_rate(struct clk *clk, unsigned long rate) if (IS_ERR(clk)) return PTR_ERR(clk); + if (clk_get_rate(clk) == clk_round_rate(clk, rate)) + return 0; + if (!clk->ops->set_rate) return -ENOSYS; |