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

Commit 53fd8818 authored by Felipe Balbi's avatar Felipe Balbi
Browse files

usb: dwc3: gadget: rename busy/free_slot to trb_enqueue/dequeue



This makes it clear that we're dealing with a queue
of TRBs. No functional changes. While at that, also
rename start_slot to first_trb_index for similar
reasons.

Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 495dd5f7
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -449,8 +449,8 @@ struct dwc3_event_buffer {
 * @started_list: list of started requests on this endpoint
 * @trb_pool: array of transaction buffers
 * @trb_pool_dma: dma address of @trb_pool
 * @free_slot: next slot which is going to be used
 * @busy_slot: first slot which is owned by HW
 * @trb_enqueue: enqueue 'pointer' into TRB array
 * @trb_dequeue: dequeue 'pointer' into TRB array
 * @desc: usb_endpoint_descriptor pointer
 * @dwc: pointer to DWC controller
 * @saved_state: ep state saved during hibernation
@@ -470,8 +470,8 @@ struct dwc3_ep {

	struct dwc3_trb		*trb_pool;
	dma_addr_t		trb_pool_dma;
	u32			free_slot;
	u32			busy_slot;
	u32			trb_enqueue;
	u32			trb_dequeue;
	const struct usb_ss_ep_comp_descriptor *comp_desc;
	struct dwc3		*dwc;

@@ -628,7 +628,7 @@ struct dwc3_request {
	struct usb_request	request;
	struct list_head	list;
	struct dwc3_ep		*dep;
	u32			start_slot;
	u32			first_trb_index;

	u8			epnum;
	struct dwc3_trb		*trb;
+3 −3
Original line number Diff line number Diff line
@@ -70,10 +70,10 @@ static int dwc3_ep0_start_trans(struct dwc3 *dwc, u8 epnum, dma_addr_t buf_dma,
		return 0;
	}

	trb = &dwc->ep0_trb[dep->free_slot];
	trb = &dwc->ep0_trb[dep->trb_enqueue];

	if (chain)
		dep->free_slot++;
		dep->trb_enqueue++;

	trb->bpl = lower_32_bits(buf_dma);
	trb->bph = upper_32_bits(buf_dma);
@@ -845,7 +845,7 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc,
			trb++;
			length = trb->size & DWC3_TRB_SIZE_MASK;

			ep0->free_slot = 0;
			ep0->trb_enqueue = 0;
		}

		transfer_size = roundup((ur->length - transfer_size),
+15 −15
Original line number Diff line number Diff line
@@ -154,16 +154,16 @@ void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req,
	if (req->started) {
		i = 0;
		do {
			dep->busy_slot++;
			dep->trb_dequeue++;
			/*
			 * Skip LINK TRB. We can't use req->trb and check for
			 * DWC3_TRBCTL_LINK_TRB because it points the TRB we
			 * just completed (not the LINK TRB).
			 */
			if (((dep->busy_slot & DWC3_TRB_MASK) ==
			if (((dep->trb_dequeue & DWC3_TRB_MASK) ==
				DWC3_TRB_NUM- 1) &&
				usb_endpoint_xfer_isoc(dep->endpoint.desc))
				dep->busy_slot++;
				dep->trb_dequeue++;
		} while(++i < req->request.num_mapped_sgs);
		req->started = false;
	}
@@ -741,20 +741,20 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
			chain ? " chain" : "");


	trb = &dep->trb_pool[dep->free_slot & DWC3_TRB_MASK];
	trb = &dep->trb_pool[dep->trb_enqueue & DWC3_TRB_MASK];

	if (!req->trb) {
		dwc3_gadget_move_started_request(req);
		req->trb = trb;
		req->trb_dma = dwc3_trb_dma_offset(dep, trb);
		req->start_slot = dep->free_slot & DWC3_TRB_MASK;
		req->first_trb_index = dep->trb_enqueue & DWC3_TRB_MASK;
	}

	dep->free_slot++;
	dep->trb_enqueue++;
	/* Skip the LINK-TRB on ISOC */
	if (((dep->free_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) &&
	if (((dep->trb_enqueue & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) &&
			usb_endpoint_xfer_isoc(dep->endpoint.desc))
		dep->free_slot++;
		dep->trb_enqueue++;

	trb->size = DWC3_TRB_SIZE_LENGTH(length);
	trb->bpl = lower_32_bits(dma);
@@ -826,11 +826,11 @@ static void dwc3_prepare_trbs(struct dwc3_ep *dep, bool starting)
	BUILD_BUG_ON_NOT_POWER_OF_2(DWC3_TRB_NUM);

	/* the first request must not be queued */
	trbs_left = (dep->busy_slot - dep->free_slot) & DWC3_TRB_MASK;
	trbs_left = (dep->trb_dequeue - dep->trb_enqueue) & DWC3_TRB_MASK;

	/* Can't wrap around on a non-isoc EP since there's no link TRB */
	if (!usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
		max = DWC3_TRB_NUM - (dep->free_slot & DWC3_TRB_MASK);
		max = DWC3_TRB_NUM - (dep->trb_enqueue & DWC3_TRB_MASK);
		if (trbs_left > max)
			trbs_left = max;
	}
@@ -856,11 +856,11 @@ static void dwc3_prepare_trbs(struct dwc3_ep *dep, bool starting)
		 * don't wrap around we have to start at the beginning.
		 */
		if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
			dep->busy_slot = 1;
			dep->free_slot = 1;
			dep->trb_dequeue = 1;
			dep->trb_enqueue = 1;
		} else {
			dep->busy_slot = 0;
			dep->free_slot = 0;
			dep->trb_dequeue = 0;
			dep->trb_enqueue = 0;
		}
	}

@@ -1931,7 +1931,7 @@ static int dwc3_cleanup_done_reqs(struct dwc3 *dwc, struct dwc3_ep *dep,

		i = 0;
		do {
			slot = req->start_slot + i;
			slot = req->first_trb_index + i;
			if ((slot == DWC3_TRB_NUM - 1) &&
				usb_endpoint_xfer_isoc(dep->endpoint.desc))
				slot++;