summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--hw/usb-uhci.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/hw/usb-uhci.c b/hw/usb-uhci.c
index 42417fedae..4dd0c63815 100644
--- a/hw/usb-uhci.c
+++ b/hw/usb-uhci.c
@@ -106,7 +106,7 @@ static void uhci_update_irq(UHCIState *s)
     } else {
         level = 0;
     }
-    pci_set_irq(&s->dev, 0, level);
+    pci_set_irq(&s->dev, 3, level);
 }
 
 static void uhci_reset(UHCIState *s)
@@ -642,7 +642,7 @@ void usb_uhci_init(PCIBus *bus, USBPort **usb_ports)
 
     s = (UHCIState *)pci_register_device(bus,
                                         "USB-UHCI", sizeof(UHCIState),
-                                        -1, 
+                                        ((PCIDevice *)piix3_state)->devfn + 2, 
                                         NULL, NULL);
     pci_conf = s->dev.config;
     pci_conf[0x00] = 0x86;
@@ -654,7 +654,7 @@ void usb_uhci_init(PCIBus *bus, USBPort **usb_ports)
     pci_conf[0x0a] = 0x03;
     pci_conf[0x0b] = 0x0c;
     pci_conf[0x0e] = 0x00; // header_type
-    pci_conf[0x3d] = 1; // interrupt pin 0
+    pci_conf[0x3d] = 4; // interrupt pin 3
     
     for(i = 0; i < NB_PORTS; i++) {
         port = &s->ports[i];