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

Philippe Mathieu-Daudé posted 3 patches 1 month ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240325152827.73817-1-philmd@linaro.org
Maintainers: Luc Michel <luc@lmichel.fr>, Damien Hedde <damien.hedde@dahe.fr>, Arnaud Minier <arnaud.minier@telecom-paris.fr>, "Inès Varhol" <ines.varhol@telecom-paris.fr>
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(-)
[PATCH-for-9.0 v3 0/3] hw/clock: Propagate clock changes when STM32L4X5 MUX is updated
Posted by Philippe Mathieu-Daudé 1 month ago
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(-)

-- 
2.41.0


Re: [PATCH-for-9.0 v3 0/3] hw/clock: Propagate clock changes when STM32L4X5 MUX is updated
Posted by Philippe Mathieu-Daudé 1 month ago
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!).