diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2009-08-14 11:36:14 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-08-27 20:30:11 -0500 |
commit | 2091ba23e838c3a8773c246238d7381333789852 (patch) | |
tree | f0fe63782f1532c1d193a92a701d11e1544e1fde /hw/pc.c | |
parent | 3f9cb1c14dc368f41447db5f78d6248c4f100ad4 (diff) |
isa bus irq changes and fixes.
Changes:
(1) make isa-bus maintain isa irqs, complain when allocating
already taken irqs.
(2) note that (1) works only for isa devices converted to qdev
already (floppy and ps2/kbd/mouse right now), so more work
is needed to make this really useful.
(3) split floppy init into isa and sysbus versions.
(4) add sysbus->isa bridge & fix -M isapc breakage.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/pc.c')
-rw-r--r-- | hw/pc.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -1283,7 +1283,9 @@ static void pc_init1(ram_addr_t ram_size, piix3_devfn = piix3_init(pci_bus, -1); } else { pci_bus = NULL; + isa_bus_new(NULL); } + isa_bus_irqs(isa_irq); /* init basic PC hardware */ register_ioport_write(0x80, 1, 1, ioport80_write, NULL); @@ -1372,8 +1374,8 @@ static void pc_init1(ram_addr_t ram_size, } isa_dev = isa_create_simple("i8042", 0x60, 0x64); - isa_connect_irq(isa_dev, 0, isa_irq[1]); - isa_connect_irq(isa_dev, 1, isa_irq[12]); + isa_connect_irq(isa_dev, 0, 1); + isa_connect_irq(isa_dev, 1, 12); DMA_init(0); #ifdef HAS_AUDIO audio_init(pci_enabled ? pci_bus : NULL, isa_irq); @@ -1383,7 +1385,7 @@ static void pc_init1(ram_addr_t ram_size, dinfo = drive_get(IF_FLOPPY, 0, i); fd[i] = dinfo ? dinfo->bdrv : NULL; } - floppy_controller = fdctrl_init(isa_irq[6], 2, 0, 0x3f0, fd); + floppy_controller = fdctrl_init_isa(6, 2, 0x3f0, fd); cmos_init(below_4g_mem_size, above_4g_mem_size, boot_device, hd); |