clk: divider: read-only divider can propagate rate change
authorJerome Brunet <jbrunet@baylibre.com>
Wed, 14 Feb 2018 13:43:39 +0000 (14:43 +0100)
committerStephen Boyd <sboyd@kernel.org>
Mon, 12 Mar 2018 22:10:26 +0000 (15:10 -0700)
commitb15ee490e16324c35b51f04bad54ae45a2cefd29
treedfeb7a5ca3267f44b15ab44013e9d2af637a7b2e
parentfe3f338f0cb2ed4d4f06da054c21ae2f8a36ef2d
clk: divider: read-only divider can propagate rate change

When a divider clock has CLK_DIVIDER_READ_ONLY set, it means that the
register shall be left un-touched, but it does not mean the clock
should stop rate propagation if CLK_SET_RATE_PARENT is set

This is properly handled in qcom clk-regmap-divider but it was not in
the generic divider

To fix this situation, introduce a new helper function
divider_ro_round_rate, on the same model as divider_round_rate.

Fixes: e6d5e7d90be9 ("clk-divider: Fix READ_ONLY when divider > 1")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Tested-By: David Lechner <david@lechnology.com>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-divider.c
include/linux/clk-provider.h