Commit 27b31b91 authored by Thinh Nguyen's avatar Thinh Nguyen Committed by Felipe Balbi

usb: gadget: f_tcm: Inform last stream request

Set the request->is_last to each stream request to indicate that the
request is the last stream request of a transfer. The DWC3 controller
needs to know this info to properly switch streams. The current
implementation of f_tcm uses a single request per transfer, so every
stream request is the last of its stream.
Signed-off-by: default avatarThinh Nguyen <thinhn@synopsys.com>
Signed-off-by: default avatarFelipe Balbi <balbi@kernel.org>
parent 5469fd64
...@@ -531,6 +531,7 @@ static int uasp_prepare_r_request(struct usbg_cmd *cmd) ...@@ -531,6 +531,7 @@ static int uasp_prepare_r_request(struct usbg_cmd *cmd)
stream->req_in->sg = se_cmd->t_data_sg; stream->req_in->sg = se_cmd->t_data_sg;
} }
stream->req_in->is_last = 1;
stream->req_in->complete = uasp_status_data_cmpl; stream->req_in->complete = uasp_status_data_cmpl;
stream->req_in->length = se_cmd->data_length; stream->req_in->length = se_cmd->data_length;
stream->req_in->context = cmd; stream->req_in->context = cmd;
...@@ -554,6 +555,7 @@ static void uasp_prepare_status(struct usbg_cmd *cmd) ...@@ -554,6 +555,7 @@ static void uasp_prepare_status(struct usbg_cmd *cmd)
*/ */
iu->len = cpu_to_be16(se_cmd->scsi_sense_length); iu->len = cpu_to_be16(se_cmd->scsi_sense_length);
iu->status = se_cmd->scsi_status; iu->status = se_cmd->scsi_status;
stream->req_status->is_last = 1;
stream->req_status->context = cmd; stream->req_status->context = cmd;
stream->req_status->length = se_cmd->scsi_sense_length + 16; stream->req_status->length = se_cmd->scsi_sense_length + 16;
stream->req_status->buf = iu; stream->req_status->buf = iu;
...@@ -991,6 +993,7 @@ static int usbg_prepare_w_request(struct usbg_cmd *cmd, struct usb_request *req) ...@@ -991,6 +993,7 @@ static int usbg_prepare_w_request(struct usbg_cmd *cmd, struct usb_request *req)
req->sg = se_cmd->t_data_sg; req->sg = se_cmd->t_data_sg;
} }
req->is_last = 1;
req->complete = usbg_data_write_cmpl; req->complete = usbg_data_write_cmpl;
req->length = se_cmd->data_length; req->length = se_cmd->data_length;
req->context = cmd; req->context = cmd;
......
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