summaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc3/core.h
diff options
context:
space:
mode:
authorPratyush Anand <pratyush.anand@st.com>2012-05-25 18:54:56 +0530
committerFelipe Balbi <balbi@ti.com>2012-06-04 18:23:04 +0300
commitd6d6ec7b8854ab62f7f3907656d5d29eb47532e7 (patch)
treeb2efe8b1eb005a331747277053267c2714f94969 /drivers/usb/dwc3/core.h
parentd05b81824e672a48b3566634622849866de2b787 (diff)
downloadlinux-stable-d6d6ec7b8854ab62f7f3907656d5d29eb47532e7.tar.gz
linux-stable-d6d6ec7b8854ab62f7f3907656d5d29eb47532e7.tar.bz2
linux-stable-d6d6ec7b8854ab62f7f3907656d5d29eb47532e7.zip
usb: dwc3: Fix missed isoc IN transaction
If an IN transfer is missed on isoc endpoint, then driver must insure that next ep_queue is properly handled. This patch fixes this issue by starting a new transfer for next queued request. Signed-off-by: Pratyush Anand <pratyush.anand@st.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/dwc3/core.h')
-rw-r--r--drivers/usb/dwc3/core.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index e402022b9e15..fcb8be2ec1c9 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -405,6 +405,7 @@ struct dwc3_event_buffer {
* @number: endpoint number (1 - 15)
* @type: set to bmAttributes & USB_ENDPOINT_XFERTYPE_MASK
* @res_trans_idx: Resource transfer index
+ * @current_uf: Current uf received through last event parameter
* @interval: the intervall on which the ISOC transfer is started
* @name: a human readable name e.g. ep1out-bulk
* @direction: true for TX, false for RX
@@ -428,6 +429,7 @@ struct dwc3_ep {
#define DWC3_EP_WEDGE (1 << 2)
#define DWC3_EP_BUSY (1 << 4)
#define DWC3_EP_PENDING_REQUEST (1 << 5)
+#define DWC3_EP_MISSED_ISOC (1 << 6)
/* This last one is specific to EP0 */
#define DWC3_EP0_DIR_IN (1 << 31)
@@ -437,6 +439,7 @@ struct dwc3_ep {
u8 number;
u8 type;
u8 res_trans_idx;
+ u16 current_uf;
u32 interval;
char name[20];