summary refs log tree commit diff stats
path: root/hw/pc.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2009-08-14 11:36:14 +0200
committerAnthony Liguori <aliguori@us.ibm.com>2009-08-27 20:30:11 -0500
commit2091ba23e838c3a8773c246238d7381333789852 (patch)
treef0fe63782f1532c1d193a92a701d11e1544e1fde /hw/pc.c
parent3f9cb1c14dc368f41447db5f78d6248c4f100ad4 (diff)
downloadfocaccia-qemu-2091ba23e838c3a8773c246238d7381333789852.tar.gz
focaccia-qemu-2091ba23e838c3a8773c246238d7381333789852.zip
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.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/hw/pc.c b/hw/pc.c
index 11b8618aa3..abb735622e 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -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);