From: Arnaud Minier <arnaud.min...@telecom-paris.fr> The "clock_set_mul_div" function doesn't propagate the clock period to the children if it is changed (e.g. by enabling/disabling a clock multiplexer). This was overlooked during the implementation due to late changes.
This commit propagates the change if the multiplier or divider changes. Fixes: ec7d83acbd ("hw/misc/stm32l4x5_rcc: Add an internal clock multiplexer object") Signed-off-by: Arnaud Minier <arnaud.min...@telecom-paris.fr> Signed-off-by: Inès Varhol <ines.var...@telecom-paris.fr> Message-ID: <20240317103918.44375-2-arnaud.min...@telecom-paris.fr> [PMD: Pass argument to clock_set_mul_div()] Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> --- hw/misc/stm32l4x5_rcc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/misc/stm32l4x5_rcc.c b/hw/misc/stm32l4x5_rcc.c index 8852b434db..166c727e52 100644 --- a/hw/misc/stm32l4x5_rcc.c +++ b/hw/misc/stm32l4x5_rcc.c @@ -61,7 +61,7 @@ static void clock_mux_update(RccClockMuxState *mux, bool bypass_source) freq_multiplier = mux->divider; } - clock_set_mul_div(mux->out, freq_multiplier, mux->multiplier, NULL); + clock_set_mul_div(mux->out, freq_multiplier, mux->multiplier, &clk_changed); clock_set(mux->out, clock_get(current_source), &clk_changed); if (clk_changed) { clock_propagate(mux->out); -- 2.41.0