[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 02/28] serial-pci-multi: factor out multi_serial_get_nr_ports
From: |
Marc-André Lureau |
Subject: |
[PATCH v2 02/28] serial-pci-multi: factor out multi_serial_get_nr_ports |
Date: |
Tue, 22 Oct 2019 18:21:11 +0200 |
Reused in following patch.
Signed-off-by: Marc-André Lureau <address@hidden>
---
hw/char/serial-pci-multi.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/hw/char/serial-pci-multi.c b/hw/char/serial-pci-multi.c
index 5f13b5663b..6fa1cc6225 100644
--- a/hw/char/serial-pci-multi.c
+++ b/hw/char/serial-pci-multi.c
@@ -77,24 +77,26 @@ static void multi_serial_irq_mux(void *opaque, int n, int
level)
pci_set_irq(&pci->dev, pending);
}
+static int multi_serial_get_nr_ports(PCIDeviceClass *pc)
+{
+ switch (pc->device_id) {
+ case 0x0003:
+ return 2;
+ case 0x0004:
+ return 4;
+ }
+
+ g_assert_not_reached();
+}
+
+
static void multi_serial_pci_realize(PCIDevice *dev, Error **errp)
{
PCIDeviceClass *pc = PCI_DEVICE_GET_CLASS(dev);
PCIMultiSerialState *pci = DO_UPCAST(PCIMultiSerialState, dev, dev);
SerialState *s;
Error *err = NULL;
- int i, nr_ports = 0;
-
- switch (pc->device_id) {
- case 0x0003:
- nr_ports = 2;
- break;
- case 0x0004:
- nr_ports = 4;
- break;
- }
- assert(nr_ports > 0);
- assert(nr_ports <= PCI_SERIAL_MAX_PORTS);
+ int i, nr_ports = multi_serial_get_nr_ports(pc);
pci->dev.config[PCI_CLASS_PROG] = pci->prog_if;
pci->dev.config[PCI_INTERRUPT_PIN] = 0x01;
--
2.23.0.606.g08da6496b6
- [PATCH v2 00/28] Clean-ups: qom-ify serial and remove QDEV_PROP_PTR, Marc-André Lureau, 2019/10/22
- [PATCH v2 01/28] chardev: generate an internal id when none given, Marc-André Lureau, 2019/10/22
- [PATCH v2 02/28] serial-pci-multi: factor out multi_serial_get_nr_ports,
Marc-André Lureau <=
- [PATCH v2 03/28] serial: initial qom-ification, Marc-André Lureau, 2019/10/22
- [PATCH v2 04/28] serial: register vmsd with DeviceClass, Marc-André Lureau, 2019/10/22
- [PATCH v2 05/28] serial: add and set "chardev" property, Marc-André Lureau, 2019/10/22
- [PATCH v2 06/28] serial: make SerialMMState actually a different type, Marc-André Lureau, 2019/10/22
- [PATCH v2 07/28] serial: add and set "regshift" property, Marc-André Lureau, 2019/10/22
- [PATCH v2 08/28] serial: convert irq to qdev gpio properties, Marc-André Lureau, 2019/10/22
- [PATCH v2 10/28] serial: add "base" property, Marc-André Lureau, 2019/10/22