Since v1: - Rework API to only propagate when both clock_set and clock_set_mul_div modified the clock params (Peter & Luc). - Use that in zynq_slcr.
Per https://www.qemu.org/docs/master/devel/clocks.html#clock-multiplier-and-divider-settings: Note that clock_set_mul_div() does not automatically call clock_propagate(). If you make a runtime change to the multiplier or divider you must call clock_propagate() yourself. Fix what we forgot to do that in recent commit ec7d83acbd ("hw/misc/stm32l4x5_rcc: Add an internal clock multiplexer object") Arnaud Minier (1): hw/misc/stm32l4x5_rcc: Propagate period when enabling a clock Philippe Mathieu-Daudé (7): hw/clock: Have clock_set_mul_div() return early when nothing to change hw/clock: Pass optional &bool argument to clock_set() hw/clock: Pass optional &bool argument to clock_set_ns() hw/clock: Pass optional &bool argument to clock_set_hz() hw/clock: Pass optional &bool argument to clock_set_mul_div() hw/misc/stm32l4x5_rcc: Inline clock_update() in clock_mux_update() hw/misc/zynq_slcr: Only propagate clock changes when necessary docs/devel/clocks.rst | 6 +++++- include/hw/clock.h | 21 +++++++++++--------- hw/arm/aspeed.c | 2 +- hw/arm/fby35.c | 2 +- hw/arm/mps2-tz.c | 4 ++-- hw/arm/mps2.c | 4 ++-- hw/arm/mps3r.c | 2 +- hw/arm/msf2-soc.c | 2 +- hw/arm/msf2-som.c | 2 +- hw/arm/musca.c | 4 ++-- hw/arm/netduino2.c | 2 +- hw/arm/netduinoplus2.c | 2 +- hw/arm/nrf51_soc.c | 2 +- hw/arm/olimex-stm32-h405.c | 2 +- hw/arm/stellaris.c | 2 +- hw/arm/stm32f100_soc.c | 2 +- hw/arm/stm32f205_soc.c | 2 +- hw/arm/stm32f405_soc.c | 2 +- hw/arm/stm32vldiscovery.c | 2 +- hw/arm/xilinx_zynq.c | 2 +- hw/char/cadence_uart.c | 4 ++-- hw/core/clock.c | 19 +++++++++++++++---- hw/misc/bcm2835_cprman.c | 2 +- hw/misc/stm32l4x5_rcc.c | 9 +++++++-- hw/misc/zynq_slcr.c | 39 +++++++++++++++++++++++++------------- 25 files changed, 89 insertions(+), 53 deletions(-) -- 2.41.0