• Maxime Ripard's avatar
    clk: Drop the rate range on clk_put() · 7dabfa2b
    Maxime Ripard authored
    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: c80ac50c ("clk: Always set the rate on clk_set_range_rate")
    Signed-off-by: default avatarMaxime 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: default avatarStephen Boyd <sboyd@kernel.org>
    7dabfa2b
clk_test.c 25.2 KB