Statistics
| Branch: | Revision:

root / hw / usb @ afd347ab

# Date Author Comment
afd347ab 01/12/2013 06:19 pm Paolo Bonzini

build: remove CONFIG_SMARTCARD

The passthru smartcard does not have the shared library dependency, build
it unconditionally.

Signed-off-by: Paolo Bonzini <>

8c43a6f0 01/10/2013 11:11 pm Andreas Färber

Make all static TypeInfos const

Since 39bffca2030950ef6efe57c2fac8327a45ae1015 (qdev: register all
types natively through QEMU Object Model), TypeInfo as used in
the common, non-iterative pattern is no longer amended with information
and should therefore be const....

b2d1fe67 01/08/2013 11:56 am Hans de Goede

usbredir: Add support for buffered bulk input (v2)

Buffered bulk mode is intended for bulk input endpoints, where the data is
of a streaming nature (not part of a command-response protocol). These
endpoints' input buffer may overflow if data is not read quickly enough....

89eb147c 01/08/2013 11:56 am Gerd Hoffmann

uhci: stop using portio lists

Signed-off-by: Gerd Hoffmann <>

719c130d 01/07/2013 01:57 pm Hans de Goede

uhci: Fix 1 ms delay in interrupt reporting to the guest

Re-arrange how we process frames / increase frnum / report pending interrupts,
to avoid a 1 ms delay in interrupt reporting to the guest. This increases
the packet throughput for cases where the guest submits a single packet,...

ecfdc15f 01/07/2013 01:57 pm Hans de Goede

uhci: Fix pending interrupts getting lost on migration

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

475443cf 01/07/2013 01:57 pm Hans de Goede

uhci: Add a QH_VALID define

Rather then using the magic 32 value in various places.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

f8f48b69 01/07/2013 01:57 pm Hans de Goede

uhci: Limit amount of frames processed in one go

Before this patch uhci would process an unlimited amount of frames when
behind on schedule, by setting the timer to a time already past, causing the
timer subsys to immediately recall the frame_timer function gain....

9fdf7027 01/07/2013 01:57 pm Hans de Goede

uhci: Maximize how many frames we catch up when behind

If somehow we've gotten behind a lot, simply skip ahead, like the ehci code
does.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

027c03f7 01/07/2013 01:57 pm Hans de Goede

hid: Change idle handling to use a timer

This leads to cleaner code in usb-hid, and removes up to a 1000 calls / sec to
qemu_get_clock_ns(vm_clock) if idle-time is set to its default value of 0.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

6735d433 01/07/2013 01:57 pm Hans de Goede

usb: Fix usb_ep_find_packet_by_id

usb_ep_find_packet_by_id mistakenly only checks the first packet and if that
is not a match, keeps trying the first packet! This patch fixes this.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

f79738b0 01/07/2013 01:57 pm Hans de Goede

usb: Add an usb_device_ep_stopped USBDevice method

Some usb devices (host or network redirection) can benefit from knowing when
the guest stops using an endpoint. Redirection may involve submitting packets
independently from the guest (in combination with a fifo buffer between the...

f8c126f3 01/07/2013 01:57 pm Hans de Goede

usbredir: Add an usbredir_stop_ep helper function

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

7e9638d3 01/07/2013 01:57 pm Hans de Goede

usbredir: Add USBEP2I and I2USBEP helper macros

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

d8553dd0 01/07/2013 01:57 pm Hans de Goede

usbredir: Add ep_stopped USBDevice method

To ensure that interrupt receiving is properly stopped when the guest is
no longer interested in an interrupt endpoint.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

d3aea641 01/07/2013 01:57 pm Hans de Goede

usbredir: Verify we have 32 bits bulk length cap when redirecting to xhci

The xhci-hcd may submit bulk transfers > 65535 bytes even when not using
bulk-in pipeling, so usbredir can only be used in combination with an xhci
hcd if the client has the 32 bits bulk length capability....

bd019b73 01/07/2013 01:57 pm Hans de Goede

usbredir: Add usbredir_init_endpoints() helper

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

e97f0aca 01/07/2013 01:57 pm Hans de Goede

usb-redir: Add debugging to bufpq save / restore

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

a820b575 01/07/2013 01:57 pm Gerd Hoffmann

xhci: call set-address with dummy usbpacket

Due to the way devices are addressed with xhci (done by hardware, not
the guest os) there is no packet when invoking the set-address control
request. Create a dummy packet in that case to avoid null pointer
dereferences....

5aa3ca9f 01/07/2013 01:57 pm Andreas Färber

usb/ehci: Clean up SysBus and PCI EHCI split

SysBus EHCI was introduced in a hurry before 1.3 Soft Freeze.
To use QOM casts in place of DO_UPCAST() / FROM_SYSBUS(), we need an
identifying type. Introduce generic abstract base types for PCI and
SysBus EHCI to allow multiple types to access the shared fields....

4a434367 01/07/2013 01:57 pm Andreas Färber

usb/ehci: Move capsbase and opregbase into SysBus EHCI class

This allows specific derived models to use different values.

Signed-off-by: Andreas Färber <>
Signed-off-by: Gerd Hoffmann <>

aee7499a 01/07/2013 01:57 pm Andreas Färber

usb/ehci: Add SysBus EHCI device for Exynos4210

It uses a different capsbase and opregbase than the Xilinx device.

Signed-off-by: Liming Wang <>
Signed-off-by: Andreas Färber <>
Cc: Igor Mitsyanko <>...

f881c8d3 01/07/2013 01:57 pm Hans de Goede

ehci: Add a ehci_writeback_async_complete_packet helper function

Also drop the warning printf, which was there mainly because this was an
untested code path (as the previous bug fixes to it show), but that no
longer is the case now :)

Signed-off-by: Hans de Goede <>...

c6432634 01/07/2013 01:57 pm Hans de Goede

ehci: Add ehci_verify_qh and ehci_verify_qtd helper functions

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

d066c57b 01/07/2013 01:57 pm Hans de Goede

ehci: Verify guest does not change the token of inflight qtd-s

This is not allowed, except for clearing active on cancellation, so don't
warn when the new token does not have its active bit set.

This unifies the cancellation path for modified qtd-s, and prepares...

190d8492 01/07/2013 01:57 pm Hans de Goede

ehci: Move get / put_dwords upwards

No other changes.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

2b3de6ad 01/07/2013 01:57 pm Hans de Goede

ehci: writeback_async_complete_packet: verify qh and qtd

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

e3fdfd48 01/07/2013 01:57 pm Hans de Goede

ehci: Verify qtd for async completed packets

Remove the short-circuiting of fetchqtd in fetchqh, so that the
qtd gets properly verified before completing the transaction.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

51e0c5d0 01/07/2013 01:57 pm Hans de Goede

ehci: Add an ehci_get_pid helper function

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

bbbc39cc 01/07/2013 01:57 pm Hans de Goede

ehci: Verify a queue's ep direction does not change

ehci_fill_queue assumes that there is a one on one relationship between an ep
and a qh, this patch adds a check to ensure this.

Note I don't expect this to ever trigger, this is just something I noticed...

9359a58b 01/07/2013 01:57 pm Hans de Goede

ehci: Use uframe precision for interrupt threshold checking (v2)

Before this patch, the following could happen:
1) Transfer completes, raises interrupt
2) .5 ms later we check if the guest has queued up any new transfers
3) We find and execute a new transfer...

52c15e59 01/07/2013 01:57 pm Hans de Goede

ehci: Further speedup rescanning if async schedule after raising an interrupt

I tried lowering the time between raising an interrupt and rescanning the
async schedule to see if the guest has queued a new transfer before, but
that did not have any positive effect. I now believe the cause for this is...

4a9ef2c0 01/07/2013 01:57 pm Hans de Goede

ehci: Don't call commit_irq after raising PCD

ehci_raise_irq(s, USBSTS_PCD), gets applied immediately so there is no need
to call commit_irq after it.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

62054c06 12/28/2012 06:09 pm Alon Levy

usb/redirect.c: unbreak compilation due to include/char/char.h

Broken since:

commit 927d4878b0ff319ed87fed9363f314613b0a5ed9
Author: Paolo Bonzini <>
Date: Mon Dec 17 18:20:05 2012 +0100

softmmu: move remaining include files to include/ subdirectories...
927d4878 12/19/2012 09:32 am Paolo Bonzini

softmmu: move remaining include files to include/ subdirectories

Signed-off-by: Paolo Bonzini <>

9c17d615 12/19/2012 09:32 am Paolo Bonzini

softmmu: move include files to include/sysemu/

Signed-off-by: Paolo Bonzini <>

1de7afc9 12/19/2012 09:32 am Paolo Bonzini

misc: move include files to include/qemu/

Signed-off-by: Paolo Bonzini <>

83c9089e 12/19/2012 09:31 am Paolo Bonzini

monitor: move include files to include/monitor/

Signed-off-by: Paolo Bonzini <>

cb9c377f 12/19/2012 09:31 am Paolo Bonzini

janitor: add guards to headers

Signed-off-by: Paolo Bonzini <>

022c62cb 12/19/2012 09:31 am Paolo Bonzini

exec: move include files to include/exec/

Signed-off-by: Paolo Bonzini <>

28ecbaee 12/19/2012 09:31 am Paolo Bonzini

ui: move files to ui/ and include/ui/

Signed-off-by: Paolo Bonzini <>

1422e32d 12/19/2012 09:31 am Paolo Bonzini

net: reorganize headers

Move public headers to include/net, and leave private headers in net/.
Put the virtio headers in include/net/tap.h, removing the multiple copies
that existed. Leave include/net/tap.h as the interface for NICs, and
net/tap_int.h as the interface for OS-specific parts of the tap backend....

090f7ac5 12/19/2012 09:29 am Paolo Bonzini

net: move Bluetooth stuff out of net.h

Signed-off-by: Paolo Bonzini <>

077805fa 12/19/2012 09:29 am Paolo Bonzini

janitor: do not rely on indirect inclusions of or from qemu-char.h

Various header files rely on qemu-char.h including qemu-config.h or
main-loop.h, but they really do not need qemu-char.h at all (particularly
interesting is the case of the block layer!). Clean this up, and also...

a2cb15b0 12/17/2012 01:02 pm Michael S. Tsirkin

pci: update all users to look in pci/

update all users so we can remove the makefile hack.

Signed-off-by: Michael S. Tsirkin <>

427e3aa1 12/04/2012 03:42 pm Hans de Goede

usb-tablet: Allow connecting to ehci

Our ehci code has is capable of significantly lowering the wakeup rate
for the hcd emulation while the device is idle. It is possible to add
similar code ot the uhci emulation, but that simply is not there atm,
and there is no reason why a (virtual) usb-tablet can not be a USB-2 device....

8beba930 12/04/2012 03:41 pm Hans de Goede

usb: Call wakeup when data becomes available for all devices with int eps

This is necessary for proper interaction with the xhci controller, and it
will allow other hcds to lower there frame timer while waiting for interrupt
data.

Signed-off-by: Hans de Goede <>...

be41efde 12/04/2012 03:41 pm Hans de Goede

usb: Don't allow USB_RET_ASYNC for interrupt packets

It is tempting to use USB_RET_ASYNC for interrupt packets, rather then the
current NAK + polling approach, but this causes issues for migration, as
an async completed packet will not getting written back to guest memory until...

386ab487 12/04/2012 03:41 pm Hans de Goede

usb: Allow overriding of usb_desc at the device level

This allows devices to present a different set of descriptors based on
device properties.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

80826240 12/04/2012 03:41 pm Hans de Goede

ehci: Lower timer freq when the periodic schedule is idle

Lower the timer freq if no iso schedule packets complete for 64 frames in
a row.

We can safely do this, without adding latency, because:
1) If there is isoc traffic this will never trigger
2) For async handled interrupt packets (only usb-host), the completion handler...

6c2d1c32 11/29/2012 09:04 am Gerd Hoffmann

usb: tag usb host adapters as not hotpluggable.

Hotplugging them simply doesn't work, so tag them accordingly to
avoid users trying and then crashing qemu.

For xhci there is nothing fundamental which prevents hotplug from
working, we'll "only" need a exit() function which cleans up...

c128d6a6 11/29/2012 09:04 am Stefan Hajnoczi

usb: fail usbdevice_create() when there is no USB bus

Report an error instead of segfaulting when attaching a USB device to a
machine with no USB busses:

$ qemu-system-arm -machine vexpress-a9 \
-sd Fedora-17-armhfp-vexpress-mmcblk0.img \
-kernel vmlinuz-3.4.2-3.fc17.armv7hl \...
2b29f492 11/29/2012 09:04 am Peter Crosthwaite

ehci-sysbus: Attach DMA context.

This was left as NULL on the initial merge due to debate on the mailing list on
how to handle DMA contexts for sysbus devices. Patch
9e11908f12f92e31ea94dc2a4c962c836cba9f2a was later merged to fix OHCI. This is the,
equivalent fix for sysbus EHCI....

88793816 11/21/2012 03:55 pm Hans de Goede

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,...

1cbdde90 11/21/2012 03:55 pm Hans de Goede

uhci: Don't allow the guest to set port-enabled when there is no dev connected

It is possible for device disconnect and the guest trying to reset the port
(because of USB xact errors prior to the disconnect getting signaled) to race,
when we hit this race, the guest will write the port-control register with its...

71d2c9cf 11/21/2012 03:55 pm Hans de Goede

uhci: Fix double unlink

uhci_async_cancel() already does a uhci_async_unlink().

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

33c1a685 11/21/2012 03:55 pm Hans de Goede

usb-bt: Return NAK instead of STALL when interrupt ep has no data

I noticed this while making all devices with interrupt endpoints properly
do wakeup. While at it also add wakeup support.

Note that I've not tested this, but returning STALL for an interrupt ep...

c4020746 11/21/2012 03:55 pm Hans de Goede

usb-smartcard-reader: Properly NAK interrupt eps when we've no events

When we've no data to return from the interrupt endpoint, return NAK rather
then a 0 length packet.

CC: Alon Levy <>
Signed-off-by: Hans de Goede <>...

234e810c 11/21/2012 03:55 pm Hans de Goede

usb-redir: Split usb_handle_interrupt_data into separate in/out functions

No functional changes.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

723aedd5 11/21/2012 03:55 pm Hans de Goede

usb-redir: Don't handle interrupt output packets async

Instead report them as successfully completed directly on submission, this
has 2 advantages:

1) This matches the timing of interrupt output packets on real hardware,
with the previous async handling, if an ep has an interval of say 500 ms,...

537e8f1a 11/16/2012 12:27 pm Jan Kiszka

usb: host-linux: Ignore parsing errors of the device descriptors

The Linux is more tolerant here as well: Just stop parsing the device
descriptors when an error is detected but do not reset what was found
so far. This allows to run buggy devices with partially invalid...

30d68cf6 11/16/2012 12:27 pm Hans de Goede

ehci: Don't access packet after freeing it

ehci_state_writeback() will free the packet, so we should not access
the packet after calling ehci_state_writeback().

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

ff80ce59 11/16/2012 12:27 pm Hans de Goede

ehci: Fixup q->qtdaddr after cancelling an already completed packet

This avoids the q->qtdaddr == p->qtdaddr asserts we have triggering, when
a queue contains multiple completed packages when we cancel the queue.

I triggered this with windows7 + async interrupt endpoint handling (*)...

601a2347 11/16/2012 12:27 pm Hans de Goede

ehci: Better detection for qtd-s linked in circles

Windows links interrupt qtd-s in circles, which means that when interrupt
endpoints return USB_RET_ASYNC, combined with the recent
"ehci: Retry to fill the queue while waiting for td completion" patch,
we keep adding the tds to the queue over and over again, as we detect the...

2c7b15c1 11/16/2012 12:27 pm Hans de Goede

ehci: Don't verify the next pointer for periodic qh-s and qtd-s

While testing the move to async packet handling for interrupt endpoints I
noticed that Windows-XP likes to play tricks with the next pointer for
periodic qh-s, so we should not fail qh / qtd verification when it changes....

40862309 11/16/2012 12:27 pm Gerd Hoffmann

ehci: keep the frame timer running in case the guest asked for frame list rollover interrupts

Signed-off-by: Gerd Hoffmann <>

55903f1d 11/16/2012 12:27 pm Gerd Hoffmann

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...

2cb343b4 11/16/2012 12:27 pm Hans de Goede

usb-redir: Only add actually in flight packets to the in flight queue

Packets which are queued up, but not yet handed over to the device, are
not in flight.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

618fbc95 11/16/2012 12:27 pm Hans de Goede

usb-redir: Set default debug level to warning

The previous default of 0 means that even errors and warnings would not
get printed, which is really not a good default.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

8c908fca 11/16/2012 12:27 pm Gerd Hoffmann

usb-host: update tracing

Now that we have separate status and length fields in USBPacket
update the completion tracepoint to log both.

Signed-off-by: Gerd Hoffmann <>

71e0aa39 11/16/2012 12:27 pm Gerd Hoffmann

usb-host: fix splitted transfers

USBPacket->actual_length wasn't updated correctly for USBPackets
splitted into multiple urbs. Fix it.

Signed-off-by: Gerd Hoffmann <>

155de06f 11/16/2012 12:27 pm David Gibson

usb: Fix (another) bug in usb_packet_map() for IOMMU handling

Elements in qemu SGLists can cross IOMMU page boundaries. So, in commit
39c138c8420f51a7da7b35233a8d7400a0b589ac "usb: Fix usb_packet_map() in the
presence of IOMMUs", I changed usb_packet_map() to split up each SGList...

c06c68c9 11/16/2012 12:27 pm Gerd Hoffmann

usb-host: scan for usb devices when the vm starts

Commit a844ed842d9a9d929645c09ae0f52f753d7a02e0 leads to usb-host
detecting devices not right after qemu startup because the guest
isn't running yet. Instead they are found on the first of the
regular usb device poll runs. Which is too late for seabios to see...

5f580e94 11/14/2012 04:50 pm Anthony Liguori

Merge remote-tracking branch 'bonzini/scsi-next' into staging

  • bonzini/scsi-next:
    virtio-scsi: use dma_context_memory
    dma: Define dma_context_memory and use in sysbus-ohci
    megasas: Correct target/lun mapping
    scsi-disk: flush cache after disabling it...
9e11908f 11/12/2012 05:44 pm Peter Maydell

dma: Define dma_context_memory and use in sysbus-ohci

Define a new global dma_context_memory which is a DMAContext corresponding
to the global address_space_memory AddressSpace. This can be used by
sysbus peripherals like sysbus-ohci which need to do DMA....

9d153047 11/09/2012 10:09 am Gerd Hoffmann

ehci: fix migration

Commit 5010d4dc618b6b8e7c21129c487c06f6493f71fc reorganized vmstate to
split core + pci, but got two little details wrong. Fix them.

Signed-off-by: Gerd Hoffmann <>

616b5d53 11/09/2012 09:27 am David Gibson

xhci: Fix some DMA host endian bugs

The xhci device does correct endian switches on the results of some DMAs
but not all. In particular, there are many DMAs of what are essentially
arrays of 32-bit integers which never get byteswapped. This causes them...

e696b1da 11/08/2012 07:41 pm Hans de Goede

ehci: Add support for packets with both data and an error status

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

9b8251c5 11/08/2012 07:41 pm Hans de Goede

xhci: Add support for packets with both data and an error status

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

ffd8a97f 11/08/2012 07:41 pm Hans de Goede

usb/combined-packet: Move freeing of combined to usb_combined_packet_remove()

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

9a77a0f5 11/08/2012 07:41 pm Hans de Goede

usb: split packet result into actual_length + status

Since with the ehci and xhci controllers a single packet can be larger
then maxpacketsize, it is possible for the result of a single packet
to be both having transferred some data as well as the transfer to have...

e94ca437 11/08/2012 07:41 pm Hans de Goede

usb-redir: Allow packets to have both data and an error-status

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

01e26b0e 11/08/2012 07:41 pm Hans de Goede

ehci: Get rid of the magical PROC_ERR status

Instead make ehci_execute and ehci_fill_queue return the again value.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

7e03d178 11/01/2012 04:21 pm Hans de Goede

usb-redir: Add an usbredir_setup_usb_eps() helper function

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

24ac283a 11/01/2012 04:21 pm Hans de Goede

usb-redir: Use reject rather the disconnect on bad ep info

So that the client gets a notification about us disconnecting the device.

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

cdfd3530 11/01/2012 04:21 pm Jan Kiszka

usb-redir: Allow to attach USB 2.0 devices to 1.1 host controller

This follows the logic of host-linux: If a 2.0 device has no ISO
endpoint and no interrupt endpoint with a packet size > 64, we can
attach it also to an 1.1 host controller. In case the redir server does...

95a59dc0 11/01/2012 04:21 pm Hans de Goede

usb-redir: Allow redirecting super speed devices to high speed controllers

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

1b36c4d8 11/01/2012 04:20 pm Hans de Goede

usb-redir: Add support for input pipelining

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

ba07630c 11/01/2012 04:17 pm Gerd Hoffmann

usb/ehci-pci: add ich9 00:1a.* variant

Signed-off-by: Gerd Hoffmann <>

bb4d2b2f 11/01/2012 04:17 pm Gerd Hoffmann

usb/ehci-pci: add helper to create ich9 usb controllers

Signed-off-by: Gerd Hoffmann <>

faccca00 11/01/2012 04:17 pm Hans de Goede

uhci: Add a uhci_handle_td_error() helper function

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

7f102ebe 11/01/2012 04:17 pm Hans de Goede

uhci: Don't crash on device disconnect

My recent uhci cleanup series has introduced a regression, where
qemu sometimes crashes on a device disconnect. The problem is that
the uhci code never checked for a device not / no longer existing, instead
it was relying on usb_handle_packet accepting a NULL device....

a552a966 11/01/2012 04:17 pm Hans de Goede

usb: Add packet combining functions

Currently we only do pipelining for output endpoints, since to properly
support short-not-ok semantics we can only have one outstanding input
packet. Since the ehci and uhci controllers have a limited per td packet
size guests will split large input transfers to into multiple packets,...

579967be 11/01/2012 04:17 pm Hans de Goede

combined-packet: Add a workaround for Linux usbfs + live migration

Older versions (anything but the latest) of Linux usbfs + libusb(x),
will submit larger (bulk) transfers split into multiple 16k submissions,
which means that rather then all tds getting linked into the queue in...

c19a7981 11/01/2012 04:17 pm Hans de Goede

usb-redir: Add support for 32 bits bulk packet length

Signed-off-by: Hans de Goede <>
Signed-off-by: Gerd Hoffmann <>

2c2e8525 11/01/2012 04:17 pm Gerd Hoffmann

uhci: dynamic type generation

Signed-off-by: Gerd Hoffmann <>

8f3f90b0 11/01/2012 04:17 pm Gerd Hoffmann

uhci: stick irq routing info into UHCIInfo too.

Kills the ugly "switch (device_id) { ... }" struct and makes it easier
to figure what the differences between the uhci variants are.

Need our own DeviceClass struct for that so we can allocate some space
to store UHCIInfo....

74625ea2 11/01/2012 04:17 pm Gerd Hoffmann

uhci: add ich9 00:1a.* variants

Signed-off-by: Gerd Hoffmann <>

df013187 11/01/2012 04:17 pm Gerd Hoffmann

usb/ehci-pci: dynamic type generation

Signed-off-by: Gerd Hoffmann <>

e433785a 11/01/2012 02:10 pm Gerd Hoffmann

usb/ehci: add sysbus variant

Signed-off-by: Gerd Hoffmann <>