qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 08/21] usb-host: add property to turn off pipelining


From: Gerd Hoffmann
Subject: [Qemu-devel] [PATCH 08/21] usb-host: add property to turn off pipelining
Date: Tue, 17 Apr 2012 10:45:13 +0200

Add a property to usb-host to disable the bulk endpoint pipelining.

Signed-off-by: Gerd Hoffmann <address@hidden>
---
 hw/usb/host-linux.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/hw/usb/host-linux.c b/hw/usb/host-linux.c
index 8084fd9..a382f0a 100644
--- a/hw/usb/host-linux.c
+++ b/hw/usb/host-linux.c
@@ -94,6 +94,10 @@ struct USBAutoFilter {
     uint32_t product_id;
 };
 
+enum USBHostDeviceOptions {
+    USB_HOST_OPT_PIPELINE,
+};
+
 typedef struct USBHostDevice {
     USBDevice dev;
     int       fd;
@@ -104,6 +108,7 @@ typedef struct USBHostDevice {
     int       descr_len;
     int       closing;
     uint32_t  iso_urb_count;
+    uint32_t  options;
     Notifier  exit;
 
     struct endp_data ep_in[USB_MAX_ENDPOINTS];
@@ -1203,7 +1208,8 @@ static int usb_linux_update_endp_table(USBHostDevice *s)
                    USB_ENDPOINT_XFER_INVALID);
             usb_ep_set_type(&s->dev, pid, ep, type);
             usb_ep_set_ifnum(&s->dev, pid, ep, interface);
-            if (type == USB_ENDPOINT_XFER_BULK) {
+            if ((s->options & (1 << USB_HOST_OPT_PIPELINE)) &&
+                (type == USB_ENDPOINT_XFER_BULK)) {
                 usb_ep_set_pipeline(&s->dev, pid, ep, true);
             }
 
@@ -1431,6 +1437,8 @@ static Property usb_host_dev_properties[] = {
     DEFINE_PROP_HEX32("productid", USBHostDevice, match.product_id, 0),
     DEFINE_PROP_UINT32("isobufs",  USBHostDevice, iso_urb_count,    4),
     DEFINE_PROP_INT32("bootindex", USBHostDevice, bootindex,        -1),
+    DEFINE_PROP_BIT("pipeline",    USBHostDevice, options,
+                    USB_HOST_OPT_PIPELINE, true),
     DEFINE_PROP_END_OF_LIST(),
 };
 
-- 
1.7.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]