All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
To: shentey@gmail.com, mst@redhat.com, marcel.apfelbaum@gmail.com,
	imammedo@redhat.com, ani@anisinha.ca, f4bug@amsat.org,
	aurelien@aurel32.net, pbonzini@redhat.com,
	richard.henderson@linaro.org, eduardo@habkost.net,
	hpoussin@reactos.org, qemu-devel@nongnu.org
Subject: [PATCH 08/12] hw/acpi/piix4: use qdev gpio to wire up sci_irq
Date: Sat, 28 May 2022 10:19:30 +0100	[thread overview]
Message-ID: <20220528091934.15520-9-mark.cave-ayland@ilande.co.uk> (raw)
In-Reply-To: <20220528091934.15520-1-mark.cave-ayland@ilande.co.uk>

The sci_irq can now be wired up directly using a qdev gpio instead of having to
set the IRQ externally in piix4_pm_initfn().

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
 hw/acpi/piix4.c               | 4 +---
 hw/i386/pc_piix.c             | 4 ++--
 hw/isa/piix4.c                | 6 +++---
 include/hw/southbridge/piix.h | 3 +--
 4 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index 454fa34df1..141852b7d4 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -506,8 +506,7 @@ static void piix4_pm_init(Object *obj)
 }
 
 PIIX4PMState *piix4_pm_initfn(PCIBus *bus, int devfn, uint32_t smb_io_base,
-                              qemu_irq sci_irq, qemu_irq smi_irq,
-                              int smm_enabled)
+                              qemu_irq smi_irq, int smm_enabled)
 {
     PCIDevice *pci_dev;
     DeviceState *dev;
@@ -519,7 +518,6 @@ PIIX4PMState *piix4_pm_initfn(PCIBus *bus, int devfn, uint32_t smb_io_base,
     qdev_prop_set_bit(dev, "smm-enabled", smm_enabled);
 
     s = PIIX4_PM(dev);
-    s->irq = sci_irq;
     s->smi_irq = smi_irq;
 
     pci_realize_and_unref(pci_dev, bus, &error_fatal);
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index ae21946981..21e6159166 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -285,9 +285,9 @@ static void pc_init1(MachineState *machine,
 
         smi_irq = qemu_allocate_irq(pc_acpi_smi_interrupt, first_cpu, 0);
         /* TODO: Populate SPD eeprom data.  */
-        piix4_pm = piix4_pm_initfn(pci_bus, piix3_devfn + 3, 0xb100,
-                                   x86ms->gsi[9], smi_irq,
+        piix4_pm = piix4_pm_initfn(pci_bus, piix3_devfn + 3, 0xb100, smi_irq,
                                    x86_machine_is_smm_enabled(x86ms));
+        qdev_connect_gpio_out(DEVICE(piix4_pm), 0, x86ms->gsi[9]);
         pcms->smbus = I2C_BUS(qdev_get_child_bus(DEVICE(piix4_pm), "i2c"));
         smbus_eeprom_init(pcms->smbus, 8, NULL, 0);
 
diff --git a/hw/isa/piix4.c b/hw/isa/piix4.c
index 33a7015ea3..0b6ea22143 100644
--- a/hw/isa/piix4.c
+++ b/hw/isa/piix4.c
@@ -311,9 +311,9 @@ DeviceState *piix4_create(PCIBus *pci_bus, ISABus **isa_bus, I2CBus **smbus)
 
     pci_create_simple(pci_bus, devfn + 2, "piix4-usb-uhci");
     if (smbus) {
-        pms = piix4_pm_initfn(pci_bus, devfn + 3, 0x1100,
-                              qdev_get_gpio_in_named(dev, "isa", 9),
-                              NULL, 0);
+        pms = piix4_pm_initfn(pci_bus, devfn + 3, 0x1100, NULL, 0);
+        qdev_connect_gpio_out(DEVICE(pms), 0,
+                              qdev_get_gpio_in_named(dev, "isa", 9));
         *smbus = I2C_BUS(qdev_get_child_bus(DEVICE(pms), "i2c"));
     }
 
diff --git a/include/hw/southbridge/piix.h b/include/hw/southbridge/piix.h
index 479d88e242..aefdaebc3f 100644
--- a/include/hw/southbridge/piix.h
+++ b/include/hw/southbridge/piix.h
@@ -17,8 +17,7 @@
 #include "hw/acpi/piix4.h"
 
 PIIX4PMState *piix4_pm_initfn(PCIBus *bus, int devfn, uint32_t smb_io_base,
-                              qemu_irq sci_irq, qemu_irq smi_irq,
-                              int smm_enabled);
+                              qemu_irq smi_irq, int smm_enabled);
 
 /* PIRQRC[A:D]: PIRQx Route Control Registers */
 #define PIIX_PIRQCA 0x60
-- 
2.20.1



  parent reply	other threads:[~2022-05-28  9:28 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-28  9:19 [PATCH 00/12] hw/acpi/piix4: remove legacy piix4_pm_init() function Mark Cave-Ayland
2022-05-28  9:19 ` [PATCH 01/12] hw/acpi/piix4: move xen_enabled() logic from piix4_pm_init() to piix4_pm_realize() Mark Cave-Ayland
2022-05-30  4:48   ` Ani Sinha
2022-05-28  9:19 ` [PATCH 02/12] hw/acpi/piix4: change smm_enabled from int to bool Mark Cave-Ayland
2022-05-30  4:56   ` Ani Sinha
2022-05-30 11:22     ` Philippe Mathieu-Daudé via
2022-05-28  9:19 ` [PATCH 03/12] hw/acpi/piix4: convert smm_enabled bool to qdev property Mark Cave-Ayland
2022-05-30  5:18   ` Ani Sinha
2022-05-28  9:19 ` [PATCH 04/12] hw/acpi/piix4: move PIIX4PMState into separate piix4.h header Mark Cave-Ayland
2022-05-29 19:02   ` Bernhard Beschow
2022-05-28  9:19 ` [PATCH 05/12] hw/acpi/piix4: alter piix4_pm_init() to return PIIX4PMState Mark Cave-Ayland
2022-05-29 18:24   ` Bernhard Beschow
2022-05-30 20:10     ` Mark Cave-Ayland
2022-05-28  9:19 ` [PATCH 06/12] hw/acpi/piix4: rename piix4_pm_init() to piix4_pm_initfn() Mark Cave-Ayland
2022-05-28  9:19 ` [PATCH 07/12] hw/acpi/piix4: introduce piix4_pm_init() instance init function Mark Cave-Ayland
2022-05-29 19:06   ` Bernhard Beschow
2022-05-30 10:44     ` Philippe Mathieu-Daudé via
2022-05-30 20:24     ` Mark Cave-Ayland
2022-05-28  9:19 ` Mark Cave-Ayland [this message]
2022-05-28  9:19 ` [PATCH 09/12] hw/acpi/piix4: use qdev gpio to wire up smi_irq Mark Cave-Ayland
2022-05-28  9:19 ` [PATCH 10/12] hw/i386/pc_piix: create PIIX4_PM device directly instead of using piix4_pm_initfn() Mark Cave-Ayland
2022-05-28  9:19 ` [PATCH 11/12] hw/isa/piix4.c: " Mark Cave-Ayland
2022-05-28  9:19 ` [PATCH 12/12] hw/acpi/piix4: remove unused piix4_pm_initfn() function Mark Cave-Ayland
2022-05-29 18:05 ` [PATCH 00/12] hw/acpi/piix4: remove legacy piix4_pm_init() function Philippe Mathieu-Daudé via
2022-05-29 18:31   ` Bernhard Beschow
2022-05-30 20:02   ` Mark Cave-Ayland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220528091934.15520-9-mark.cave-ayland@ilande.co.uk \
    --to=mark.cave-ayland@ilande.co.uk \
    --cc=ani@anisinha.ca \
    --cc=aurelien@aurel32.net \
    --cc=eduardo@habkost.net \
    --cc=f4bug@amsat.org \
    --cc=hpoussin@reactos.org \
    --cc=imammedo@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=shentey@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.