]> git.proxmox.com Git - mirror_qemu.git/commit
usb-host: support devices with sparse/non-sequential USB interfaces
authorSamuel Brian <sam.brian@accelerated.com>
Tue, 13 Jun 2017 23:40:39 +0000 (09:40 +1000)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 21 Jun 2017 13:30:08 +0000 (15:30 +0200)
commit896b6757f9c4d176ce4439238efea223a2952411
tree4e7cb0489bbd3debb212e2f24ae46fb292701282
parent8dfaf23ae1f2273a9730a9b309cc8471269bb524
usb-host: support devices with sparse/non-sequential USB interfaces

Some USB devices have sparse interface numbering which is not able to be
passthroughed.
For example, the Sierra Wireless MC7455/MC7430:

  # lsusb  -D /dev/bus/usb/003/003 | egrep '1199|9071|bNumInterfaces|bInterfaceNumber'
  Device: ID 1199:9071 Sierra Wireless, Inc.
    idVendor           0x1199 Sierra Wireless, Inc.
    idProduct          0x9071
      bNumInterfaces          5
        bInterfaceNumber        0
        bInterfaceNumber        2
        bInterfaceNumber        3
        bInterfaceNumber        8
        bInterfaceNumber       10

In this case, the interface numbers are 0, 2, 3, 8, 10 and not the
0, 1, 2, 3, 4 that QEMU tries to claim.

This change allows sparse USB interface numbering.
Instead of only claiming the interfaces in the range reported by the USB
device through bNumInterfaces, QEMU attempts to claim all possible
interfaces.

v2 to fix broken v1 patch formatting.
v3 to fix indentation.

Signed-off-by: Samuel Brian <sam.brian@accelerated.com>
Message-id: 20170613234039.27201-1-sam.brian@accelerated.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/host-libusb.c