--- a/qemu/usb-linux.c 2006-01-15 22:06:40.000000000 -0600 +++ b/qemu/usb-linux.c 2006-02-21 10:13:51.000000000 -0600 @@ -278,7 +354,7 @@ if (strlen(line) > 0) line[strlen(line) - 1] = '\0'; if (line[0] == 'T' && line[1] == ':') { - if (device_count) { + if (device_count && (vendor_id || product_id)) { ret = func(opaque, bus_num, addr, class_id, vendor_id, product_id, product_name, speed); if (ret) @@ -321,7 +397,7 @@ } fail: ; } - if (device_count) { + if (device_count && (vendor_id || product_id)) { ret = func(opaque, bus_num, addr, class_id, vendor_id, product_id, product_name, speed); } --- a/qemu/hw/usb-uhci.c 2005-12-19 16:51:53.000000000 -0600 +++ b/qemu/hw/usb-uhci.c 2006-02-21 10:25:45.000000000 -0600 @@ -654,6 +661,7 @@ pci_conf[0x0b] = 0x0c; pci_conf[0x0e] = 0x00; // header_type pci_conf[0x3d] = 4; // interrupt pin 3 + pci_conf[0x60] = 0x10; // release number for(i = 0; i < NB_PORTS; i++) { port = &s->ports[i]; @@ -666,6 +674,6 @@ uhci_reset(s); - pci_register_io_region(&s->dev, 0, 0x20, + pci_register_io_region(&s->dev, 4, 0x20, PCI_ADDRESS_SPACE_IO, uhci_map); }