All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice
@ 2022-02-22 19:34 Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 01/22] hw/rtc/mc146818rtc: QOM'ify IRQ number Bernhard Beschow
                   ` (22 more replies)
  0 siblings, 23 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Bernhard Beschow

v2:
The newly QOM'ified devices now report an error to the user in their realize
functions if the configured IRQ number is greater than 15.

v1:
The IRQ attributes of ISADevice are hardcoded to support up to two IRQs per
device which creates an artificial limit. By not having the attributes in the
first place, this limitation can be avoided altogether.

The IRQ attributes are mostly used for printing ('info qtree') and there is one
user, hw/ppc/pnv, to use the attributes directly. As it turns out, the printing
is redundant if the IRQ numbers are exposed as QOM properties and hw/ppc/pnv
can be easily ported away.

The patch series is structured as follows: Patch 1-3 QOM'ify the last devices
which rely on printing their IRQ numbers via the ISADevice attributes. Patch
4 and 5 remove the last users of the ISADevice attributes such that they can be
removed in patch 6. The remainder of the patch series is cleanup.

Patch 6 turns isa_init_irq() into a trivial wrapper for isa_get_irq(). That is,
the former function becomes redundant. All users are therefore converted to use
isa_get_irq() directly. Finally, the last patch removes the now unused
isa_init_irq().


Bernhard Beschow (22):
  hw/rtc/mc146818rtc: QOM'ify IRQ number
  hw/rtc/m48t59-isa: QOM'ify IRQ number
  hw/input/pckbd: QOM'ify IRQ numbers
  hw/isa/isa-bus: Remove isabus_dev_print()
  hw/ppc/pnv: Determine ns16550's IRQ number from QOM property
  isa: Drop unused attributes from ISADevice
  hw/audio/cs4231a: Disuse isa_init_irq()
  hw/audio/gus: Disuse isa_init_irq()
  hw/audio/sb16: Disuse isa_init_irq()
  hw/block/fdc-isa: Disuse isa_init_irq()
  hw/char/parallel: Disuse isa_init_irq()
  hw/char/serial-isa: Disuse isa_init_irq()
  hw/ide/isa: Disuse isa_init_irq()
  hw/input/pckbd: Disuse isa_init_irq()
  hw/ipmi/isa_ipmi_bt: Disuse isa_init_irq()
  hw/ipmi/isa_ipmi_kcs: Disuse isa_init_irq()
  hw/isa/piix4: Disuse isa_init_irq()
  hw/net/ne2000-isa: Disuse isa_init_irq()
  hw/rtc/m48t59-isa: Disuse isa_init_irq()
  hw/tpm/tpm_tis_isa: Disuse isa_init_irq()
  hw/isa/isa-bus: Disuse isa_init_irq()
  isa: Remove unused isa_init_irq()

 hw/audio/cs4231a.c           |  2 +-
 hw/audio/gus.c               |  2 +-
 hw/audio/sb16.c              |  2 +-
 hw/block/fdc-isa.c           |  2 +-
 hw/char/parallel.c           |  2 +-
 hw/char/serial-isa.c         |  2 +-
 hw/ide/isa.c                 |  2 +-
 hw/input/pckbd.c             | 26 +++++++++++++++++++++----
 hw/ipmi/isa_ipmi_bt.c        |  2 +-
 hw/ipmi/isa_ipmi_kcs.c       |  2 +-
 hw/isa/isa-bus.c             | 37 +-----------------------------------
 hw/isa/piix4.c               |  2 +-
 hw/net/ne2000-isa.c          |  2 +-
 hw/ppc/pnv.c                 |  5 ++++-
 hw/rtc/m48t59-isa.c          |  9 ++++++++-
 hw/rtc/mc146818rtc.c         | 13 +++++++++++--
 hw/tpm/tpm_tis_isa.c         |  2 +-
 include/hw/isa/isa.h         |  3 ---
 include/hw/rtc/mc146818rtc.h |  1 +
 tests/qemu-iotests/172.out   | 26 -------------------------
 20 files changed, 59 insertions(+), 85 deletions(-)

-- 
2.35.1



^ permalink raw reply	[flat|nested] 38+ messages in thread

* [PATCH v2 01/22] hw/rtc/mc146818rtc: QOM'ify IRQ number
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-27 22:10   ` Philippe Mathieu-Daudé
  2022-02-22 19:34 ` [PATCH v2 02/22] hw/rtc/m48t59-isa: " Bernhard Beschow
                   ` (21 subsequent siblings)
  22 siblings, 1 reply; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Philippe Mathieu-Daudé,
	Hervé Poussineau, Paolo Bonzini, Bernhard Beschow,
	Aurelien Jarno

Exposing the IRQ number as a QOM property not only allows it to be
configurable but also to be printed by standard QOM mechanisms. This allows
isabus_dev_print() to be retired eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/isa/piix4.c               |  2 +-
 hw/rtc/mc146818rtc.c         | 13 +++++++++++--
 include/hw/rtc/mc146818rtc.h |  1 +
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/hw/isa/piix4.c b/hw/isa/piix4.c
index 0fe7b69bc4..cb291d121c 100644
--- a/hw/isa/piix4.c
+++ b/hw/isa/piix4.c
@@ -197,7 +197,7 @@ static void piix4_realize(PCIDevice *dev, Error **errp)
     if (!qdev_realize(DEVICE(&s->rtc), BUS(isa_bus), errp)) {
         return;
     }
-    isa_init_irq(ISA_DEVICE(&s->rtc), &s->rtc.irq, RTC_ISA_IRQ);
+    isa_init_irq(ISA_DEVICE(&s->rtc), &s->rtc.irq, s->rtc.isairq);
 
     piix4_dev = dev;
 }
diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c
index e61a0cced4..eda9af65c4 100644
--- a/hw/rtc/mc146818rtc.c
+++ b/hw/rtc/mc146818rtc.c
@@ -911,6 +911,11 @@ static void rtc_realizefn(DeviceState *dev, Error **errp)
         s->base_year = 0;
     }
 
+    if (s->isairq >= ISA_NUM_IRQS) {
+        error_setg(errp, "Maximum value for \"irq\" is: %d", ISA_NUM_IRQS - 1);
+        return;
+    }
+
     rtc_set_date_from_host(isadev);
 
     switch (s->lost_tick_policy) {
@@ -956,15 +961,17 @@ ISADevice *mc146818_rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq)
 {
     DeviceState *dev;
     ISADevice *isadev;
+    RTCState *s;
 
     isadev = isa_new(TYPE_MC146818_RTC);
     dev = DEVICE(isadev);
+    s = MC146818_RTC(isadev);
     qdev_prop_set_int32(dev, "base_year", base_year);
     isa_realize_and_unref(isadev, bus, &error_fatal);
     if (intercept_irq) {
         qdev_connect_gpio_out(dev, 0, intercept_irq);
     } else {
-        isa_connect_gpio_out(isadev, 0, RTC_ISA_IRQ);
+        isa_connect_gpio_out(isadev, 0, s->isairq);
     }
 
     object_property_add_alias(qdev_get_machine(), "rtc-time", OBJECT(isadev),
@@ -975,6 +982,7 @@ ISADevice *mc146818_rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq)
 
 static Property mc146818rtc_properties[] = {
     DEFINE_PROP_INT32("base_year", RTCState, base_year, 1980),
+    DEFINE_PROP_UINT32("irq", RTCState, isairq, RTC_ISA_IRQ),
     DEFINE_PROP_LOSTTICKPOLICY("lost_tick_policy", RTCState,
                                lost_tick_policy, LOST_TICK_POLICY_DISCARD),
     DEFINE_PROP_END_OF_LIST(),
@@ -1010,6 +1018,7 @@ static void rtc_reset_hold(Object *obj)
 
 static void rtc_build_aml(ISADevice *isadev, Aml *scope)
 {
+    RTCState *s = MC146818_RTC(isadev);
     Aml *dev;
     Aml *crs;
 
@@ -1020,7 +1029,7 @@ static void rtc_build_aml(ISADevice *isadev, Aml *scope)
     crs = aml_resource_template();
     aml_append(crs, aml_io(AML_DECODE16, RTC_ISA_BASE, RTC_ISA_BASE,
                            0x01, 0x08));
-    aml_append(crs, aml_irq_no_flags(RTC_ISA_IRQ));
+    aml_append(crs, aml_irq_no_flags(s->isairq));
 
     dev = aml_device("RTC");
     aml_append(dev, aml_name_decl("_HID", aml_eisaid("PNP0B00")));
diff --git a/include/hw/rtc/mc146818rtc.h b/include/hw/rtc/mc146818rtc.h
index 5b45b22924..c7586589ad 100644
--- a/include/hw/rtc/mc146818rtc.h
+++ b/include/hw/rtc/mc146818rtc.h
@@ -26,6 +26,7 @@ struct RTCState {
     uint8_t cmos_data[128];
     uint8_t cmos_index;
     int32_t base_year;
+    uint32_t isairq;
     uint64_t base_rtc;
     uint64_t last_update;
     int64_t offset;
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 02/22] hw/rtc/m48t59-isa: QOM'ify IRQ number
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 01/22] hw/rtc/mc146818rtc: QOM'ify IRQ number Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-27 22:13   ` Philippe Mathieu-Daudé
  2022-02-22 19:34 ` [PATCH v2 03/22] hw/input/pckbd: QOM'ify IRQ numbers Bernhard Beschow
                   ` (20 subsequent siblings)
  22 siblings, 1 reply; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: open list:PReP, Hervé Poussineau, Bernhard Beschow

Exposing the IRQ number as a QOM property not only allows it to be
configurable but also to be printed by standard QOM mechanisms. This allows
isabus_dev_print() to be retired eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/rtc/m48t59-isa.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/hw/rtc/m48t59-isa.c b/hw/rtc/m48t59-isa.c
index dc21fb10a5..cd63138e1e 100644
--- a/hw/rtc/m48t59-isa.c
+++ b/hw/rtc/m48t59-isa.c
@@ -42,6 +42,7 @@ struct M48txxISAState {
     ISADevice parent_obj;
     M48t59State state;
     uint32_t io_base;
+    uint32_t isairq;
     MemoryRegion io;
 };
 
@@ -79,6 +80,7 @@ static void m48txx_isa_toggle_lock(Nvram *obj, int lock)
 static Property m48t59_isa_properties[] = {
     DEFINE_PROP_INT32("base-year", M48txxISAState, state.base_year, 0),
     DEFINE_PROP_UINT32("iobase", M48txxISAState, io_base, 0x74),
+    DEFINE_PROP_UINT32("irq", M48txxISAState, isairq, 8),
     DEFINE_PROP_END_OF_LIST(),
 };
 
@@ -97,9 +99,14 @@ static void m48t59_isa_realize(DeviceState *dev, Error **errp)
     M48txxISAState *d = M48TXX_ISA(dev);
     M48t59State *s = &d->state;
 
+    if (d->isairq >= ISA_NUM_IRQS) {
+        error_setg(errp, "Maximum value for \"irq\" is: %d", ISA_NUM_IRQS - 1);
+        return;
+    }
+
     s->model = u->info.model;
     s->size = u->info.size;
-    isa_init_irq(isadev, &s->IRQ, 8);
+    isa_init_irq(isadev, &s->IRQ, d->isairq);
     m48t59_realize_common(s, errp);
     memory_region_init_io(&d->io, OBJECT(dev), &m48t59_io_ops, s, "m48t59", 4);
     if (d->io_base != 0) {
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 03/22] hw/input/pckbd: QOM'ify IRQ numbers
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 01/22] hw/rtc/mc146818rtc: QOM'ify IRQ number Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 02/22] hw/rtc/m48t59-isa: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-27 22:14   ` Philippe Mathieu-Daudé
  2022-02-22 19:34 ` [PATCH v2 04/22] hw/isa/isa-bus: Remove isabus_dev_print() Bernhard Beschow
                   ` (19 subsequent siblings)
  22 siblings, 1 reply; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, Bernhard Beschow, Michael S. Tsirkin

Exposing the IRQ numbers as a QOM properties not only allows them to be
configurable but also to be printed by standard QOM mechanisms. This allows
isabus_dev_print() to be retired eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/input/pckbd.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
index baba62f357..56c55c5768 100644
--- a/hw/input/pckbd.c
+++ b/hw/input/pckbd.c
@@ -26,6 +26,7 @@
 #include "qemu/error-report.h"
 #include "qemu/log.h"
 #include "qemu/timer.h"
+#include "qapi/error.h"
 #include "hw/isa/isa.h"
 #include "migration/vmstate.h"
 #include "hw/acpi/aml-build.h"
@@ -671,6 +672,8 @@ struct ISAKBDState {
     KBDState kbd;
     bool kbd_throttle;
     MemoryRegion io[2];
+    uint32_t kbd_irq;
+    uint32_t mouse_irq;
 };
 
 void i8042_isa_mouse_fake_event(ISAKBDState *isa)
@@ -734,8 +737,20 @@ static void i8042_realizefn(DeviceState *dev, Error **errp)
     ISAKBDState *isa_s = I8042(dev);
     KBDState *s = &isa_s->kbd;
 
-    isa_init_irq(isadev, &s->irq_kbd, 1);
-    isa_init_irq(isadev, &s->irq_mouse, 12);
+    if (isa_s->kbd_irq >= ISA_NUM_IRQS) {
+        error_setg(errp, "Maximum value for \"kbd-irq\" is: %d",
+                   ISA_NUM_IRQS - 1);
+        return;
+    }
+
+    if (isa_s->mouse_irq >= ISA_NUM_IRQS) {
+        error_setg(errp, "Maximum value for \"mouse-irq\" is: %d",
+                   ISA_NUM_IRQS - 1);
+        return;
+    }
+
+    isa_init_irq(isadev, &s->irq_kbd, isa_s->kbd_irq);
+    isa_init_irq(isadev, &s->irq_mouse, isa_s->mouse_irq);
 
     isa_register_ioport(isadev, isa_s->io + 0, 0x60);
     isa_register_ioport(isadev, isa_s->io + 1, 0x64);
@@ -754,6 +769,7 @@ static void i8042_realizefn(DeviceState *dev, Error **errp)
 
 static void i8042_build_aml(ISADevice *isadev, Aml *scope)
 {
+    ISAKBDState *isa_s = I8042(isadev);
     Aml *kbd;
     Aml *mou;
     Aml *crs;
@@ -761,7 +777,7 @@ static void i8042_build_aml(ISADevice *isadev, Aml *scope)
     crs = aml_resource_template();
     aml_append(crs, aml_io(AML_DECODE16, 0x0060, 0x0060, 0x01, 0x01));
     aml_append(crs, aml_io(AML_DECODE16, 0x0064, 0x0064, 0x01, 0x01));
-    aml_append(crs, aml_irq_no_flags(1));
+    aml_append(crs, aml_irq_no_flags(isa_s->kbd_irq));
 
     kbd = aml_device("KBD");
     aml_append(kbd, aml_name_decl("_HID", aml_eisaid("PNP0303")));
@@ -769,7 +785,7 @@ static void i8042_build_aml(ISADevice *isadev, Aml *scope)
     aml_append(kbd, aml_name_decl("_CRS", crs));
 
     crs = aml_resource_template();
-    aml_append(crs, aml_irq_no_flags(12));
+    aml_append(crs, aml_irq_no_flags(isa_s->mouse_irq));
 
     mou = aml_device("MOU");
     aml_append(mou, aml_name_decl("_HID", aml_eisaid("PNP0F13")));
@@ -783,6 +799,8 @@ static void i8042_build_aml(ISADevice *isadev, Aml *scope)
 static Property i8042_properties[] = {
     DEFINE_PROP_BOOL("extended-state", ISAKBDState, kbd.extended_state, true),
     DEFINE_PROP_BOOL("kbd-throttle", ISAKBDState, kbd_throttle, false),
+    DEFINE_PROP_UINT32("kbd-irq", ISAKBDState, kbd_irq, 1),
+    DEFINE_PROP_UINT32("mouse-irq", ISAKBDState, mouse_irq, 12),
     DEFINE_PROP_END_OF_LIST(),
 };
 
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 04/22] hw/isa/isa-bus: Remove isabus_dev_print()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (2 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 03/22] hw/input/pckbd: QOM'ify IRQ numbers Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-27 22:39   ` Philippe Mathieu-Daudé
  2022-02-22 19:34 ` [PATCH v2 05/22] hw/ppc/pnv: Determine ns16550's IRQ number from QOM property Bernhard Beschow
                   ` (18 subsequent siblings)
  22 siblings, 1 reply; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, Hanna Reitz, Bernhard Beschow, open list:Block layer core

All isabus_dev_print() did was to print up to two IRQ numbers per
device. This is redundant if the IRQ numbers are present as QOM
properties (see e.g. the modified tests/qemu-iotests/172.out).

Now that the last devices relying on isabus_dev_print() had their IRQ
numbers QOM'ified, the contribution of this function ultimately became
redundant. Remove it.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/isa/isa-bus.c           | 16 ----------------
 tests/qemu-iotests/172.out | 26 --------------------------
 2 files changed, 42 deletions(-)

diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
index 6c31398dda..af5add6a26 100644
--- a/hw/isa/isa-bus.c
+++ b/hw/isa/isa-bus.c
@@ -21,21 +21,18 @@
 #include "qemu/error-report.h"
 #include "qemu/module.h"
 #include "qapi/error.h"
-#include "monitor/monitor.h"
 #include "hw/sysbus.h"
 #include "sysemu/sysemu.h"
 #include "hw/isa/isa.h"
 
 static ISABus *isabus;
 
-static void isabus_dev_print(Monitor *mon, DeviceState *dev, int indent);
 static char *isabus_get_fw_dev_path(DeviceState *dev);
 
 static void isa_bus_class_init(ObjectClass *klass, void *data)
 {
     BusClass *k = BUS_CLASS(klass);
 
-    k->print_dev = isabus_dev_print;
     k->get_fw_dev_path = isabus_get_fw_dev_path;
 }
 
@@ -222,19 +219,6 @@ void isa_build_aml(ISABus *bus, Aml *scope)
     }
 }
 
-static void isabus_dev_print(Monitor *mon, DeviceState *dev, int indent)
-{
-    ISADevice *d = ISA_DEVICE(dev);
-
-    if (d->isairq[1] != -1) {
-        monitor_printf(mon, "%*sisa irqs %d,%d\n", indent, "",
-                       d->isairq[0], d->isairq[1]);
-    } else if (d->isairq[0] != -1) {
-        monitor_printf(mon, "%*sisa irq %d\n", indent, "",
-                       d->isairq[0]);
-    }
-}
-
 static void isabus_bridge_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
diff --git a/tests/qemu-iotests/172.out b/tests/qemu-iotests/172.out
index 4cf4d536b4..9479b92185 100644
--- a/tests/qemu-iotests/172.out
+++ b/tests/qemu-iotests/172.out
@@ -15,7 +15,6 @@ Testing:
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -43,7 +42,6 @@ Testing: -fda TEST_DIR/t.qcow2
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -81,7 +79,6 @@ Testing: -fdb TEST_DIR/t.qcow2
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -135,7 +132,6 @@ Testing: -fda TEST_DIR/t.qcow2 -fdb TEST_DIR/t.qcow2.2
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -190,7 +186,6 @@ Testing: -fdb
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -230,7 +225,6 @@ Testing: -drive if=floppy,file=TEST_DIR/t.qcow2
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -268,7 +262,6 @@ Testing: -drive if=floppy,file=TEST_DIR/t.qcow2,index=1
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -322,7 +315,6 @@ Testing: -drive if=floppy,file=TEST_DIR/t.qcow2 -drive if=floppy,file=TEST_DIR/t
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -380,7 +372,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -418,7 +409,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0,unit=1
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -456,7 +446,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qco
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -520,7 +509,6 @@ Testing: -fda TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -device fl
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -575,7 +563,6 @@ Testing: -fda TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -device fl
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -630,7 +617,6 @@ Testing: -fdb TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -device fl
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -685,7 +671,6 @@ Testing: -fdb TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.qcow2.2 -device fl
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -749,7 +734,6 @@ Testing: -drive if=floppy,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.q
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -804,7 +788,6 @@ Testing: -drive if=floppy,file=TEST_DIR/t.qcow2 -drive if=none,file=TEST_DIR/t.q
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -865,7 +848,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -global floppy.drive=none0 -device
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -933,7 +915,6 @@ Testing: -device floppy
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -958,7 +939,6 @@ Testing: -device floppy,drive-type=120
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -983,7 +963,6 @@ Testing: -device floppy,drive-type=144
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -1008,7 +987,6 @@ Testing: -device floppy,drive-type=288
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -1036,7 +1014,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0,drive-t
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -1074,7 +1051,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0,drive-t
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -1115,7 +1091,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0,logical
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
@@ -1153,7 +1128,6 @@ Testing: -drive if=none,file=TEST_DIR/t.qcow2 -device floppy,drive=none0,physica
             fdtypeA = "auto"
             fdtypeB = "auto"
             fallback = "288"
-            isa irq 6
             bus: floppy-bus.0
               type floppy-bus
               dev: floppy, id ""
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 05/22] hw/ppc/pnv: Determine ns16550's IRQ number from QOM property
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (3 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 04/22] hw/isa/isa-bus: Remove isabus_dev_print() Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-26 11:24   ` Cédric Le Goater
  2022-02-27 22:17   ` Philippe Mathieu-Daudé
  2022-02-22 19:34 ` [PATCH v2 06/22] isa: Drop unused attributes from ISADevice Bernhard Beschow
                   ` (17 subsequent siblings)
  22 siblings, 2 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel
  Cc: open list:PowerNV Non-Virt..., Bernhard Beschow, Cédric Le Goater

Determine the IRQ number in the same way as for isa-ipmi-bt. This resolves
the last usage of ISADevice::isairq[] which allows it to be removed.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/ppc/pnv.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
index 837146a2fb..1e9f6b0690 100644
--- a/hw/ppc/pnv.c
+++ b/hw/ppc/pnv.c
@@ -380,9 +380,12 @@ static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
         cpu_to_be32(io_base),
         cpu_to_be32(8)
     };
+    uint32_t irq;
     char *name;
     int node;
 
+    irq = object_property_get_int(OBJECT(d), "irq", &error_fatal);
+
     name = g_strdup_printf("%s@i%x", qdev_fw_name(DEVICE(d)), io_base);
     node = fdt_add_subnode(fdt, lpc_off, name);
     _FDT(node);
@@ -394,7 +397,7 @@ static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
 
     _FDT((fdt_setprop_cell(fdt, node, "clock-frequency", 1843200)));
     _FDT((fdt_setprop_cell(fdt, node, "current-speed", 115200)));
-    _FDT((fdt_setprop_cell(fdt, node, "interrupts", d->isairq[0])));
+    _FDT((fdt_setprop_cell(fdt, node, "interrupts", irq)));
     _FDT((fdt_setprop_cell(fdt, node, "interrupt-parent",
                            fdt_get_phandle(fdt, lpc_off))));
 
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 06/22] isa: Drop unused attributes from ISADevice
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (4 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 05/22] hw/ppc/pnv: Determine ns16550's IRQ number from QOM property Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-27 22:19   ` Philippe Mathieu-Daudé
  2022-02-22 19:34 ` [PATCH v2 07/22] hw/audio/cs4231a: Disuse isa_init_irq() Bernhard Beschow
                   ` (16 subsequent siblings)
  22 siblings, 1 reply; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Bernhard Beschow

Now that the last users of ISADevice::isairq[] have been resolved during the
previous commits, it can be removed for good.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/isa/isa-bus.c     | 13 -------------
 include/hw/isa/isa.h |  2 --
 2 files changed, 15 deletions(-)

diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
index af5add6a26..c64a14120b 100644
--- a/hw/isa/isa-bus.c
+++ b/hw/isa/isa-bus.c
@@ -87,11 +87,7 @@ qemu_irq isa_get_irq(ISADevice *dev, unsigned isairq)
 
 void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq)
 {
-    assert(dev->nirqs < ARRAY_SIZE(dev->isairq));
-    assert(isairq < ISA_NUM_IRQS);
-    dev->isairq[dev->nirqs] = isairq;
     *p = isa_get_irq(dev, isairq);
-    dev->nirqs++;
 }
 
 void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, unsigned isairq)
@@ -150,14 +146,6 @@ int isa_register_portio_list(ISADevice *dev,
     return 0;
 }
 
-static void isa_device_init(Object *obj)
-{
-    ISADevice *dev = ISA_DEVICE(obj);
-
-    dev->isairq[0] = -1;
-    dev->isairq[1] = -1;
-}
-
 ISADevice *isa_new(const char *name)
 {
     return ISA_DEVICE(qdev_new(name));
@@ -244,7 +232,6 @@ static const TypeInfo isa_device_type_info = {
     .name = TYPE_ISA_DEVICE,
     .parent = TYPE_DEVICE,
     .instance_size = sizeof(ISADevice),
-    .instance_init = isa_device_init,
     .abstract = true,
     .class_size = sizeof(ISADeviceClass),
     .class_init = isa_device_class_init,
diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
index d4417b34b6..d80cab5b79 100644
--- a/include/hw/isa/isa.h
+++ b/include/hw/isa/isa.h
@@ -83,8 +83,6 @@ struct ISADevice {
     DeviceState parent_obj;
     /*< public >*/
 
-    int8_t isairq[2];      /* -1 = unassigned */
-    int nirqs;
     int ioport_id;
 };
 
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 07/22] hw/audio/cs4231a: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (5 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 06/22] isa: Drop unused attributes from ISADevice Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 08/22] hw/audio/gus: " Bernhard Beschow
                   ` (15 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Bernhard Beschow, Gerd Hoffmann

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/audio/cs4231a.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/audio/cs4231a.c b/hw/audio/cs4231a.c
index 7d60ce6f0e..0723e39430 100644
--- a/hw/audio/cs4231a.c
+++ b/hw/audio/cs4231a.c
@@ -677,7 +677,7 @@ static void cs4231a_realizefn (DeviceState *dev, Error **errp)
         return;
     }
 
-    isa_init_irq(d, &s->pic, s->irq);
+    s->pic = isa_get_irq(d, s->irq);
     k = ISADMA_GET_CLASS(s->isa_dma);
     k->register_channel(s->isa_dma, s->dma, cs_dma_read, s);
 
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 08/22] hw/audio/gus: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (6 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 07/22] hw/audio/cs4231a: Disuse isa_init_irq() Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 09/22] hw/audio/sb16: " Bernhard Beschow
                   ` (14 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Bernhard Beschow, Gerd Hoffmann

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/audio/gus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/audio/gus.c b/hw/audio/gus.c
index e8719ee117..42f010b671 100644
--- a/hw/audio/gus.c
+++ b/hw/audio/gus.c
@@ -282,7 +282,7 @@ static void gus_realizefn (DeviceState *dev, Error **errp)
     s->emu.himemaddr = s->himem;
     s->emu.gusdatapos = s->emu.himemaddr + 1024 * 1024 + 32;
     s->emu.opaque = s;
-    isa_init_irq (d, &s->pic, s->emu.gusirq);
+    s->pic = isa_get_irq(d, s->emu.gusirq);
 
     AUD_set_active_out (s->voice, 1);
 }
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 09/22] hw/audio/sb16: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (7 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 08/22] hw/audio/gus: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 10/22] hw/block/fdc-isa: " Bernhard Beschow
                   ` (13 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Bernhard Beschow, Gerd Hoffmann

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/audio/sb16.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/audio/sb16.c b/hw/audio/sb16.c
index 60f1f75e3a..2215386ddb 100644
--- a/hw/audio/sb16.c
+++ b/hw/audio/sb16.c
@@ -1408,7 +1408,7 @@ static void sb16_realizefn (DeviceState *dev, Error **errp)
         return;
     }
 
-    isa_init_irq (isadev, &s->pic, s->irq);
+    s->pic = isa_get_irq(isadev, s->irq);
 
     s->mixer_regs[0x80] = magic_of_irq (s->irq);
     s->mixer_regs[0x81] = (1 << s->dma) | (1 << s->hdma);
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 10/22] hw/block/fdc-isa: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (8 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 09/22] hw/audio/sb16: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 11/22] hw/char/parallel: " Bernhard Beschow
                   ` (12 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kevin Wolf, John Snow, Hanna Reitz, Bernhard Beschow, open list:Floppy

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/block/fdc-isa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/block/fdc-isa.c b/hw/block/fdc-isa.c
index ab663dce93..fa20450747 100644
--- a/hw/block/fdc-isa.c
+++ b/hw/block/fdc-isa.c
@@ -94,7 +94,7 @@ static void isabus_fdc_realize(DeviceState *dev, Error **errp)
                              isa->iobase, fdc_portio_list, fdctrl,
                              "fdc");
 
-    isa_init_irq(isadev, &fdctrl->irq, isa->irq);
+    fdctrl->irq = isa_get_irq(isadev, isa->irq);
     fdctrl->dma_chann = isa->dma;
     if (fdctrl->dma_chann != -1) {
         IsaDmaClass *k;
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 11/22] hw/char/parallel: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (9 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 10/22] hw/block/fdc-isa: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 12/22] hw/char/serial-isa: " Bernhard Beschow
                   ` (11 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Bernhard Beschow, Marc-André Lureau,
	Michael S. Tsirkin

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/char/parallel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/char/parallel.c b/hw/char/parallel.c
index b45e67bfbb..adb9bd9be3 100644
--- a/hw/char/parallel.c
+++ b/hw/char/parallel.c
@@ -553,7 +553,7 @@ static void parallel_isa_realizefn(DeviceState *dev, Error **errp)
     index++;
 
     base = isa->iobase;
-    isa_init_irq(isadev, &s->irq, isa->isairq);
+    s->irq = isa_get_irq(isadev, isa->isairq);
     qemu_register_reset(parallel_reset, s);
 
     qemu_chr_fe_set_handlers(&s->chr, parallel_can_receive, NULL,
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 12/22] hw/char/serial-isa: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (10 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 11/22] hw/char/parallel: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 13/22] hw/ide/isa: " Bernhard Beschow
                   ` (10 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Bernhard Beschow, Marc-André Lureau,
	Michael S. Tsirkin

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/char/serial-isa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/char/serial-isa.c b/hw/char/serial-isa.c
index 1b8b303079..7a7ed239cd 100644
--- a/hw/char/serial-isa.c
+++ b/hw/char/serial-isa.c
@@ -75,7 +75,7 @@ static void serial_isa_realizefn(DeviceState *dev, Error **errp)
     }
     index++;
 
-    isa_init_irq(isadev, &s->irq, isa->isairq);
+    s->irq = isa_get_irq(isadev, isa->isairq);
     qdev_realize(DEVICE(s), NULL, errp);
     qdev_set_legacy_instance_id(dev, isa->iobase, 3);
 
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 13/22] hw/ide/isa: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (11 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 12/22] hw/char/serial-isa: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 14/22] hw/input/pckbd: " Bernhard Beschow
                   ` (9 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: John Snow, Bernhard Beschow, open list:IDE

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/ide/isa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/ide/isa.c b/hw/ide/isa.c
index 24bbde24c2..8bedbd13f1 100644
--- a/hw/ide/isa.c
+++ b/hw/ide/isa.c
@@ -75,7 +75,7 @@ static void isa_ide_realizefn(DeviceState *dev, Error **errp)
 
     ide_bus_init(&s->bus, sizeof(s->bus), dev, 0, 2);
     ide_init_ioport(&s->bus, isadev, s->iobase, s->iobase2);
-    isa_init_irq(isadev, &s->irq, s->isairq);
+    s->irq = isa_get_irq(isadev, s->isairq);
     ide_init2(&s->bus, s->irq);
     vmstate_register(VMSTATE_IF(dev), 0, &vmstate_ide_isa, s);
     ide_register_restart_cb(&s->bus);
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 14/22] hw/input/pckbd: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (12 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 13/22] hw/ide/isa: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 15/22] hw/ipmi/isa_ipmi_bt: " Bernhard Beschow
                   ` (8 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Paolo Bonzini, Bernhard Beschow, Michael S. Tsirkin

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/input/pckbd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/input/pckbd.c b/hw/input/pckbd.c
index 56c55c5768..4988403f7c 100644
--- a/hw/input/pckbd.c
+++ b/hw/input/pckbd.c
@@ -749,8 +749,8 @@ static void i8042_realizefn(DeviceState *dev, Error **errp)
         return;
     }
 
-    isa_init_irq(isadev, &s->irq_kbd, isa_s->kbd_irq);
-    isa_init_irq(isadev, &s->irq_mouse, isa_s->mouse_irq);
+    s->irq_kbd = isa_get_irq(isadev, isa_s->kbd_irq);
+    s->irq_mouse = isa_get_irq(isadev, isa_s->mouse_irq);
 
     isa_register_ioport(isadev, isa_s->io + 0, 0x60);
     isa_register_ioport(isadev, isa_s->io + 1, 0x64);
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 15/22] hw/ipmi/isa_ipmi_bt: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (13 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 14/22] hw/input/pckbd: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-26 20:16   ` Corey Minyard
  2022-02-22 19:34 ` [PATCH v2 16/22] hw/ipmi/isa_ipmi_kcs: " Bernhard Beschow
                   ` (7 subsequent siblings)
  22 siblings, 1 reply; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Bernhard Beschow, Corey Minyard

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/ipmi/isa_ipmi_bt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/ipmi/isa_ipmi_bt.c b/hw/ipmi/isa_ipmi_bt.c
index 02625eb94e..88aa734e9e 100644
--- a/hw/ipmi/isa_ipmi_bt.c
+++ b/hw/ipmi/isa_ipmi_bt.c
@@ -92,7 +92,7 @@ static void isa_ipmi_bt_realize(DeviceState *dev, Error **errp)
     }
 
     if (iib->isairq > 0) {
-        isa_init_irq(isadev, &iib->irq, iib->isairq);
+        iib->irq = isa_get_irq(isadev, iib->isairq);
         iib->bt.use_irq = 1;
         iib->bt.raise_irq = isa_ipmi_bt_raise_irq;
         iib->bt.lower_irq = isa_ipmi_bt_lower_irq;
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 16/22] hw/ipmi/isa_ipmi_kcs: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (14 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 15/22] hw/ipmi/isa_ipmi_bt: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 17/22] hw/isa/piix4: " Bernhard Beschow
                   ` (6 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Bernhard Beschow, Corey Minyard

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/ipmi/isa_ipmi_kcs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/ipmi/isa_ipmi_kcs.c b/hw/ipmi/isa_ipmi_kcs.c
index 3b23ad08b3..afabb95ebe 100644
--- a/hw/ipmi/isa_ipmi_kcs.c
+++ b/hw/ipmi/isa_ipmi_kcs.c
@@ -91,7 +91,7 @@ static void ipmi_isa_realize(DeviceState *dev, Error **errp)
     }
 
     if (iik->isairq > 0) {
-        isa_init_irq(isadev, &iik->irq, iik->isairq);
+        iik->irq = isa_get_irq(isadev, iik->isairq);
         iik->kcs.use_irq = 1;
         iik->kcs.raise_irq = isa_ipmi_kcs_raise_irq;
         iik->kcs.lower_irq = isa_ipmi_kcs_lower_irq;
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 17/22] hw/isa/piix4: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (15 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 16/22] hw/ipmi/isa_ipmi_kcs: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 18/22] hw/net/ne2000-isa: " Bernhard Beschow
                   ` (5 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel
  Cc: Hervé Poussineau, Bernhard Beschow,
	Philippe Mathieu-Daudé,
	Aurelien Jarno

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/isa/piix4.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/isa/piix4.c b/hw/isa/piix4.c
index cb291d121c..0fd6756dcf 100644
--- a/hw/isa/piix4.c
+++ b/hw/isa/piix4.c
@@ -197,7 +197,7 @@ static void piix4_realize(PCIDevice *dev, Error **errp)
     if (!qdev_realize(DEVICE(&s->rtc), BUS(isa_bus), errp)) {
         return;
     }
-    isa_init_irq(ISA_DEVICE(&s->rtc), &s->rtc.irq, s->rtc.isairq);
+    s->rtc.irq = isa_get_irq(ISA_DEVICE(&s->rtc), s->rtc.isairq);
 
     piix4_dev = dev;
 }
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 18/22] hw/net/ne2000-isa: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (16 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 17/22] hw/isa/piix4: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 19/22] hw/rtc/m48t59-isa: " Bernhard Beschow
                   ` (4 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Jason Wang, Bernhard Beschow

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/net/ne2000-isa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/net/ne2000-isa.c b/hw/net/ne2000-isa.c
index dd6f6e34d3..6ced6775ff 100644
--- a/hw/net/ne2000-isa.c
+++ b/hw/net/ne2000-isa.c
@@ -68,7 +68,7 @@ static void isa_ne2000_realizefn(DeviceState *dev, Error **errp)
     ne2000_setup_io(s, DEVICE(isadev), 0x20);
     isa_register_ioport(isadev, &s->io, isa->iobase);
 
-    isa_init_irq(isadev, &s->irq, isa->isairq);
+    s->irq = isa_get_irq(isadev, isa->isairq);
 
     qemu_macaddr_default_if_unset(&s->c.macaddr);
     ne2000_reset(s);
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 19/22] hw/rtc/m48t59-isa: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (17 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 18/22] hw/net/ne2000-isa: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 20/22] hw/tpm/tpm_tis_isa: " Bernhard Beschow
                   ` (3 subsequent siblings)
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: open list:PReP, Hervé Poussineau, Bernhard Beschow

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/rtc/m48t59-isa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/rtc/m48t59-isa.c b/hw/rtc/m48t59-isa.c
index cd63138e1e..990ea15bce 100644
--- a/hw/rtc/m48t59-isa.c
+++ b/hw/rtc/m48t59-isa.c
@@ -106,7 +106,7 @@ static void m48t59_isa_realize(DeviceState *dev, Error **errp)
 
     s->model = u->info.model;
     s->size = u->info.size;
-    isa_init_irq(isadev, &s->IRQ, d->isairq);
+    s->IRQ = isa_get_irq(isadev, d->isairq);
     m48t59_realize_common(s, errp);
     memory_region_init_io(&d->io, OBJECT(dev), &m48t59_io_ops, s, "m48t59", 4);
     if (d->io_base != 0) {
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 20/22] hw/tpm/tpm_tis_isa: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (18 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 19/22] hw/rtc/m48t59-isa: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:50   ` Stefan Berger
  2022-02-22 19:34 ` [PATCH v2 21/22] hw/isa/isa-bus: " Bernhard Beschow
                   ` (2 subsequent siblings)
  22 siblings, 1 reply; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Bernhard Beschow, Stefan Berger

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/tpm/tpm_tis_isa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/tpm/tpm_tis_isa.c b/hw/tpm/tpm_tis_isa.c
index 10d8a14f19..3477afd735 100644
--- a/hw/tpm/tpm_tis_isa.c
+++ b/hw/tpm/tpm_tis_isa.c
@@ -127,7 +127,7 @@ static void tpm_tis_isa_realizefn(DeviceState *dev, Error **errp)
         return;
     }
 
-    isa_init_irq(ISA_DEVICE(dev), &s->irq, s->irq_num);
+    s->irq = isa_get_irq(ISA_DEVICE(dev), s->irq_num);
 
     memory_region_add_subregion(isa_address_space(ISA_DEVICE(dev)),
                                 TPM_TIS_ADDR_BASE, &s->mmio);
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 21/22] hw/isa/isa-bus: Disuse isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (19 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 20/22] hw/tpm/tpm_tis_isa: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-22 19:34 ` [PATCH v2 22/22] isa: Remove unused isa_init_irq() Bernhard Beschow
  2022-02-27 22:40 ` [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Philippe Mathieu-Daudé
  22 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Bernhard Beschow

isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
Use the original instead such that isa_init_irq() can be removed
eventually.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/isa/isa-bus.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
index c64a14120b..1e8c102177 100644
--- a/hw/isa/isa-bus.c
+++ b/hw/isa/isa-bus.c
@@ -92,8 +92,7 @@ void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq)
 
 void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, unsigned isairq)
 {
-    qemu_irq irq;
-    isa_init_irq(isadev, &irq, isairq);
+    qemu_irq irq = isa_get_irq(isadev, isairq);
     qdev_connect_gpio_out(DEVICE(isadev), gpioirq, irq);
 }
 
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* [PATCH v2 22/22] isa: Remove unused isa_init_irq()
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (20 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 21/22] hw/isa/isa-bus: " Bernhard Beschow
@ 2022-02-22 19:34 ` Bernhard Beschow
  2022-02-27 22:27   ` Philippe Mathieu-Daudé
  2022-02-27 22:40 ` [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Philippe Mathieu-Daudé
  22 siblings, 1 reply; 38+ messages in thread
From: Bernhard Beschow @ 2022-02-22 19:34 UTC (permalink / raw)
  To: qemu-devel; +Cc: Bernhard Beschow

isa_init_irq() had become a trivial one-line wrapper for isa_get_irq().
The previous commits resolved all usages in favor of isa_get_irq().
isa_init_irq() can therefore be removed.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
 hw/isa/isa-bus.c     | 5 -----
 include/hw/isa/isa.h | 1 -
 2 files changed, 6 deletions(-)

diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
index 1e8c102177..0ad1c5fd65 100644
--- a/hw/isa/isa-bus.c
+++ b/hw/isa/isa-bus.c
@@ -85,11 +85,6 @@ qemu_irq isa_get_irq(ISADevice *dev, unsigned isairq)
     return isabus->irqs[isairq];
 }
 
-void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq)
-{
-    *p = isa_get_irq(dev, isairq);
-}
-
 void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, unsigned isairq)
 {
     qemu_irq irq = isa_get_irq(isadev, isairq);
diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
index d80cab5b79..034d706ba1 100644
--- a/include/hw/isa/isa.h
+++ b/include/hw/isa/isa.h
@@ -90,7 +90,6 @@ ISABus *isa_bus_new(DeviceState *dev, MemoryRegion *address_space,
                     MemoryRegion *address_space_io, Error **errp);
 void isa_bus_irqs(ISABus *bus, qemu_irq *irqs);
 qemu_irq isa_get_irq(ISADevice *dev, unsigned isairq);
-void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq);
 void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, unsigned isairq);
 void isa_bus_dma(ISABus *bus, IsaDma *dma8, IsaDma *dma16);
 IsaDma *isa_get_dma(ISABus *bus, int nchan);
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 20/22] hw/tpm/tpm_tis_isa: Disuse isa_init_irq()
  2022-02-22 19:34 ` [PATCH v2 20/22] hw/tpm/tpm_tis_isa: " Bernhard Beschow
@ 2022-02-22 19:50   ` Stefan Berger
  0 siblings, 0 replies; 38+ messages in thread
From: Stefan Berger @ 2022-02-22 19:50 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel; +Cc: Stefan Berger


On 2/22/22 14:34, Bernhard Beschow wrote:
> isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
> Use the original instead such that isa_init_irq() can be removed
> eventually.
>
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>


> ---
>   hw/tpm/tpm_tis_isa.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/tpm/tpm_tis_isa.c b/hw/tpm/tpm_tis_isa.c
> index 10d8a14f19..3477afd735 100644
> --- a/hw/tpm/tpm_tis_isa.c
> +++ b/hw/tpm/tpm_tis_isa.c
> @@ -127,7 +127,7 @@ static void tpm_tis_isa_realizefn(DeviceState *dev, Error **errp)
>           return;
>       }
>
> -    isa_init_irq(ISA_DEVICE(dev), &s->irq, s->irq_num);
> +    s->irq = isa_get_irq(ISA_DEVICE(dev), s->irq_num);
>
>       memory_region_add_subregion(isa_address_space(ISA_DEVICE(dev)),
>                                   TPM_TIS_ADDR_BASE, &s->mmio);


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 05/22] hw/ppc/pnv: Determine ns16550's IRQ number from QOM property
  2022-02-22 19:34 ` [PATCH v2 05/22] hw/ppc/pnv: Determine ns16550's IRQ number from QOM property Bernhard Beschow
@ 2022-02-26 11:24   ` Cédric Le Goater
  2022-02-26 11:27     ` BB
  2022-02-27 22:17   ` Philippe Mathieu-Daudé
  1 sibling, 1 reply; 38+ messages in thread
From: Cédric Le Goater @ 2022-02-26 11:24 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel; +Cc: qemu-ppc

Hello,

On 2/22/22 20:34, Bernhard Beschow wrote:
> Determine the IRQ number in the same way as for isa-ipmi-bt. This resolves
> the last usage of ISADevice::isairq[] which allows it to be removed.
> 
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>

I can take this patch in the ppc stream if you prefer. Anyhow,

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.


> ---
>   hw/ppc/pnv.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
> index 837146a2fb..1e9f6b0690 100644
> --- a/hw/ppc/pnv.c
> +++ b/hw/ppc/pnv.c
> @@ -380,9 +380,12 @@ static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
>           cpu_to_be32(io_base),
>           cpu_to_be32(8)
>       };
> +    uint32_t irq;
>       char *name;
>       int node;
>   
> +    irq = object_property_get_int(OBJECT(d), "irq", &error_fatal);
> +
>       name = g_strdup_printf("%s@i%x", qdev_fw_name(DEVICE(d)), io_base);
>       node = fdt_add_subnode(fdt, lpc_off, name);
>       _FDT(node);
> @@ -394,7 +397,7 @@ static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
>   
>       _FDT((fdt_setprop_cell(fdt, node, "clock-frequency", 1843200)));
>       _FDT((fdt_setprop_cell(fdt, node, "current-speed", 115200)));
> -    _FDT((fdt_setprop_cell(fdt, node, "interrupts", d->isairq[0])));
> +    _FDT((fdt_setprop_cell(fdt, node, "interrupts", irq)));
>       _FDT((fdt_setprop_cell(fdt, node, "interrupt-parent",
>                              fdt_get_phandle(fdt, lpc_off))));
>   



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 05/22] hw/ppc/pnv: Determine ns16550's IRQ number from QOM property
  2022-02-26 11:24   ` Cédric Le Goater
@ 2022-02-26 11:27     ` BB
  0 siblings, 0 replies; 38+ messages in thread
From: BB @ 2022-02-26 11:27 UTC (permalink / raw)
  To: Cédric Le Goater, Bernhard Beschow, qemu-devel; +Cc: qemu-ppc

Hi Cédric,

Am 26. Februar 2022 11:24:03 UTC schrieb "Cédric Le Goater" <clg@kaod.org>:
>Hello,
>
>On 2/22/22 20:34, Bernhard Beschow wrote:
>> Determine the IRQ number in the same way as for isa-ipmi-bt. This resolves
>> the last usage of ISADevice::isairq[] which allows it to be removed.
>> 
>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>
>I can take this patch in the ppc stream if you prefer.

Good idea. I think that's going to be faster.

Thanks,
Bernhard

> Anyhow,
>
>Reviewed-by: Cédric Le Goater <clg@kaod.org>
>
>Thanks,
>
>C.
>
>
>> ---
>>   hw/ppc/pnv.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>> 
>> diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
>> index 837146a2fb..1e9f6b0690 100644
>> --- a/hw/ppc/pnv.c
>> +++ b/hw/ppc/pnv.c
>> @@ -380,9 +380,12 @@ static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
>>           cpu_to_be32(io_base),
>>           cpu_to_be32(8)
>>       };
>> +    uint32_t irq;
>>       char *name;
>>       int node;
>>   
>> +    irq = object_property_get_int(OBJECT(d), "irq", &error_fatal);
>> +
>>       name = g_strdup_printf("%s@i%x", qdev_fw_name(DEVICE(d)), io_base);
>>       node = fdt_add_subnode(fdt, lpc_off, name);
>>       _FDT(node);
>> @@ -394,7 +397,7 @@ static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
>>   
>>       _FDT((fdt_setprop_cell(fdt, node, "clock-frequency", 1843200)));
>>       _FDT((fdt_setprop_cell(fdt, node, "current-speed", 115200)));
>> -    _FDT((fdt_setprop_cell(fdt, node, "interrupts", d->isairq[0])));
>> +    _FDT((fdt_setprop_cell(fdt, node, "interrupts", irq)));
>>       _FDT((fdt_setprop_cell(fdt, node, "interrupt-parent",
>>                              fdt_get_phandle(fdt, lpc_off))));
>>   
>


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 15/22] hw/ipmi/isa_ipmi_bt: Disuse isa_init_irq()
  2022-02-22 19:34 ` [PATCH v2 15/22] hw/ipmi/isa_ipmi_bt: " Bernhard Beschow
@ 2022-02-26 20:16   ` Corey Minyard
  0 siblings, 0 replies; 38+ messages in thread
From: Corey Minyard @ 2022-02-26 20:16 UTC (permalink / raw)
  To: Bernhard Beschow; +Cc: qemu-devel

On Tue, Feb 22, 2022 at 08:34:39PM +0100, Bernhard Beschow wrote:
> isa_init_irq() has become a trivial one-line wrapper for isa_get_irq().
> Use the original instead such that isa_init_irq() can be removed
> eventually.

Looking at the rest of the patch series, this looks lik a good idea.
This is obviously trivial here, but:

Acked-by: Corey Minyard <cminyard@mvista.com>

For this and the KCS patch.

-corey

> 
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
>  hw/ipmi/isa_ipmi_bt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/ipmi/isa_ipmi_bt.c b/hw/ipmi/isa_ipmi_bt.c
> index 02625eb94e..88aa734e9e 100644
> --- a/hw/ipmi/isa_ipmi_bt.c
> +++ b/hw/ipmi/isa_ipmi_bt.c
> @@ -92,7 +92,7 @@ static void isa_ipmi_bt_realize(DeviceState *dev, Error **errp)
>      }
>  
>      if (iib->isairq > 0) {
> -        isa_init_irq(isadev, &iib->irq, iib->isairq);
> +        iib->irq = isa_get_irq(isadev, iib->isairq);
>          iib->bt.use_irq = 1;
>          iib->bt.raise_irq = isa_ipmi_bt_raise_irq;
>          iib->bt.lower_irq = isa_ipmi_bt_lower_irq;
> -- 
> 2.35.1
> 


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 01/22] hw/rtc/mc146818rtc: QOM'ify IRQ number
  2022-02-22 19:34 ` [PATCH v2 01/22] hw/rtc/mc146818rtc: QOM'ify IRQ number Bernhard Beschow
@ 2022-02-27 22:10   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 38+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-02-27 22:10 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel
  Cc: Paolo Bonzini, Hervé Poussineau, Philippe Mathieu-Daudé,
	Aurelien Jarno, Michael S. Tsirkin

On 22/2/22 20:34, Bernhard Beschow wrote:
> Exposing the IRQ number as a QOM property not only allows it to be
> configurable but also to be printed by standard QOM mechanisms. This allows
> isabus_dev_print() to be retired eventually.
> 
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
>   hw/isa/piix4.c               |  2 +-
>   hw/rtc/mc146818rtc.c         | 13 +++++++++++--
>   include/hw/rtc/mc146818rtc.h |  1 +
>   3 files changed, 13 insertions(+), 3 deletions(-)

> @@ -975,6 +982,7 @@ ISADevice *mc146818_rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq)
>   
>   static Property mc146818rtc_properties[] = {
>       DEFINE_PROP_INT32("base_year", RTCState, base_year, 1980),
> +    DEFINE_PROP_UINT32("irq", RTCState, isairq, RTC_ISA_IRQ),
>       DEFINE_PROP_LOSTTICKPOLICY("lost_tick_policy", RTCState,
>                                  lost_tick_policy, LOST_TICK_POLICY_DISCARD),
>       DEFINE_PROP_END_OF_LIST(),

> diff --git a/include/hw/rtc/mc146818rtc.h b/include/hw/rtc/mc146818rtc.h
> index 5b45b22924..c7586589ad 100644
> --- a/include/hw/rtc/mc146818rtc.h
> +++ b/include/hw/rtc/mc146818rtc.h
> @@ -26,6 +26,7 @@ struct RTCState {
>       uint8_t cmos_data[128];
>       uint8_t cmos_index;
>       int32_t base_year;
> +    uint32_t isairq;
>       uint64_t base_rtc;
>       uint64_t last_update;
>       int64_t offset;

Enough using DEFINE_PROP_UINT8 / uint8_t, otherwise:

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 02/22] hw/rtc/m48t59-isa: QOM'ify IRQ number
  2022-02-22 19:34 ` [PATCH v2 02/22] hw/rtc/m48t59-isa: " Bernhard Beschow
@ 2022-02-27 22:13   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 38+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-02-27 22:13 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel; +Cc: Hervé Poussineau, open list:PReP

On 22/2/22 20:34, Bernhard Beschow wrote:
> Exposing the IRQ number as a QOM property not only allows it to be
> configurable but also to be printed by standard QOM mechanisms. This allows
> isabus_dev_print() to be retired eventually.
> 
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
>   hw/rtc/m48t59-isa.c | 9 ++++++++-
>   1 file changed, 8 insertions(+), 1 deletion(-)

> @@ -97,9 +99,14 @@ static void m48t59_isa_realize(DeviceState *dev, Error **errp)
>       M48txxISAState *d = M48TXX_ISA(dev);
>       M48t59State *s = &d->state;
>   
> +    if (d->isairq >= ISA_NUM_IRQS) {
> +        error_setg(errp, "Maximum value for \"irq\" is: %d", ISA_NUM_IRQS - 1);

Format is "%u".

> +        return;
> +    }

Similarly to patch #1, ISA_NUM_IRQS fits in uint8_t. Otherwise:

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 03/22] hw/input/pckbd: QOM'ify IRQ numbers
  2022-02-22 19:34 ` [PATCH v2 03/22] hw/input/pckbd: QOM'ify IRQ numbers Bernhard Beschow
@ 2022-02-27 22:14   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 38+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-02-27 22:14 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel; +Cc: Paolo Bonzini, Michael S. Tsirkin

On 22/2/22 20:34, Bernhard Beschow wrote:
> Exposing the IRQ numbers as a QOM properties not only allows them to be
> configurable but also to be printed by standard QOM mechanisms. This allows
> isabus_dev_print() to be retired eventually.
> 
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
>   hw/input/pckbd.c | 26 ++++++++++++++++++++++----
>   1 file changed, 22 insertions(+), 4 deletions(-)

Using uint8_t and "%u" format:

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 05/22] hw/ppc/pnv: Determine ns16550's IRQ number from QOM property
  2022-02-22 19:34 ` [PATCH v2 05/22] hw/ppc/pnv: Determine ns16550's IRQ number from QOM property Bernhard Beschow
  2022-02-26 11:24   ` Cédric Le Goater
@ 2022-02-27 22:17   ` Philippe Mathieu-Daudé
  2022-03-01  8:31     ` Cédric Le Goater
  1 sibling, 1 reply; 38+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-02-27 22:17 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel
  Cc: open list:PowerNV Non-Virt..., Cédric Le Goater

On 22/2/22 20:34, Bernhard Beschow wrote:
> Determine the IRQ number in the same way as for isa-ipmi-bt. This resolves
> the last usage of ISADevice::isairq[] which allows it to be removed.
> 
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
>   hw/ppc/pnv.c | 5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
> index 837146a2fb..1e9f6b0690 100644
> --- a/hw/ppc/pnv.c
> +++ b/hw/ppc/pnv.c
> @@ -380,9 +380,12 @@ static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
>           cpu_to_be32(io_base),
>           cpu_to_be32(8)
>       };
> +    uint32_t irq;
>       char *name;
>       int node;
>   
> +    irq = object_property_get_int(OBJECT(d), "irq", &error_fatal);

object_property_get_[u]int(), otherwise:

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

>       name = g_strdup_printf("%s@i%x", qdev_fw_name(DEVICE(d)), io_base);
>       node = fdt_add_subnode(fdt, lpc_off, name);
>       _FDT(node);
> @@ -394,7 +397,7 @@ static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
>   
>       _FDT((fdt_setprop_cell(fdt, node, "clock-frequency", 1843200)));
>       _FDT((fdt_setprop_cell(fdt, node, "current-speed", 115200)));
> -    _FDT((fdt_setprop_cell(fdt, node, "interrupts", d->isairq[0])));
> +    _FDT((fdt_setprop_cell(fdt, node, "interrupts", irq)));
>       _FDT((fdt_setprop_cell(fdt, node, "interrupt-parent",
>                              fdt_get_phandle(fdt, lpc_off))));
>   



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 06/22] isa: Drop unused attributes from ISADevice
  2022-02-22 19:34 ` [PATCH v2 06/22] isa: Drop unused attributes from ISADevice Bernhard Beschow
@ 2022-02-27 22:19   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 38+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-02-27 22:19 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel

On 22/2/22 20:34, Bernhard Beschow wrote:
> Now that the last users of ISADevice::isairq[] have been resolved during the
> previous commits, it can be removed for good.
> 
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
>   hw/isa/isa-bus.c     | 13 -------------
>   include/hw/isa/isa.h |  2 --
>   2 files changed, 15 deletions(-)

Nice :)

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 22/22] isa: Remove unused isa_init_irq()
  2022-02-22 19:34 ` [PATCH v2 22/22] isa: Remove unused isa_init_irq() Bernhard Beschow
@ 2022-02-27 22:27   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 38+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-02-27 22:27 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel

On 22/2/22 20:34, Bernhard Beschow wrote:
> isa_init_irq() had become a trivial one-line wrapper for isa_get_irq().
> The previous commits resolved all usages in favor of isa_get_irq().
> isa_init_irq() can therefore be removed.
> 
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
>   hw/isa/isa-bus.c     | 5 -----
>   include/hw/isa/isa.h | 1 -
>   2 files changed, 6 deletions(-)
> 
> diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c
> index 1e8c102177..0ad1c5fd65 100644
> --- a/hw/isa/isa-bus.c
> +++ b/hw/isa/isa-bus.c
> @@ -85,11 +85,6 @@ qemu_irq isa_get_irq(ISADevice *dev, unsigned isairq)
>       return isabus->irqs[isairq];
>   }
>   
> -void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq)
> -{
> -    *p = isa_get_irq(dev, isairq);
> -}
> -
>   void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, unsigned isairq)
>   {
>       qemu_irq irq = isa_get_irq(isadev, isairq);
> diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h
> index d80cab5b79..034d706ba1 100644
> --- a/include/hw/isa/isa.h
> +++ b/include/hw/isa/isa.h
> @@ -90,7 +90,6 @@ ISABus *isa_bus_new(DeviceState *dev, MemoryRegion *address_space,
>                       MemoryRegion *address_space_io, Error **errp);
>   void isa_bus_irqs(ISABus *bus, qemu_irq *irqs);
>   qemu_irq isa_get_irq(ISADevice *dev, unsigned isairq);
> -void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq);
>   void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, unsigned isairq);
>   void isa_bus_dma(ISABus *bus, IsaDma *dma8, IsaDma *dma16);
>   IsaDma *isa_get_dma(ISABus *bus, int nchan);

I'd merge patches 7-22 as "Inline and remove one-line isa_init_irq()".

Either merged or for each 7-22 patch:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 04/22] hw/isa/isa-bus: Remove isabus_dev_print()
  2022-02-22 19:34 ` [PATCH v2 04/22] hw/isa/isa-bus: Remove isabus_dev_print() Bernhard Beschow
@ 2022-02-27 22:39   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 38+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-02-27 22:39 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel
  Cc: Kevin Wolf, Hanna Reitz, open list:Block layer core

On 22/2/22 20:34, Bernhard Beschow wrote:
> All isabus_dev_print() did was to print up to two IRQ numbers per
> device. This is redundant if the IRQ numbers are present as QOM
> properties (see e.g. the modified tests/qemu-iotests/172.out).
> 
> Now that the last devices relying on isabus_dev_print() had their IRQ
> numbers QOM'ified, the contribution of this function ultimately became
> redundant. Remove it.
> 
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
>   hw/isa/isa-bus.c           | 16 ----------------
>   tests/qemu-iotests/172.out | 26 --------------------------
>   2 files changed, 42 deletions(-)

Also the ISA IRQ is now displayed in HMP (the human monitor):

Before:

(qemu) info qtree
        ...
           dev: mc146818rtc, id ""
             gpio-out "" 1
             base_year = 0 (0x0)
             lost_tick_policy = "discard"

After:

           dev: mc146818rtc, id ""
             gpio-out "" 1
             base_year = 0 (0x0)
             irq = 8 (0x8)
             lost_tick_policy = "discard"

Maybe worth mentioning it in the description.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice
  2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
                   ` (21 preceding siblings ...)
  2022-02-22 19:34 ` [PATCH v2 22/22] isa: Remove unused isa_init_irq() Bernhard Beschow
@ 2022-02-27 22:40 ` Philippe Mathieu-Daudé
  2022-03-01 12:04   ` Philippe Mathieu-Daudé
  22 siblings, 1 reply; 38+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-02-27 22:40 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel

On 22/2/22 20:34, Bernhard Beschow wrote:
> v2:
> The newly QOM'ified devices now report an error to the user in their realize
> functions if the configured IRQ number is greater than 15.
> 
> v1:
> The IRQ attributes of ISADevice are hardcoded to support up to two IRQs per
> device which creates an artificial limit. By not having the attributes in the
> first place, this limitation can be avoided altogether.
> 
> The IRQ attributes are mostly used for printing ('info qtree') and there is one
> user, hw/ppc/pnv, to use the attributes directly. As it turns out, the printing
> is redundant if the IRQ numbers are exposed as QOM properties and hw/ppc/pnv
> can be easily ported away.
> 
> The patch series is structured as follows: Patch 1-3 QOM'ify the last devices
> which rely on printing their IRQ numbers via the ISADevice attributes. Patch
> 4 and 5 remove the last users of the ISADevice attributes such that they can be
> removed in patch 6. The remainder of the patch series is cleanup.
> 
> Patch 6 turns isa_init_irq() into a trivial wrapper for isa_get_irq(). That is,
> the former function becomes redundant. All users are therefore converted to use
> isa_get_irq() directly. Finally, the last patch removes the now unused
> isa_init_irq().
> 
> 
> Bernhard Beschow (22):
>    hw/rtc/mc146818rtc: QOM'ify IRQ number
>    hw/rtc/m48t59-isa: QOM'ify IRQ number
>    hw/input/pckbd: QOM'ify IRQ numbers
>    hw/isa/isa-bus: Remove isabus_dev_print()
>    hw/ppc/pnv: Determine ns16550's IRQ number from QOM property
>    isa: Drop unused attributes from ISADevice
>    hw/audio/cs4231a: Disuse isa_init_irq()
>    hw/audio/gus: Disuse isa_init_irq()
>    hw/audio/sb16: Disuse isa_init_irq()
>    hw/block/fdc-isa: Disuse isa_init_irq()
>    hw/char/parallel: Disuse isa_init_irq()
>    hw/char/serial-isa: Disuse isa_init_irq()
>    hw/ide/isa: Disuse isa_init_irq()
>    hw/input/pckbd: Disuse isa_init_irq()
>    hw/ipmi/isa_ipmi_bt: Disuse isa_init_irq()
>    hw/ipmi/isa_ipmi_kcs: Disuse isa_init_irq()
>    hw/isa/piix4: Disuse isa_init_irq()
>    hw/net/ne2000-isa: Disuse isa_init_irq()
>    hw/rtc/m48t59-isa: Disuse isa_init_irq()
>    hw/tpm/tpm_tis_isa: Disuse isa_init_irq()
>    hw/isa/isa-bus: Disuse isa_init_irq()
>    isa: Remove unused isa_init_irq()

Series:
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 05/22] hw/ppc/pnv: Determine ns16550's IRQ number from QOM property
  2022-02-27 22:17   ` Philippe Mathieu-Daudé
@ 2022-03-01  8:31     ` Cédric Le Goater
  0 siblings, 0 replies; 38+ messages in thread
From: Cédric Le Goater @ 2022-03-01  8:31 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, Bernhard Beschow, qemu-devel
  Cc: open list:PowerNV Non-Virt...

On 2/27/22 23:17, Philippe Mathieu-Daudé wrote:
> On 22/2/22 20:34, Bernhard Beschow wrote:
>> Determine the IRQ number in the same way as for isa-ipmi-bt. This resolves
>> the last usage of ISADevice::isairq[] which allows it to be removed.
>>
>> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
>> ---
>>   hw/ppc/pnv.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
>> index 837146a2fb..1e9f6b0690 100644
>> --- a/hw/ppc/pnv.c
>> +++ b/hw/ppc/pnv.c
>> @@ -380,9 +380,12 @@ static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
>>           cpu_to_be32(io_base),
>>           cpu_to_be32(8)
>>       };
>> +    uint32_t irq;
>>       char *name;
>>       int node;
>> +    irq = object_property_get_int(OBJECT(d), "irq", &error_fatal);
> 
> object_property_get_[u]int(), otherwise:

Fixed it.
  
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Applied to ppc-7.0.

Thanks,

C.

> 
>>       name = g_strdup_printf("%s@i%x", qdev_fw_name(DEVICE(d)), io_base);
>>       node = fdt_add_subnode(fdt, lpc_off, name);
>>       _FDT(node);
>> @@ -394,7 +397,7 @@ static void pnv_dt_serial(ISADevice *d, void *fdt, int lpc_off)
>>       _FDT((fdt_setprop_cell(fdt, node, "clock-frequency", 1843200)));
>>       _FDT((fdt_setprop_cell(fdt, node, "current-speed", 115200)));
>> -    _FDT((fdt_setprop_cell(fdt, node, "interrupts", d->isairq[0])));
>> +    _FDT((fdt_setprop_cell(fdt, node, "interrupts", irq)));
>>       _FDT((fdt_setprop_cell(fdt, node, "interrupt-parent",
>>                              fdt_get_phandle(fdt, lpc_off))));
> 



^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice
  2022-02-27 22:40 ` [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Philippe Mathieu-Daudé
@ 2022-03-01 12:04   ` Philippe Mathieu-Daudé
  2022-03-01 22:03     ` Bernhard Beschow
  0 siblings, 1 reply; 38+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-03-01 12:04 UTC (permalink / raw)
  To: Bernhard Beschow, qemu-devel

On 27/2/22 23:40, Philippe Mathieu-Daudé wrote:
> On 22/2/22 20:34, Bernhard Beschow wrote:
>> v2:
>> The newly QOM'ified devices now report an error to the user in their 
>> realize
>> functions if the configured IRQ number is greater than 15.
>>
>> v1:
>> The IRQ attributes of ISADevice are hardcoded to support up to two 
>> IRQs per
>> device which creates an artificial limit. By not having the attributes 
>> in the
>> first place, this limitation can be avoided altogether.
>>
>> The IRQ attributes are mostly used for printing ('info qtree') and 
>> there is one
>> user, hw/ppc/pnv, to use the attributes directly. As it turns out, the 
>> printing
>> is redundant if the IRQ numbers are exposed as QOM properties and 
>> hw/ppc/pnv
>> can be easily ported away.
>>
>> The patch series is structured as follows: Patch 1-3 QOM'ify the last 
>> devices
>> which rely on printing their IRQ numbers via the ISADevice attributes. 
>> Patch
>> 4 and 5 remove the last users of the ISADevice attributes such that 
>> they can be
>> removed in patch 6. The remainder of the patch series is cleanup.
>>
>> Patch 6 turns isa_init_irq() into a trivial wrapper for isa_get_irq(). 
>> That is,
>> the former function becomes redundant. All users are therefore 
>> converted to use
>> isa_get_irq() directly. Finally, the last patch removes the now unused
>> isa_init_irq().
>>
>>
>> Bernhard Beschow (22):
>>    hw/rtc/mc146818rtc: QOM'ify IRQ number
>>    hw/rtc/m48t59-isa: QOM'ify IRQ number
>>    hw/input/pckbd: QOM'ify IRQ numbers
>>    hw/isa/isa-bus: Remove isabus_dev_print()
>>    hw/ppc/pnv: Determine ns16550's IRQ number from QOM property
>>    isa: Drop unused attributes from ISADevice
>>    hw/audio/cs4231a: Disuse isa_init_irq()
>>    hw/audio/gus: Disuse isa_init_irq()
>>    hw/audio/sb16: Disuse isa_init_irq()
>>    hw/block/fdc-isa: Disuse isa_init_irq()
>>    hw/char/parallel: Disuse isa_init_irq()
>>    hw/char/serial-isa: Disuse isa_init_irq()
>>    hw/ide/isa: Disuse isa_init_irq()
>>    hw/input/pckbd: Disuse isa_init_irq()
>>    hw/ipmi/isa_ipmi_bt: Disuse isa_init_irq()
>>    hw/ipmi/isa_ipmi_kcs: Disuse isa_init_irq()
>>    hw/isa/piix4: Disuse isa_init_irq()
>>    hw/net/ne2000-isa: Disuse isa_init_irq()
>>    hw/rtc/m48t59-isa: Disuse isa_init_irq()
>>    hw/tpm/tpm_tis_isa: Disuse isa_init_irq()
>>    hw/isa/isa-bus: Disuse isa_init_irq()
>>    isa: Remove unused isa_init_irq()
> 
> Series:
> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

If you can address the few comments, I'll queue the v3 via the
MIPS tree.

Thanks,

Phil.


^ permalink raw reply	[flat|nested] 38+ messages in thread

* Re: [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice
  2022-03-01 12:04   ` Philippe Mathieu-Daudé
@ 2022-03-01 22:03     ` Bernhard Beschow
  0 siblings, 0 replies; 38+ messages in thread
From: Bernhard Beschow @ 2022-03-01 22:03 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel

Am 1. März 2022 12:04:24 UTC schrieb "Philippe Mathieu-Daudé" <philippe.mathieu.daude@gmail.com>:
>On 27/2/22 23:40, Philippe Mathieu-Daudé wrote:
>> On 22/2/22 20:34, Bernhard Beschow wrote:
>>> v2:
>>> The newly QOM'ified devices now report an error to the user in their 
>>> realize
>>> functions if the configured IRQ number is greater than 15.
>>>
>>> v1:
>>> The IRQ attributes of ISADevice are hardcoded to support up to two 
>>> IRQs per
>>> device which creates an artificial limit. By not having the attributes 
>>> in the
>>> first place, this limitation can be avoided altogether.
>>>
>>> The IRQ attributes are mostly used for printing ('info qtree') and 
>>> there is one
>>> user, hw/ppc/pnv, to use the attributes directly. As it turns out, the 
>>> printing
>>> is redundant if the IRQ numbers are exposed as QOM properties and 
>>> hw/ppc/pnv
>>> can be easily ported away.
>>>
>>> The patch series is structured as follows: Patch 1-3 QOM'ify the last 
>>> devices
>>> which rely on printing their IRQ numbers via the ISADevice attributes. 
>>> Patch
>>> 4 and 5 remove the last users of the ISADevice attributes such that 
>>> they can be
>>> removed in patch 6. The remainder of the patch series is cleanup.
>>>
>>> Patch 6 turns isa_init_irq() into a trivial wrapper for isa_get_irq(). 
>>> That is,
>>> the former function becomes redundant. All users are therefore 
>>> converted to use
>>> isa_get_irq() directly. Finally, the last patch removes the now unused
>>> isa_init_irq().
>>>
>>>
>>> Bernhard Beschow (22):
>>>    hw/rtc/mc146818rtc: QOM'ify IRQ number
>>>    hw/rtc/m48t59-isa: QOM'ify IRQ number
>>>    hw/input/pckbd: QOM'ify IRQ numbers
>>>    hw/isa/isa-bus: Remove isabus_dev_print()
>>>    hw/ppc/pnv: Determine ns16550's IRQ number from QOM property
>>>    isa: Drop unused attributes from ISADevice
>>>    hw/audio/cs4231a: Disuse isa_init_irq()
>>>    hw/audio/gus: Disuse isa_init_irq()
>>>    hw/audio/sb16: Disuse isa_init_irq()
>>>    hw/block/fdc-isa: Disuse isa_init_irq()
>>>    hw/char/parallel: Disuse isa_init_irq()
>>>    hw/char/serial-isa: Disuse isa_init_irq()
>>>    hw/ide/isa: Disuse isa_init_irq()
>>>    hw/input/pckbd: Disuse isa_init_irq()
>>>    hw/ipmi/isa_ipmi_bt: Disuse isa_init_irq()
>>>    hw/ipmi/isa_ipmi_kcs: Disuse isa_init_irq()
>>>    hw/isa/piix4: Disuse isa_init_irq()
>>>    hw/net/ne2000-isa: Disuse isa_init_irq()
>>>    hw/rtc/m48t59-isa: Disuse isa_init_irq()
>>>    hw/tpm/tpm_tis_isa: Disuse isa_init_irq()
>>>    hw/isa/isa-bus: Disuse isa_init_irq()
>>>    isa: Remove unused isa_init_irq()
>> 
>> Series:
>> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
>If you can address the few comments, I'll queue the v3 via the
>MIPS tree.

[X] Done

Thank you!

Bernhard
>
>Thanks,
>
>Phil.



^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2022-03-01 22:40 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-22 19:34 [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 01/22] hw/rtc/mc146818rtc: QOM'ify IRQ number Bernhard Beschow
2022-02-27 22:10   ` Philippe Mathieu-Daudé
2022-02-22 19:34 ` [PATCH v2 02/22] hw/rtc/m48t59-isa: " Bernhard Beschow
2022-02-27 22:13   ` Philippe Mathieu-Daudé
2022-02-22 19:34 ` [PATCH v2 03/22] hw/input/pckbd: QOM'ify IRQ numbers Bernhard Beschow
2022-02-27 22:14   ` Philippe Mathieu-Daudé
2022-02-22 19:34 ` [PATCH v2 04/22] hw/isa/isa-bus: Remove isabus_dev_print() Bernhard Beschow
2022-02-27 22:39   ` Philippe Mathieu-Daudé
2022-02-22 19:34 ` [PATCH v2 05/22] hw/ppc/pnv: Determine ns16550's IRQ number from QOM property Bernhard Beschow
2022-02-26 11:24   ` Cédric Le Goater
2022-02-26 11:27     ` BB
2022-02-27 22:17   ` Philippe Mathieu-Daudé
2022-03-01  8:31     ` Cédric Le Goater
2022-02-22 19:34 ` [PATCH v2 06/22] isa: Drop unused attributes from ISADevice Bernhard Beschow
2022-02-27 22:19   ` Philippe Mathieu-Daudé
2022-02-22 19:34 ` [PATCH v2 07/22] hw/audio/cs4231a: Disuse isa_init_irq() Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 08/22] hw/audio/gus: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 09/22] hw/audio/sb16: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 10/22] hw/block/fdc-isa: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 11/22] hw/char/parallel: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 12/22] hw/char/serial-isa: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 13/22] hw/ide/isa: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 14/22] hw/input/pckbd: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 15/22] hw/ipmi/isa_ipmi_bt: " Bernhard Beschow
2022-02-26 20:16   ` Corey Minyard
2022-02-22 19:34 ` [PATCH v2 16/22] hw/ipmi/isa_ipmi_kcs: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 17/22] hw/isa/piix4: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 18/22] hw/net/ne2000-isa: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 19/22] hw/rtc/m48t59-isa: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 20/22] hw/tpm/tpm_tis_isa: " Bernhard Beschow
2022-02-22 19:50   ` Stefan Berger
2022-02-22 19:34 ` [PATCH v2 21/22] hw/isa/isa-bus: " Bernhard Beschow
2022-02-22 19:34 ` [PATCH v2 22/22] isa: Remove unused isa_init_irq() Bernhard Beschow
2022-02-27 22:27   ` Philippe Mathieu-Daudé
2022-02-27 22:40 ` [PATCH v2 00/22] isa: Resolve unneeded IRQ attributes from ISADevice Philippe Mathieu-Daudé
2022-03-01 12:04   ` Philippe Mathieu-Daudé
2022-03-01 22:03     ` Bernhard Beschow

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.