aboutsummaryrefslogtreecommitdiff
path: root/emulators/qemu/files
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2006-03-26 15:11:36 +0000
committerPav Lucistnik <pav@FreeBSD.org>2006-03-26 15:11:36 +0000
commit66a6dd30c366ff17a6b3ba25d12f4363cffc1975 (patch)
treebbda6a0c22f6465e281474168211f49efeba6020 /emulators/qemu/files
parentd567023a727a9aaa43666659d0d9c90871946cda (diff)
downloadports-66a6dd30c366ff17a6b3ba25d12f4363cffc1975.tar.gz
ports-66a6dd30c366ff17a6b3ba25d12f4363cffc1975.zip
Notes
Diffstat (limited to 'emulators/qemu/files')
-rw-r--r--emulators/qemu/files/patch-usb-hchalt10
-rw-r--r--emulators/qemu/files/patch-usb-hubfixups21
-rw-r--r--emulators/qemu/files/patch-usb-uhub-CPEfix9
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;