mbox series

[PATCH-for-9.0,v3,0/3] hw/clock: Propagate clock changes when STM32L4X5 MUX is updated

Message ID 20240325152827.73817-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, 3:28 p.m. UTC
Since v2:
- Simpler approach

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é (2):
  hw/clock: Let clock_set_mul_div() return a boolean value
  hw/misc/stm32l4x5_rcc: Inline clock_update() in clock_mux_update()

 docs/devel/clocks.rst   | 4 ++++
 include/hw/clock.h      | 4 +++-
 hw/core/clock.c         | 8 +++++++-
 hw/misc/stm32l4x5_rcc.c | 9 +++++++--
 4 files changed, 21 insertions(+), 4 deletions(-)

Comments

Philippe Mathieu-Daudé March 26, 2024, 1:16 p.m. UTC | #1
On 25/3/24 16:28, Philippe Mathieu-Daudé wrote:

> 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é (2):
>    hw/clock: Let clock_set_mul_div() return a boolean value
>    hw/misc/stm32l4x5_rcc: Inline clock_update() in clock_mux_update()

Series queued (thanks Alistair!).