[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 09/18] usb-linux: add hostport property
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 09/18] usb-linux: add hostport property |
Date: |
Mon, 23 May 2011 11:43:30 +0200 |
This patch adds a hostport property which allows to specify the host usb
devices to pass through by bus number and physical port. This means you
can basically hand over one (or more) of the usb plugs on your host to
the guest and whatever device is plugged in there will show up in the
guest.
Usage:
-device usb-host,hostbus=1,hostport=1
You can figure the port numbers by plugging in some usb device, then
find it in "info usbhost" and pick bus and port specified there.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
usb-linux.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/usb-linux.c b/usb-linux.c
index 2c6e249..55d914d 100644
--- a/usb-linux.c
+++ b/usb-linux.c
@@ -104,6 +104,7 @@ struct endp_data {
struct USBAutoFilter {
uint32_t bus_num;
uint32_t addr;
+ char *port;
uint32_t vendor_id;
uint32_t product_id;
};
@@ -1162,6 +1163,7 @@ static struct USBDeviceInfo usb_host_dev_info = {
.qdev.props = (Property[]) {
DEFINE_PROP_UINT32("hostbus", USBHostDevice, match.bus_num, 0),
DEFINE_PROP_UINT32("hostaddr", USBHostDevice, match.addr, 0),
+ DEFINE_PROP_STRING("hostport", USBHostDevice, match.port),
DEFINE_PROP_HEX32("vendorid", USBHostDevice, match.vendor_id, 0),
DEFINE_PROP_HEX32("productid", USBHostDevice, match.product_id, 0),
DEFINE_PROP_END_OF_LIST(),
@@ -1580,6 +1582,9 @@ static int usb_host_auto_scan(void *opaque, int bus_num,
int addr, char *port,
if (f->addr > 0 && f->addr != addr) {
continue;
}
+ if (f->port != NULL && (port == NULL || strcmp(f->port, port) != 0)) {
+ continue;
+ }
if (f->vendor_id > 0 && f->vendor_id != vendor_id) {
continue;
@@ -1805,7 +1810,7 @@ void usb_host_info(Monitor *mon)
dec2str(f->addr, addr, sizeof(addr));
hex2str(f->vendor_id, vid, sizeof(vid));
hex2str(f->product_id, pid, sizeof(pid));
- monitor_printf(mon, " Device %s.%s ID %s:%s\n",
- bus, addr, vid, pid);
+ monitor_printf(mon, " Bus %s, Addr %s, Port %s, ID %s:%s\n",
+ bus, addr, f->port ? f->port : "*", vid, pid);
}
}
--
1.7.1
- [Qemu-devel] [PULL] usb patch queue: initial usb 2.0 support., Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 05/18] Bug #757654: UHCI fails to signal stall response patch, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 11/18] usb-linux: walk async urb list in cancel, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 10/18] usb-linux: track aurbs in list, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 13/18] usb-linux: fix max_packet_size for highspeed., Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 09/18] usb-linux: add hostport property,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH 02/18] usb: update config descriptors to identify number of interfaces, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 06/18] usb: Pass the packet to the device's handle_control callback, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 14/18] usb-storage: don't call usb_packet_complete twice, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 01/18] usb: Add Interface Association Descriptor descriptor type, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 03/18] usb: remove fallback to bNumInterfaces if no .nif, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 07/18] usb-linux: use usb_generic_handle_packet(), Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 08/18] usb-linux: fix device path aka physical port handling, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 15/18] usb: add usb_handle_packet, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 12/18] usb-linux: split large xfers, Gerd Hoffmann, 2011/05/23
- [Qemu-devel] [PATCH 16/18] usb: keep track of packet owner., Gerd Hoffmann, 2011/05/23