[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH qemu.git v2 5/9] hw/timer/imx_epit: do not persist CR.SWR bit
From: |
~axelheider |
Subject: |
[PATCH qemu.git v2 5/9] hw/timer/imx_epit: do not persist CR.SWR bit |
Date: |
Wed, 02 Nov 2022 16:36:43 +0100 |
From: Axel Heider <axel.heider@hensoldt.net>
Signed-off-by: Axel Heider <axel.heider@hensoldt.net>
---
hw/timer/imx_epit.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/hw/timer/imx_epit.c b/hw/timer/imx_epit.c
index 5315d9633e..6af460946f 100644
--- a/hw/timer/imx_epit.c
+++ b/hw/timer/imx_epit.c
@@ -191,8 +191,9 @@ static void imx_epit_write(void *opaque, hwaddr offset,
uint64_t value,
case 0: /* CR */
oldcr = s->cr;
- s->cr = value & 0x03ffffff;
- if (s->cr & CR_SWR) {
+ /* SWR bit is never persisted, it clears itself once reset is done */
+ s->cr = (value & ~CR_SWR) & 0x03ffffff;
+ if (value & CR_SWR) {
/* handle the reset */
imx_epit_reset(DEVICE(s));
/*
@@ -205,7 +206,7 @@ static void imx_epit_write(void *opaque, hwaddr offset,
uint64_t value,
ptimer_transaction_begin(s->timer_reload);
/* Update the frequency. Has been done already in case of a reset. */
- if (!(s->cr & CR_SWR)) {
+ if (!(value & CR_SWR)) {
imx_epit_set_freq(s);
}
--
2.34.5
- [PATCH qemu.git v2 0/9] hw/timer/imx_epit: imprive and fix compare timer handling, ~axelheider, 2022/11/07
- [PATCH qemu.git v2 4/9] hw/timer/imx_epit: software reset clears the interrupt, ~axelheider, 2022/11/07
- [PATCH qemu.git v2 1/9] hw/timer/imx_epit: improve comments, ~axelheider, 2022/11/07
- [PATCH qemu.git v2 5/9] hw/timer/imx_epit: do not persist CR.SWR bit,
~axelheider <=
- [PATCH qemu.git v2 3/9] hw/timer/imx_epit: simplify interrupt logic, ~axelheider, 2022/11/07
- [PATCH qemu.git v2 2/9] hw/timer/imx_epit: cleanup CR defines, ~axelheider, 2022/11/07
- [PATCH qemu.git v2 9/9] hw/timer/imx_epit: fix compare timer handling, ~axelheider, 2022/11/07