mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 00:24:12 +08:00
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: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
8a34422056
commit
368ca113ca
@ -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,
|
||||
u32 len, u32 type)
|
||||
u32 len, u32 type, bool chain)
|
||||
{
|
||||
struct dwc3_gadget_ep_cmd_params params;
|
||||
struct dwc3_trb *trb;
|
||||
@ -302,7 +302,7 @@ void dwc3_ep0_out_start(struct dwc3 *dwc)
|
||||
int ret;
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -855,7 +855,7 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc,
|
||||
|
||||
ret = dwc3_ep0_start_trans(dwc, epnum,
|
||||
dwc->ctrl_req_addr, 0,
|
||||
DWC3_TRBCTL_CONTROL_DATA);
|
||||
DWC3_TRBCTL_CONTROL_DATA, false);
|
||||
WARN_ON(ret < 0);
|
||||
}
|
||||
}
|
||||
@ -939,7 +939,7 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
|
||||
if (req->request.length == 0) {
|
||||
ret = dwc3_ep0_start_trans(dwc, dep->number,
|
||||
dwc->ctrl_req_addr, 0,
|
||||
DWC3_TRBCTL_CONTROL_DATA);
|
||||
DWC3_TRBCTL_CONTROL_DATA, false);
|
||||
} else if (!IS_ALIGNED(req->request.length, dep->endpoint.maxpacket)
|
||||
&& (dep->number == 0)) {
|
||||
u32 transfer_size = 0;
|
||||
@ -970,7 +970,7 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc,
|
||||
*/
|
||||
ret = dwc3_ep0_start_trans(dwc, dep->number,
|
||||
dwc->ep0_bounce_addr, transfer_size,
|
||||
DWC3_TRBCTL_CONTROL_DATA);
|
||||
DWC3_TRBCTL_CONTROL_DATA, false);
|
||||
} else {
|
||||
ret = usb_gadget_map_request(&dwc->gadget, &req->request,
|
||||
dep->number);
|
||||
@ -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,
|
||||
req->request.length, DWC3_TRBCTL_CONTROL_DATA);
|
||||
req->request.length, DWC3_TRBCTL_CONTROL_DATA,
|
||||
false);
|
||||
}
|
||||
|
||||
WARN_ON(ret < 0);
|
||||
@ -995,7 +996,7 @@ static int dwc3_ep0_start_control_status(struct dwc3_ep *dep)
|
||||
: DWC3_TRBCTL_CONTROL_STATUS2;
|
||||
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user