aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2018-09-19 18:20:58 +0100
committerDavid Gibson <david@gibson.dropbear.id.au>2018-09-25 11:12:25 +1000
commit877eb21d5607e5097b8331e7a5b3d9714c0c5b91 (patch)
treef3b5b2dbe64b5ad7520af931b6a6ae54510f634d /hw
parentf74a4f3a59b6168b8f3e84e4276c47eda610891d (diff)
scsi: move lsi53c8xx_create() callers to lsi53c8xx_handle_legacy_cmdline()
As part of commits a64aa5785d "hw: Deprecate -drive if=scsi with non-onboard HBAs" and b891538e81 "hw/ppc/prep: Fix implicit creation of "-drive if=scsi" devices" the lsi53c895a_create() and lsi53c810_create() functions were added to wrap pci_create_simple() and scsi_bus_legacy_handle_cmdline(). Unfortunately this prevents us from changing qdev properties on the device and/or changing the PCI configuration. By switching over to using the new lsi53c8xx_handle_legacy_cmdline() function then the caller can now configure and realize the LSI SCSI device exactly as required. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Acked-by: Peter Maydell <peter.maydell@linaro.org> [arm parts] Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'hw')
-rw-r--r--hw/arm/realview.c3
-rw-r--r--hw/arm/versatilepb.c3
-rw-r--r--hw/hppa/machine.c4
-rw-r--r--hw/ppc/prep.c4
4 files changed, 10 insertions, 4 deletions
diff --git a/hw/arm/realview.c b/hw/arm/realview.c
index ab8c14fde3..242f5a87b6 100644
--- a/hw/arm/realview.c
+++ b/hw/arm/realview.c
@@ -257,7 +257,8 @@ static void realview_init(MachineState *machine,
}
n = drive_get_max_bus(IF_SCSI);
while (n >= 0) {
- lsi53c895a_create(pci_bus);
+ dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
+ lsi53c8xx_handle_legacy_cmdline(dev);
n--;
}
}
diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c
index 8b74857059..22b09a1e61 100644
--- a/hw/arm/versatilepb.c
+++ b/hw/arm/versatilepb.c
@@ -278,7 +278,8 @@ static void versatile_init(MachineState *machine, int board_id)
}
n = drive_get_max_bus(IF_SCSI);
while (n >= 0) {
- lsi53c895a_create(pci_bus);
+ dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
+ lsi53c8xx_handle_legacy_cmdline(dev);
n--;
}
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index cf7c61c6cc..0fb8fb877e 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -59,6 +59,7 @@ static void machine_hppa_init(MachineState *machine)
const char *kernel_filename = machine->kernel_filename;
const char *kernel_cmdline = machine->kernel_cmdline;
const char *initrd_filename = machine->initrd_filename;
+ DeviceState *dev;
PCIBus *pci_bus;
ISABus *isa_bus;
qemu_irq rtc_irq, serial_irq;
@@ -115,7 +116,8 @@ static void machine_hppa_init(MachineState *machine)
}
/* SCSI disk setup. */
- lsi53c895a_create(pci_bus);
+ dev = DEVICE(pci_create_simple(pci_bus, -1, "lsi53c895a"));
+ lsi53c8xx_handle_legacy_cmdline(dev);
/* Network setup. e1000 is good enough, failing Tulip support. */
for (i = 0; i < nb_nics; i++) {
diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c
index 4bb831c3e6..7e2c70b92a 100644
--- a/hw/ppc/prep.c
+++ b/hw/ppc/prep.c
@@ -700,7 +700,9 @@ static void ibm_40p_init(MachineState *machine)
qdev_prop_set_uint32(dev, "equipment", 0xc0);
qdev_init_nofail(dev);
- lsi53c810_create(pci_bus, PCI_DEVFN(1, 0));
+ dev = DEVICE(pci_create_simple(pci_bus, PCI_DEVFN(1, 0),
+ "lsi53c810"));
+ lsi53c8xx_handle_legacy_cmdline(dev);
/* XXX: s3-trio at PCI_DEVFN(2, 0) */
pci_vga_init(pci_bus);