summaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc3/core.h
diff options
context:
space:
mode:
authorFelipe Balbi <felipe.balbi@linux.intel.com>2016-04-13 16:44:39 +0300
committerFelipe Balbi <felipe.balbi@linux.intel.com>2016-06-20 12:32:38 +0300
commit74674cbf858ff6a83c3f06f4ab0ffa5d3c91bf0b (patch)
treec07584f7e1c2155dc253ba148a9045c83669ca31 /drivers/usb/dwc3/core.h
parente9af9229098d92145d0b894b78878bbc6ac7c910 (diff)
downloadlinux-74674cbf858ff6a83c3f06f4ab0ffa5d3c91bf0b.tar.bz2
usb: dwc3: gadget: add a per-endpoint request queue lock
This will allow us to process several endpoints at a time by making sure that we lock only shared resources. Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Diffstat (limited to 'drivers/usb/dwc3/core.h')
-rw-r--r--drivers/usb/dwc3/core.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 94b9fd2d583e..484bb5d8261c 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -482,6 +482,7 @@ struct dwc3_event_buffer {
* @endpoint: usb endpoint
* @pending_list: list of pending requests for this endpoint
* @started_list: list of started requests on this endpoint
+ * @lock: spinlock for endpoint request queue traversal
* @regs: pointer to first endpoint register
* @trb_pool: array of transaction buffers
* @trb_pool_dma: dma address of @trb_pool
@@ -504,6 +505,7 @@ struct dwc3_ep {
struct list_head pending_list;
struct list_head started_list;
+ spinlock_t lock;
void __iomem *regs;
struct dwc3_trb *trb_pool;