Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74674cbf authored by Felipe Balbi's avatar Felipe Balbi
Browse files

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: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent e9af9229
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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;
+1 −0
Original line number Diff line number Diff line
@@ -1845,6 +1845,7 @@ static int dwc3_gadget_init_hw_endpoints(struct dwc3 *dwc,
				(epnum & 1) ? "in" : "out");

		dep->endpoint.name = dep->name;
		spin_lock_init(&dep->lock);

		dwc3_trace(trace_dwc3_gadget, "initializing %s", dep->name);