[SeaBIOS] Intermittent USB keyboard freeze
Gabriel L. Somlo
gsomlo at gmail.com
Tue Feb 4 18:45:27 CET 2014
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 */
More information about the SeaBIOS
mailing list