On Tue, Feb 04, 2014 at 12:27:47PM -0500, Kevin O'Connor wrote:
The qemu patch below does fix it for me.
This fixes it for me as well.
Thanks, --G
I think clearing the cache on reset is probably simpler then trying to verify the cache later on. It would be even better to clear the cache on a set_address command (to cover the admittedly obscure case of an OS changing a device's address later on). But, I'm not familiar enough with the QEMU code to attempt that.
-Kevin
--- a/hw/usb/hcd-uhci.c +++ b/hw/usb/hcd-uhci.c @@ -550,6 +552,13 @@ static void uhci_port_write(void *opaque, hwaddr addr, !(port->ctrl & UHCI_PORT_RESET) ) { usb_device_reset(dev); }
UHCIQueue *queue, *nq;
QTAILQ_FOREACH_SAFE(queue, &s->queues, next, nq) {
if (queue->token == 0) {
uhci_queue_free(queue, "reset-port");
}
} } port->ctrl &= UHCI_PORT_READ_ONLY; /* enabled may only be set if a device is connected */