On Fri, Mar 13, 2020 at 10:14:34PM +0100, BALATON Zoltan wrote: > This removes pci_piix4_ide_init() function similar to clean up done to > other ide devices. > > Signed-off-by: BALATON Zoltan <bala...@eik.bme.hu> > --- > hw/ide/piix.c | 12 +----------- > hw/isa/piix4.c | 5 ++++- > include/hw/ide.h | 1 - > 3 files changed, 5 insertions(+), 13 deletions(-) > > diff --git a/hw/ide/piix.c b/hw/ide/piix.c > index 8bcd6b72c2..3b2de4c312 100644 > --- a/hw/ide/piix.c > +++ b/hw/ide/piix.c > @@ -208,17 +208,6 @@ static void pci_piix_ide_exitfn(PCIDevice *dev) > } > } > > -/* hd_table must contain 4 block drivers */ > -/* NOTE: for the PIIX4, the IRQs and IOports are hardcoded */ > -PCIDevice *pci_piix4_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn) > -{ > - PCIDevice *dev; > - > - dev = pci_create_simple(bus, devfn, "piix4-ide"); > - pci_ide_create_devs(dev, hd_table); > - return dev; > -} > - > /* NOTE: for the PIIX3, the IRQs and IOports are hardcoded */ > static void piix3_ide_class_init(ObjectClass *klass, void *data) > { > @@ -247,6 +236,7 @@ static const TypeInfo piix3_ide_xen_info = { > .class_init = piix3_ide_class_init, > }; > > +/* NOTE: for the PIIX4, the IRQs and IOports are hardcoded */ > static void piix4_ide_class_init(ObjectClass *klass, void *data) > { > DeviceClass *dc = DEVICE_CLASS(klass); > diff --git a/hw/isa/piix4.c b/hw/isa/piix4.c > index 7edec5e149..0ab4787658 100644 > --- a/hw/isa/piix4.c > +++ b/hw/isa/piix4.c > @@ -35,6 +35,7 @@ > #include "hw/timer/i8254.h" > #include "hw/rtc/mc146818rtc.h" > #include "hw/ide.h" > +#include "hw/ide/pci.h" > #include "migration/vmstate.h" > #include "sysemu/reset.h" > #include "sysemu/runstate.h" > @@ -255,10 +256,12 @@ DeviceState *piix4_create(PCIBus *pci_bus, ISABus > **isa_bus, > *isa_bus = ISA_BUS(qdev_get_child_bus(dev, "isa.0")); > } > > + pci = pci_create_simple(pci_bus, pci->devfn + 1, "piix4-ide"); > hd = g_new(DriveInfo *, ide_drives); > ide_drive_get(hd, ide_drives); > - pci_piix4_ide_init(pci_bus, hd, pci->devfn + 1); > + pci_ide_create_devs(pci, hd); > g_free(hd); > +
Why not move pci_create_simple down, and declare a new variable? - pci_piix4_ide_init(pci_bus, hd, pci->devfn + 1); + pci_dev = pci_create_simple(pci_bus, pci->devfn + 1, "piix4-ide"); + pci_ide_create_devs(pci_dev, hd); makes it clearer what's going on imho. > pci_create_simple(pci_bus, pci->devfn + 2, "piix4-usb-uhci"); > if (smbus) { > *smbus = piix4_pm_init(pci_bus, pci->devfn + 3, 0x1100, > diff --git a/include/hw/ide.h b/include/hw/ide.h > index 883bbaeb9b..21bd8f23f1 100644 > --- a/include/hw/ide.h > +++ b/include/hw/ide.h > @@ -12,7 +12,6 @@ ISADevice *isa_ide_init(ISABus *bus, int iobase, int > iobase2, int isairq, > DriveInfo *hd0, DriveInfo *hd1); > > /* ide-pci.c */ > -PCIDevice *pci_piix4_ide_init(PCIBus *bus, DriveInfo **hd_table, int devfn); > int pci_piix3_xen_ide_unplug(DeviceState *dev, bool aux); > > /* ide-mmio.c */ > -- > 2.21.1