uhci: Add a completions_only flag for async completions
authorHans de Goede <hdegoede@redhat.com>
Sat, 17 Nov 2012 11:11:49 +0000 (12:11 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 21 Nov 2012 13:55:54 +0000 (14:55 +0100)
commit887938160e5d631c56ee115b1817613a60184138
tree11a78c478dfdb481e9597ef0149912e05f57c4e3
parent1ccbc2851282564308f790753d7158487b6af8e2
uhci: Add a completions_only flag for async completions

Add a completions_only flag, and set this when running process_frame for async
completion handling, this fixes 2 issues in a single patch:

1) It makes sure async completed packets get written to guest mem immediately,
even if all the bandwidth for the frame was consumed from the timer run
process_frame. This is necessary as delaying their writeback to the next frame
can cause the completion to get lost on migration.

2) The calling of process_frame from a bh on async completion causes iso
tds to get server more often they should, messing up usb sound class device
timing. By only processing completed packets, the iso tds get skipped fixing
this.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/hcd-uhci.c