Noticed this while trying to learn more about watchdog in general, and specifically on imx. WICR was used to "negate" writes to write-once registers, but those registers are part of WCR, not WICR (as can be seen from the fact that later WCR is assigned the value), so WCR should be used instead.
I had some trouble setting up git send-email, so I hope the format turned out OK. Signed-off-by: Shlomo Levi <[email protected]> --- hw/watchdog/wdt_imx2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/watchdog/wdt_imx2.c b/hw/watchdog/wdt_imx2.c index 10151a15d0..784ab79555 100644 --- a/hw/watchdog/wdt_imx2.c +++ b/hw/watchdog/wdt_imx2.c @@ -156,18 +156,18 @@ static void imx2_wdt_write(void *opaque, hwaddr addr, case IMX2_WDT_WCR: if (s->wcr_locked) { value &= ~IMX2_WDT_WCR_LOCK_MASK; - value |= (s->wicr & IMX2_WDT_WCR_LOCK_MASK); + value |= (s->wcr & IMX2_WDT_WCR_LOCK_MASK); } s->wcr_locked = true; if (s->wcr_wde_locked) { value &= ~IMX2_WDT_WCR_WDE; - value |= (s->wicr & ~IMX2_WDT_WCR_WDE); + value |= (s->wcr & ~IMX2_WDT_WCR_WDE); } else if (value & IMX2_WDT_WCR_WDE) { s->wcr_wde_locked = true; } if (s->wcr_wdt_locked) { value &= ~IMX2_WDT_WCR_WDT; - value |= (s->wicr & ~IMX2_WDT_WCR_WDT); + value |= (s->wcr & ~IMX2_WDT_WCR_WDT); } else if (value & IMX2_WDT_WCR_WDT) { s->wcr_wdt_locked = true; } --
