clk: Drop the rate range on clk_put()
authorMaxime Ripard <maxime@cerno.tech>
Fri, 25 Mar 2022 16:11:44 +0000 (17:11 +0100)
committerStephen Boyd <sboyd@kernel.org>
Fri, 25 Mar 2022 23:55:51 +0000 (16:55 -0700)
commit7dabfa2bc4803eed83d6f22bd6f045495f40636b
tree77beb2b4bb80e5a13d5f9a6f6d6f1c4f98174f05
parent481f541ced8fcf9af87bedf6f87c2023de22bf6e
clk: Drop the rate range on clk_put()

When clk_put() is called we don't make another clk_set_rate() call to
re-evaluate the rate boundaries. This is unlike clk_set_rate_range()
that evaluates the rate again each time it is called.

However, clk_put() is essentially equivalent to clk_set_rate_range()
since after clk_put() completes the consumer's boundaries shouldn't be
enforced anymore.

Let's add a call to clk_set_rate_range() in clk_put() to make sure those
rate boundaries are dropped and the clock provider drivers can react.

Also add a few tests to make sure this case is covered.

Fixes: c80ac50cbb37 ("clk: Always set the rate on clk_set_range_rate")
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20220325161144.1901695-4-maxime@cerno.tech
[sboyd@kernel.org: Reword commit text]
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk.c
drivers/clk/clk_test.c