mbox series

[PATCH-for-9.0?,v2,0/8] hw/clock: Propagate clock changes when STM32L4X5 MUX is updated

Message ID 20240325133259.57235-1-philmd@linaro.org
Headers show
Series hw/clock: Propagate clock changes when STM32L4X5 MUX is updated | expand

Message

Philippe Mathieu-Daudé March 25, 2024, 1:32 p.m. UTC
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(-)