From nobody Wed Nov 5 18:43:18 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1536213588630131.27194998098048; Wed, 5 Sep 2018 22:59:48 -0700 (PDT) Received: from localhost ([::1]:59527 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxnKN-0000n5-Q3 for importer@patchew.org; Thu, 06 Sep 2018 01:59:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41406) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fxnIn-0008Ep-Dg for qemu-devel@nongnu.org; Thu, 06 Sep 2018 01:58:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fxnIl-0008Rr-RA for qemu-devel@nongnu.org; Thu, 06 Sep 2018 01:58:01 -0400 Received: from chuckie.co.uk ([82.165.15.123]:55509 helo=s16892447.onlinehome-server.info) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fxnIl-0008RM-K6; Thu, 06 Sep 2018 01:57:59 -0400 Received: from [86.188.254.49] (helo=kentang.int.eigen.co) by s16892447.onlinehome-server.info with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1fxnIp-0004rx-JA; Thu, 06 Sep 2018 06:58:05 +0100 From: Mark Cave-Ayland To: pbonzini@redhat.com, famz@redhat.com, hpoussin@reactos.org, rth@twiddle.net, peter.maydell@linaro.org, thuth@redhat.com, armbru@redhat.com, qemu-devel@nongnu.org, qemu-ppc@nongnu.org Date: Thu, 6 Sep 2018 06:57:35 +0100 Message-Id: <20180906055736.20256-3-mark.cave-ayland@ilande.co.uk> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180906055736.20256-1-mark.cave-ayland@ilande.co.uk> References: <20180906055736.20256-1-mark.cave-ayland@ilande.co.uk> X-SA-Exim-Connect-IP: 86.188.254.49 X-SA-Exim-Mail-From: mark.cave-ayland@ilande.co.uk X-SA-Exim-Version: 4.2.1 (built Sun, 08 Jan 2012 02:45:44 +0000) X-SA-Exim-Scanned: Yes (on s16892447.onlinehome-server.info) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 82.165.15.123 Subject: [Qemu-devel] [PATCH 2/3] scsi: move lsi53c895a_create() and lsi53c810_create() callers to pci_create_simple() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" As part of commits a64aa5785d "hw: Deprecate -drive if=3Dscsi with non-onbo= ard HBAs" and b891538e81 "hw/ppc/prep: Fix implicit creation of "-drive if=3Dsc= si" 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. Now that we have a separate header f= ile for these devices it is possible to return the LSI objects themselves, which enables us to both modify the LSI device configuration as required and also move the invocation of scsi_bus_legacy_handle_cmdline() to the caller as do= ne elsewhere. Signed-off-by: Mark Cave-Ayland --- hw/arm/realview.c | 5 ++++- hw/arm/versatilepb.c | 5 ++++- hw/hppa/machine.c | 5 ++++- hw/ppc/prep.c | 6 +++++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/hw/arm/realview.c b/hw/arm/realview.c index ab8c14fde3..75168afd4d 100644 --- a/hw/arm/realview.c +++ b/hw/arm/realview.c @@ -16,6 +16,7 @@ #include "hw/arm/primecell.h" #include "hw/devices.h" #include "hw/pci/pci.h" +#include "hw/scsi/lsi53c895a.h" #include "net/net.h" #include "sysemu/sysemu.h" #include "hw/boards.h" @@ -63,6 +64,7 @@ static void realview_init(MachineState *machine, MemoryRegion *ram_hack =3D g_new(MemoryRegion, 1); DeviceState *dev, *sysctl, *gpio2, *pl041; SysBusDevice *busdev; + LSIState *lsi; qemu_irq pic[64]; qemu_irq mmc_irq[2]; PCIBus *pci_bus =3D NULL; @@ -257,7 +259,8 @@ static void realview_init(MachineState *machine, } n =3D drive_get_max_bus(IF_SCSI); while (n >=3D 0) { - lsi53c895a_create(pci_bus); + lsi =3D LSI53C895A(pci_create_simple(pci_bus, -1, TYPE_LSI53C8= 95A)); + scsi_bus_legacy_handle_cmdline(&lsi->bus); n--; } } diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c index 8b74857059..dd9962037e 100644 --- a/hw/arm/versatilepb.c +++ b/hw/arm/versatilepb.c @@ -19,6 +19,7 @@ #include "hw/pci/pci.h" #include "hw/i2c/i2c.h" #include "hw/boards.h" +#include "hw/scsi/lsi53c895a.h" #include "exec/address-spaces.h" #include "hw/block/flash.h" #include "qemu/error-report.h" @@ -189,6 +190,7 @@ static void versatile_init(MachineState *machine, int b= oard_id) DeviceState *dev, *sysctl; SysBusDevice *busdev; DeviceState *pl041; + LSIState *lsi; PCIBus *pci_bus; NICInfo *nd; I2CBus *i2c; @@ -278,7 +280,8 @@ static void versatile_init(MachineState *machine, int b= oard_id) } n =3D drive_get_max_bus(IF_SCSI); while (n >=3D 0) { - lsi53c895a_create(pci_bus); + lsi =3D LSI53C895A(pci_create_simple(pci_bus, -1, TYPE_LSI53C895A)= ); + scsi_bus_legacy_handle_cmdline(&lsi->bus); n--; } =20 diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c index cf7c61c6cc..ddd8ee45e4 100644 --- a/hw/hppa/machine.c +++ b/hw/hppa/machine.c @@ -16,6 +16,7 @@ #include "hw/ide.h" #include "hw/timer/i8254.h" #include "hw/char/serial.h" +#include "hw/scsi/lsi53c895a.h" #include "hppa_sys.h" #include "qemu/units.h" #include "qapi/error.h" @@ -61,6 +62,7 @@ static void machine_hppa_init(MachineState *machine) const char *initrd_filename =3D machine->initrd_filename; PCIBus *pci_bus; ISABus *isa_bus; + LSIState *lsi; qemu_irq rtc_irq, serial_irq; char *firmware_filename; uint64_t firmware_low, firmware_high; @@ -115,7 +117,8 @@ static void machine_hppa_init(MachineState *machine) } =20 /* SCSI disk setup. */ - lsi53c895a_create(pci_bus); + lsi =3D LSI53C895A(pci_create_simple(pci_bus, -1, TYPE_LSI53C895A)); + scsi_bus_legacy_handle_cmdline(&lsi->bus); =20 /* Network setup. e1000 is good enough, failing Tulip support. */ for (i =3D 0; i < nb_nics; i++) { diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index 162b27a3b8..fcb2a41846 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -44,6 +44,7 @@ #include "hw/input/i8042.h" #include "hw/isa/pc87312.h" #include "hw/net/ne2000-isa.h" +#include "hw/scsi/lsi53c895a.h" #include "sysemu/arch_init.h" #include "sysemu/kvm.h" #include "sysemu/qtest.h" @@ -623,6 +624,7 @@ static void ibm_40p_init(MachineState *machine) DeviceState *dev; SysBusDevice *pcihost, *s; Nvram *m48t59 =3D NULL; + LSIState *lsi; PCIBus *pci_bus; ISABus *isa_bus; void *fw_cfg; @@ -702,7 +704,9 @@ static void ibm_40p_init(MachineState *machine) qdev_prop_set_uint32(dev, "equipment", 0xc0); qdev_init_nofail(dev); =20 - lsi53c810_create(pci_bus, PCI_DEVFN(1, 0)); + lsi =3D LSI53C810(pci_create_simple(pci_bus, PCI_DEVFN(1, 0), + TYPE_LSI53C810)); + scsi_bus_legacy_handle_cmdline(&lsi->bus); =20 /* XXX: s3-trio at PCI_DEVFN(2, 0) */ pci_vga_init(pci_bus); --=20 2.11.0