OSDN Git Service

hw/sd/allwinner-sdhost: Don't send non-boolean IRQ line levels
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 6 Jun 2023 10:46:09 +0000 (11:46 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 19 Jun 2023 10:24:21 +0000 (11:24 +0100)
QEMU allows qemu_irq lines to transfer arbitrary integers.  However
the convention is that for a simple IRQ line the values transferred
are always 0 and 1.  The A10 SD controller device instead assumes a
0-vs-non-0 convention, which happens to work with the interrupt
controller it is wired up to.

Coerce the value to boolean to follow our usual convention.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Message-id: 20230606104609.3692557-3-peter.maydell@linaro.org

hw/sd/allwinner-sdhost.c

index 286e009..1a576d6 100644 (file)
@@ -193,7 +193,7 @@ static void allwinner_sdhost_update_irq(AwSdHostState *s)
     }
 
     trace_allwinner_sdhost_update_irq(irq);
-    qemu_set_irq(s->irq, irq);
+    qemu_set_irq(s->irq, !!irq);
 }
 
 static void allwinner_sdhost_update_transfer_cnt(AwSdHostState *s,