qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 05/18] hw/pci-host/bonito: Simplify soft reset using FIELD_EX32()


From: Philippe Mathieu-Daudé
Subject: [PATCH 05/18] hw/pci-host/bonito: Simplify soft reset using FIELD_EX32()
Date: Thu, 31 Dec 2020 23:48:58 +0100

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/pci-host/bonito.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c
index fe94e6740b5..104c58331d0 100644
--- a/hw/pci-host/bonito.c
+++ b/hw/pci-host/bonito.c
@@ -244,7 +244,6 @@ static void bonito_writel(void *opaque, hwaddr addr,
 {
     PCIBonitoState *s = opaque;
     uint32_t saddr;
-    int reset = 0;
 
     saddr = addr >> 2;
 
@@ -277,13 +276,12 @@ static void bonito_writel(void *opaque, hwaddr addr,
         s->regs[saddr] = val;
         break;
     case BONITO_BONGENCFG:
-        if (!(s->regs[saddr] & 0x04) && (val & 0x04)) {
-            reset = 1; /* bit 2 jump from 0 to 1 cause reset */
-        }
-        s->regs[saddr] = val;
-        if (reset) {
+        if (!FIELD_EX32(s->regs[saddr], BONGENCFG, CPUSELFRESET)
+                && FIELD_EX32(val, BONGENCFG, CPUSELFRESET)) {
+            /* bit 2 jump from 0 to 1 cause reset */
             qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
         }
+        s->regs[saddr] = val;
         break;
     case BONITO_INTENSET:
         s->regs[BONITO_INTENSET] = val;
-- 
2.26.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]