aboutsummaryrefslogtreecommitdiff
path: root/hw/arm/versatilepb.c
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw@amazon.co.uk>2023-10-23 09:37:35 +0100
committerDavid Woodhouse <dwmw@amazon.co.uk>2024-02-02 16:23:47 +0000
commitcd53991de40a90399a8b56f0ad7b9320442ea5bb (patch)
treedc3c2f27d3a2b85da77ce357999b8fa086328b82 /hw/arm/versatilepb.c
parent8cef839c2d2f3fc2430570fd040104e3ed61dcf8 (diff)
hw/net/smc91c111: use qemu_configure_nic_device()
Some callers instantiate the device unconditionally, others will do so only if there is a NICInfo to go with it. This appears to be fairly random, but preserve the existing behaviour of each caller for now. Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> Reviewed-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'hw/arm/versatilepb.c')
-rw-r--r--hw/arm/versatilepb.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c
index 1d813aa23b..d10b75dfdb 100644
--- a/hw/arm/versatilepb.c
+++ b/hw/arm/versatilepb.c
@@ -192,10 +192,8 @@ static void versatile_init(MachineState *machine, int board_id)
SysBusDevice *busdev;
DeviceState *pl041;
PCIBus *pci_bus;
- NICInfo *nd;
I2CBus *i2c;
int n;
- int done_smc = 0;
DriveInfo *dinfo;
if (machine->ram_size > 0x10000000) {
@@ -263,16 +261,11 @@ static void versatile_init(MachineState *machine, int board_id)
sysbus_connect_irq(busdev, 3, sic[30]);
pci_bus = (PCIBus *)qdev_get_child_bus(dev, "pci");
- for(n = 0; n < nb_nics; n++) {
- nd = &nd_table[n];
-
- if (!done_smc && (!nd->model || strcmp(nd->model, "smc91c111") == 0)) {
- smc91c111_init(nd, 0x10010000, sic[25]);
- done_smc = 1;
- } else {
- pci_nic_init_nofail(nd, pci_bus, "rtl8139", NULL);
- }
+ if (qemu_find_nic_info("smc91c111", true, NULL)) {
+ smc91c111_init(0x10010000, sic[25]);
}
+ pci_init_nic_devices(pci_bus, "rtl8139");
+
if (machine_usb(machine)) {
pci_create_simple(pci_bus, -1, "pci-ohci");
}