]> git.proxmox.com Git - qemu.git/commit - trace-events
ehci: handle dma errors
authorGerd Hoffmann <kraxel@redhat.com>
Thu, 15 Nov 2012 12:07:49 +0000 (13:07 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 16 Nov 2012 10:27:32 +0000 (11:27 +0100)
commit55903f1d2d8abfa8d7610ab32a4046a1ed4fdbb8
treec82911f7129a40b4756e9e5f300d471e588b72e3
parent40862309a9d733cb0e878c79f477de003897b5d2
ehci: handle dma errors

Starting with commit 1c380f9460522f32c8dd2577b2a53d518ec91c6d dma
transfers can actually fail.  This patch makes ehci keep track
of the busmaster bit in pci config space, by setting/clearing the
dma_context pointer.  Attempts to dma without context will result
in raising HSE (Host System Error) interrupt and stopping the host
controller.

This patch fixes WinXP not booting with a usb stick attached to ehci.
Root cause is seabios activating ehci so you can boot from the stick,
and WinXP clearing the busmaster bit before resetting the host
controller, leading to ehci actually trying dma while it is disabled.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/hcd-ehci-pci.c
hw/usb/hcd-ehci.c
trace-events