Commit 368ca113 authored by Kishon Vijay Abraham I's avatar Kishon Vijay Abraham I Committed by Felipe Balbi

usb: dwc3; ep0: Modify _dwc3_ep0_start_trans_ API to take 'chain' parameter

No functional change. Added a new parameter in _dwc3_ep0_start_trans_ to
indicate whether the TRB is a chained TRB or last TRB. This is in
preparation for adding chained TRB support for ep0.
Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 8a344220
...@@ -56,7 +56,7 @@ static const char *dwc3_ep0_state_string(enum dwc3_ep0_state state) ...@@ -56,7 +56,7 @@ static const char *dwc3_ep0_state_string(enum dwc3_ep0_state state)
} }
static int dwc3_ep0_start_trans(struct dwc3 *dwc, u8 epnum, dma_addr_t buf_dma, static int dwc3_ep0_start_trans(struct dwc3 *dwc, u8 epnum, dma_addr_t buf_dma,
u32 len, u32 type) u32 len, u32 type, bool chain)
{ {
struct dwc3_gadget_ep_cmd_params params; struct dwc3_gadget_ep_cmd_params params;
struct dwc3_trb *trb; struct dwc3_trb *trb;
...@@ -302,7 +302,7 @@ void dwc3_ep0_out_start(struct dwc3 *dwc) ...@@ -302,7 +302,7 @@ void dwc3_ep0_out_start(struct dwc3 *dwc)
int ret; int ret;
ret = dwc3_ep0_start_trans(dwc, 0, dwc->ctrl_req_addr, 8, ret = dwc3_ep0_start_trans(dwc, 0, dwc->ctrl_req_addr, 8,
DWC3_TRBCTL_CONTROL_SETUP); DWC3_TRBCTL_CONTROL_SETUP, false);
WARN_ON(ret < 0); WARN_ON(ret < 0);
} }
...@@ -855,7 +855,7 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc, ...@@ -855,7 +855,7 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc,
ret = dwc3_ep0_start_trans(dwc, epnum, ret = dwc3_ep0_start_trans(dwc, epnum,
dwc->ctrl_req_addr, 0, dwc->ctrl_req_addr, 0,
DWC3_TRBCTL_CONTROL_DATA); DWC3_TRBCTL_CONTROL_DATA, false);
WARN_ON(ret < 0); WARN_ON(ret < 0);
} }
} }
...@@ -939,7 +939,7 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc, ...@@ -939,7 +939,7 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
if (req->request.length == 0) { if (req->request.length == 0) {
ret = dwc3_ep0_start_trans(dwc, dep->number, ret = dwc3_ep0_start_trans(dwc, dep->number,
dwc->ctrl_req_addr, 0, dwc->ctrl_req_addr, 0,
DWC3_TRBCTL_CONTROL_DATA); DWC3_TRBCTL_CONTROL_DATA, false);
} else if (!IS_ALIGNED(req->request.length, dep->endpoint.maxpacket) } else if (!IS_ALIGNED(req->request.length, dep->endpoint.maxpacket)
&& (dep->number == 0)) { && (dep->number == 0)) {
u32 transfer_size = 0; u32 transfer_size = 0;
...@@ -970,7 +970,7 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc, ...@@ -970,7 +970,7 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
*/ */
ret = dwc3_ep0_start_trans(dwc, dep->number, ret = dwc3_ep0_start_trans(dwc, dep->number,
dwc->ep0_bounce_addr, transfer_size, dwc->ep0_bounce_addr, transfer_size,
DWC3_TRBCTL_CONTROL_DATA); DWC3_TRBCTL_CONTROL_DATA, false);
} else { } else {
ret = usb_gadget_map_request(&dwc->gadget, &req->request, ret = usb_gadget_map_request(&dwc->gadget, &req->request,
dep->number); dep->number);
...@@ -980,7 +980,8 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc, ...@@ -980,7 +980,8 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
} }
ret = dwc3_ep0_start_trans(dwc, dep->number, req->request.dma, ret = dwc3_ep0_start_trans(dwc, dep->number, req->request.dma,
req->request.length, DWC3_TRBCTL_CONTROL_DATA); req->request.length, DWC3_TRBCTL_CONTROL_DATA,
false);
} }
WARN_ON(ret < 0); WARN_ON(ret < 0);
...@@ -995,7 +996,7 @@ static int dwc3_ep0_start_control_status(struct dwc3_ep *dep) ...@@ -995,7 +996,7 @@ static int dwc3_ep0_start_control_status(struct dwc3_ep *dep)
: DWC3_TRBCTL_CONTROL_STATUS2; : DWC3_TRBCTL_CONTROL_STATUS2;
return dwc3_ep0_start_trans(dwc, dep->number, return dwc3_ep0_start_trans(dwc, dep->number,
dwc->ctrl_req_addr, 0, type); dwc->ctrl_req_addr, 0, type, false);
} }
static void __dwc3_ep0_do_control_status(struct dwc3 *dwc, struct dwc3_ep *dep) static void __dwc3_ep0_do_control_status(struct dwc3 *dwc, struct dwc3_ep *dep)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment