diff options
| author | Jerome Brunet <jbrunet@baylibre.com> | 2026-07-23 11:39:51 +0200 |
|---|---|---|
| committer | Chen-Yu Tsai <wens@kernel.org> | 2026-07-24 00:02:02 +0800 |
| commit | 4bcba49984ff8c77729f003dd32082b10c02c23b (patch) | |
| tree | f287d2dc34b153f403c6429143a12bbee40ed124 /include/linux/timerqueue.h | |
| parent | c52b5090bf1e3b88745f8a81f264f34100ecde42 (diff) | |
clk: sunxi-ng: mux: fix determine helper rate propagation
Applying the pre divider on the parent rate is wrong because, while
handling rate propagation through determine_rate(), the framework will
likely round the parent rate again while cycling through the possibilities,
throwing away the prediv applied. This means, the parent rate will then
be wrong when the prediv is unapplied from a parent rate on which it
was never applied to begin with.
The right way to do it is to unapply the prediv from the requested rate,
which is the wanted rate at the input on the clock element, and pass this
to framework to do its thing.
Change the determine rate mux helper in this way.
Fixes: 1c8d7af61b37 ("clk: sunxi-ng: convert from divider_round_rate_parent() to divider_determine_rate()")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://patch.msgid.link/20260723-a733-rtc-v7-1-8fd68aab94ae@baylibre.com
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions
