[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/9] usb: Add max_streams attribute to endpoint info
From: |
Hans de Goede |
Subject: |
[Qemu-devel] [PATCH 1/9] usb: Add max_streams attribute to endpoint info |
Date: |
Tue, 19 Nov 2013 14:36:56 +0100 |
Signed-off-by: Hans de Goede <address@hidden>
---
hw/usb/core.c | 22 ++++++++++++++++++++++
hw/usb/desc.c | 2 ++
include/hw/usb.h | 3 +++
3 files changed, 27 insertions(+)
diff --git a/hw/usb/core.c b/hw/usb/core.c
index cf59a1a..67ba7d6 100644
--- a/hw/usb/core.c
+++ b/hw/usb/core.c
@@ -623,6 +623,7 @@ void usb_ep_reset(USBDevice *dev)
dev->ep_ctl.type = USB_ENDPOINT_XFER_CONTROL;
dev->ep_ctl.ifnum = 0;
dev->ep_ctl.max_packet_size = 64;
+ dev->ep_ctl.max_streams = 0;
dev->ep_ctl.dev = dev;
dev->ep_ctl.pipeline = false;
for (ep = 0; ep < USB_MAX_ENDPOINTS; ep++) {
@@ -636,6 +637,8 @@ void usb_ep_reset(USBDevice *dev)
dev->ep_out[ep].ifnum = USB_INTERFACE_INVALID;
dev->ep_in[ep].max_packet_size = 0;
dev->ep_out[ep].max_packet_size = 0;
+ dev->ep_in[ep].max_streams = 0;
+ dev->ep_out[ep].max_streams = 0;
dev->ep_in[ep].dev = dev;
dev->ep_out[ep].dev = dev;
dev->ep_in[ep].pipeline = false;
@@ -764,6 +767,25 @@ int usb_ep_get_max_packet_size(USBDevice *dev, int pid,
int ep)
return uep->max_packet_size;
}
+void usb_ep_set_max_streams(USBDevice *dev, int pid, int ep, uint8_t raw)
+{
+ struct USBEndpoint *uep = usb_ep_get(dev, pid, ep);
+ int MaxStreams;
+
+ MaxStreams = raw & 0x1f;
+ if (MaxStreams) {
+ uep->max_streams = 1 << MaxStreams;
+ } else {
+ uep->max_streams = 0;
+ }
+}
+
+int usb_ep_get_max_streams(USBDevice *dev, int pid, int ep)
+{
+ struct USBEndpoint *uep = usb_ep_get(dev, pid, ep);
+ return uep->max_streams;
+}
+
void usb_ep_set_pipeline(USBDevice *dev, int pid, int ep, bool enabled)
{
struct USBEndpoint *uep = usb_ep_get(dev, pid, ep);
diff --git a/hw/usb/desc.c b/hw/usb/desc.c
index bf6c522..5dbe754 100644
--- a/hw/usb/desc.c
+++ b/hw/usb/desc.c
@@ -385,6 +385,8 @@ static void usb_desc_ep_init(USBDevice *dev)
usb_ep_set_ifnum(dev, pid, ep, iface->bInterfaceNumber);
usb_ep_set_max_packet_size(dev, pid, ep,
iface->eps[e].wMaxPacketSize);
+ usb_ep_set_max_streams(dev, pid, ep,
+ iface->eps[e].bmAttributes_super);
}
}
}
diff --git a/include/hw/usb.h b/include/hw/usb.h
index a7680d4..e9d96ba 100644
--- a/include/hw/usb.h
+++ b/include/hw/usb.h
@@ -189,6 +189,7 @@ struct USBEndpoint {
uint8_t type;
uint8_t ifnum;
int max_packet_size;
+ int max_streams;
bool pipeline;
bool halted;
USBDevice *dev;
@@ -421,6 +422,8 @@ void usb_ep_set_ifnum(USBDevice *dev, int pid, int ep,
uint8_t ifnum);
void usb_ep_set_max_packet_size(USBDevice *dev, int pid, int ep,
uint16_t raw);
int usb_ep_get_max_packet_size(USBDevice *dev, int pid, int ep);
+void usb_ep_set_max_streams(USBDevice *dev, int pid, int ep, uint8_t raw);
+int usb_ep_get_max_streams(USBDevice *dev, int pid, int ep);
void usb_ep_set_pipeline(USBDevice *dev, int pid, int ep, bool enabled);
void usb_ep_set_halted(USBDevice *dev, int pid, int ep, bool halted);
USBPacket *usb_ep_find_packet_by_id(USBDevice *dev, int pid, int ep,
--
1.8.4.2
- [Qemu-devel] [PATCH 0/9] usb: redirection streams support + small fixes, Hans de Goede, 2013/11/19
- [Qemu-devel] [PATCH 1/9] usb: Add max_streams attribute to endpoint info,
Hans de Goede <=
- [Qemu-devel] [PATCH 2/9] usb: Add usb_device_alloc/free_streams, Hans de Goede, 2013/11/19
- [Qemu-devel] [PATCH 4/9] xhci: Add a few missing checks for disconnected devices, Hans de Goede, 2013/11/19
- [Qemu-devel] [PATCH 3/9] xhci: Call usb_device_alloc/free_streams, Hans de Goede, 2013/11/19
- [Qemu-devel] [PATCH 5/9] usb-host-libusb: Fill in endpoint max_streams when available, Hans de Goede, 2013/11/19
- [Qemu-devel] [PATCH 6/9] usb-host-libusb: Add alloc / free streams ops, Hans de Goede, 2013/11/19
- [Qemu-devel] [PATCH 7/9] usb-host-libusb: Set stream id when submitting bulk-stream transfers, Hans de Goede, 2013/11/19
- [Qemu-devel] [PATCH 9/9] uas: s/ui/iu/, Hans de Goede, 2013/11/19
- [Qemu-devel] [PATCH 8/9] usb-redir: Add support for bulk streams, Hans de Goede, 2013/11/19
- Re: [Qemu-devel] [PATCH 0/9] usb: redirection streams support + small fixes, Gerd Hoffmann, 2013/11/20
- Re: [Qemu-devel] [PATCH 0/9] usb: redirection streams support + small fixes, Gerd Hoffmann, 2013/11/21