diff options
author | Pav Lucistnik <pav@FreeBSD.org> | 2006-03-26 15:11:36 +0000 |
---|---|---|
committer | Pav Lucistnik <pav@FreeBSD.org> | 2006-03-26 15:11:36 +0000 |
commit | 66a6dd30c366ff17a6b3ba25d12f4363cffc1975 (patch) | |
tree | bbda6a0c22f6465e281474168211f49efeba6020 /emulators/qemu/files | |
parent | d567023a727a9aaa43666659d0d9c90871946cda (diff) | |
download | ports-66a6dd30c366ff17a6b3ba25d12f4363cffc1975.tar.gz ports-66a6dd30c366ff17a6b3ba25d12f4363cffc1975.zip |
Notes
Diffstat (limited to 'emulators/qemu/files')
-rw-r--r-- | emulators/qemu/files/patch-usb-hchalt | 10 | ||||
-rw-r--r-- | emulators/qemu/files/patch-usb-hubfixups | 21 | ||||
-rw-r--r-- | emulators/qemu/files/patch-usb-uhub-CPEfix | 9 |
3 files changed, 33 insertions, 7 deletions
diff --git a/emulators/qemu/files/patch-usb-hchalt b/emulators/qemu/files/patch-usb-hchalt index 360104d5bb25..cf141d1475e6 100644 --- a/emulators/qemu/files/patch-usb-hchalt +++ b/emulators/qemu/files/patch-usb-hchalt @@ -1,5 +1,13 @@ Index: qemu/hw/usb-uhci.c -@@ -527,6 +532,8 @@ +@@ -174,6 +177,7 @@ + if ((val & UHCI_CMD_RS) && !(s->cmd & UHCI_CMD_RS)) { + /* start frame processing */ + qemu_mod_timer(s->frame_timer, qemu_get_clock(vm_clock)); ++ s->status &= ~UHCI_STS_HCHALTED; + } + if (val & UHCI_CMD_GRESET) { + UHCIPort *port; +@@ -528,6 +534,8 @@ if (!(s->cmd & UHCI_CMD_RS)) { qemu_del_timer(s->frame_timer); diff --git a/emulators/qemu/files/patch-usb-hubfixups b/emulators/qemu/files/patch-usb-hubfixups index 17db3bd32806..26d62fea199e 100644 --- a/emulators/qemu/files/patch-usb-hubfixups +++ b/emulators/qemu/files/patch-usb-hubfixups @@ -25,18 +25,18 @@ Index: qemu/hw/usb.c case DeviceOutRequest | USB_REQ_SET_FEATURE: if (value == USB_DEVICE_REMOTE_WAKEUP) { dev->remote_wakeup = 1; -@@ -408,6 +414,11 @@ - case USB_DT_DEVICE: - memcpy(data, qemu_hub_dev_descriptor, - sizeof(qemu_hub_dev_descriptor)); +@@ -413,6 +419,11 @@ + case USB_DT_CONFIG: + memcpy(data, qemu_hub_config_descriptor, + sizeof(qemu_hub_config_descriptor)); + + /* status change endpoint size based on number + * of ports */ + data[22] = (s->nb_ports + 1 + 7) / 8; + - ret = sizeof(qemu_hub_dev_descriptor); + ret = sizeof(qemu_hub_config_descriptor); break; - case USB_DT_CONFIG: + case USB_DT_STRING: @@ -558,11 +569,29 @@ } break; @@ -85,3 +85,12 @@ Index: qemu/hw/usb.c status = 0; for(i = 0; i < s->nb_ports; i++) { port = &s->ports[i]; +@@ -598,7 +630,7 @@ + } + ret = n; + } else { +- ret = 0; ++ ret = USB_RET_NAK; /* usb_20 11.12.1 */ + } + } else { + goto fail; diff --git a/emulators/qemu/files/patch-usb-uhub-CPEfix b/emulators/qemu/files/patch-usb-uhub-CPEfix new file mode 100644 index 000000000000..30ad3ed9e925 --- /dev/null +++ b/emulators/qemu/files/patch-usb-uhub-CPEfix @@ -0,0 +1,9 @@ +Index: qemu/hw/usb.c +@@ -508,7 +518,6 @@ + USB_MSG_RESET, 0, 0, NULL, 0); + port->wPortChange |= PORT_STAT_C_RESET; + /* set enable bit */ +- port->wPortChange |= PORT_STAT_C_ENABLE; + port->wPortStatus |= PORT_STAT_ENABLE; + } + break; |