Commit 07dc7880 authored by Markus Armbruster's avatar Markus Armbruster Committed by Andreas Färber
Browse files

parallel: Factor out common parallel_hds_isa_init()



Maintainers of affected machines cc'ed.

Cc: Anthony Liguori <aliguori@amazon.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Leon Alrae <leon.alrae@imgtec.com>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
parent c6f10a58
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -641,3 +641,34 @@ static void parallel_register_types(void)
}

type_init(parallel_register_types)

static bool parallel_init(ISABus *bus, int index, CharDriverState *chr)
{
    DeviceState *dev;
    ISADevice *isadev;

    isadev = isa_try_create(bus, "isa-parallel");
    if (!isadev) {
        return false;
    }
    dev = DEVICE(isadev);
    qdev_prop_set_uint32(dev, "index", index);
    qdev_prop_set_chr(dev, "chardev", chr);
    if (qdev_init(dev) < 0) {
        return false;
    }
    return true;
}

void parallel_hds_isa_init(ISABus *bus, int n)
{
    int i;

    assert(n <= MAX_PARALLEL_PORTS);

    for (i = 0; i < n; i++) {
        if (parallel_hds[i]) {
            parallel_init(bus, i, parallel_hds[i]);
        }
    }
}
+1 −6
Original line number Diff line number Diff line
@@ -1420,12 +1420,7 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
    }

    serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS);

    for(i = 0; i < MAX_PARALLEL_PORTS; i++) {
        if (parallel_hds[i]) {
            parallel_init(isa_bus, i, parallel_hds[i]);
        }
    }
    parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS);

    a20_line = qemu_allocate_irqs(handle_a20_line_change, first_cpu, 2);
    i8042 = isa_create_simple(isa_bus, "i8042");
+1 −4
Original line number Diff line number Diff line
@@ -384,10 +384,7 @@ static void mips_fulong2e_init(MachineState *machine)
    rtc_init(isa_bus, 2000, NULL);

    serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS);

    if (parallel_hds[0]) {
        parallel_init(isa_bus, 0, parallel_hds[0]);
    }
    parallel_hds_isa_init(isa_bus, 1);

    /* Sound card */
    audio_init(pci_bus);
+2 −2
Original line number Diff line number Diff line
@@ -1173,8 +1173,8 @@ void mips_malta_init(MachineState *machine)

    rtc_init(isa_bus, 2000, NULL);
    serial_hds_isa_init(isa_bus, 2);
    if (parallel_hds[0])
        parallel_init(isa_bus, 0, parallel_hds[0]);
    parallel_hds_isa_init(isa_bus, 1);

    for(i = 0; i < MAX_FD; i++) {
        fd[i] = drive_get(IF_FLOPPY, 0, i);
    }
+1 −6
Original line number Diff line number Diff line
@@ -851,12 +851,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
    }

    serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS);

    for(i = 0; i < MAX_PARALLEL_PORTS; i++) {
        if (parallel_hds[i]) {
            parallel_init(isa_bus, i, parallel_hds[i]);
        }
    }
    parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS);

    for(i = 0; i < nb_nics; i++)
        pci_nic_init_nofail(&nd_table[i], pci_bus, "ne2k_pci", NULL);
Loading