提交 fe52f792 编写于 作者: M Michal Nazarewicz 提交者: Greg Kroah-Hartman

USB: gadget: f_mass_storage: drop START_TRANSFER() macro

This commit drops START_TRANSFER_OR() and START_TRANSFER()
macros with a pair of nice inline functions which are actually
more readable and easier to use.
Signed-off-by: NMichal Nazarewicz <mina86@mina86.com>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 1ccd7923
...@@ -692,16 +692,23 @@ static void start_transfer(struct fsg_dev *fsg, struct usb_ep *ep, ...@@ -692,16 +692,23 @@ static void start_transfer(struct fsg_dev *fsg, struct usb_ep *ep,
} }
} }
#define START_TRANSFER_OR(common, ep_name, req, pbusy, state) \ static bool start_in_transfer(struct fsg_common *common, struct fsg_buffhd *bh)
if (fsg_is_set(common)) \ {
start_transfer((common)->fsg, (common)->fsg->ep_name, \ if (!fsg_is_set(common))
req, pbusy, state); \ return false;
else start_transfer(common->fsg, common->fsg->bulk_in,
bh->inreq, &bh->inreq_busy, &bh->state);
#define START_TRANSFER(common, ep_name, req, pbusy, state) \ return true;
START_TRANSFER_OR(common, ep_name, req, pbusy, state) (void)0 }
static bool start_out_transfer(struct fsg_common *common, struct fsg_buffhd *bh)
{
if (!fsg_is_set(common))
return false;
start_transfer(common->fsg, common->fsg->bulk_out,
bh->outreq, &bh->outreq_busy, &bh->state);
return true;
}
static int sleep_thread(struct fsg_common *common) static int sleep_thread(struct fsg_common *common)
{ {
...@@ -842,10 +849,8 @@ static int do_read(struct fsg_common *common) ...@@ -842,10 +849,8 @@ static int do_read(struct fsg_common *common)
/* Send this buffer and go read some more */ /* Send this buffer and go read some more */
bh->inreq->zero = 0; bh->inreq->zero = 0;
START_TRANSFER_OR(common, bulk_in, bh->inreq, if (!start_in_transfer(common, bh))
&bh->inreq_busy, &bh->state) /* Don't know what to do if common->fsg is NULL */
/* Don't know what to do if
* common->fsg is NULL */
return -EIO; return -EIO;
common->next_buffhd_to_fill = bh->next; common->next_buffhd_to_fill = bh->next;
} }
...@@ -961,8 +966,7 @@ static int do_write(struct fsg_common *common) ...@@ -961,8 +966,7 @@ static int do_write(struct fsg_common *common)
bh->outreq->length = amount; bh->outreq->length = amount;
bh->bulk_out_intended_length = amount; bh->bulk_out_intended_length = amount;
bh->outreq->short_not_ok = 1; bh->outreq->short_not_ok = 1;
START_TRANSFER_OR(common, bulk_out, bh->outreq, if (!start_out_transfer(common, bh))
&bh->outreq_busy, &bh->state)
/* Don't know what to do if /* Don't know what to do if
* common->fsg is NULL */ * common->fsg is NULL */
return -EIO; return -EIO;
...@@ -1636,8 +1640,7 @@ static int throw_away_data(struct fsg_common *common) ...@@ -1636,8 +1640,7 @@ static int throw_away_data(struct fsg_common *common)
bh->outreq->length = amount; bh->outreq->length = amount;
bh->bulk_out_intended_length = amount; bh->bulk_out_intended_length = amount;
bh->outreq->short_not_ok = 1; bh->outreq->short_not_ok = 1;
START_TRANSFER_OR(common, bulk_out, bh->outreq, if (!start_out_transfer(common, bh))
&bh->outreq_busy, &bh->state)
/* Don't know what to do if /* Don't know what to do if
* common->fsg is NULL */ * common->fsg is NULL */
return -EIO; return -EIO;
...@@ -1688,8 +1691,7 @@ static int finish_reply(struct fsg_common *common) ...@@ -1688,8 +1691,7 @@ static int finish_reply(struct fsg_common *common)
/* If there's no residue, simply send the last buffer */ /* If there's no residue, simply send the last buffer */
} else if (common->residue == 0) { } else if (common->residue == 0) {
bh->inreq->zero = 0; bh->inreq->zero = 0;
START_TRANSFER_OR(common, bulk_in, bh->inreq, if (!start_in_transfer(common, bh))
&bh->inreq_busy, &bh->state)
return -EIO; return -EIO;
common->next_buffhd_to_fill = bh->next; common->next_buffhd_to_fill = bh->next;
...@@ -1698,8 +1700,7 @@ static int finish_reply(struct fsg_common *common) ...@@ -1698,8 +1700,7 @@ static int finish_reply(struct fsg_common *common)
* stall, pad out the remaining data with 0's. */ * stall, pad out the remaining data with 0's. */
} else if (common->can_stall) { } else if (common->can_stall) {
bh->inreq->zero = 1; bh->inreq->zero = 1;
START_TRANSFER_OR(common, bulk_in, bh->inreq, if (!start_in_transfer(common, bh))
&bh->inreq_busy, &bh->state)
/* Don't know what to do if /* Don't know what to do if
* common->fsg is NULL */ * common->fsg is NULL */
rc = -EIO; rc = -EIO;
...@@ -1798,8 +1799,7 @@ static int send_status(struct fsg_common *common) ...@@ -1798,8 +1799,7 @@ static int send_status(struct fsg_common *common)
bh->inreq->length = USB_BULK_CS_WRAP_LEN; bh->inreq->length = USB_BULK_CS_WRAP_LEN;
bh->inreq->zero = 0; bh->inreq->zero = 0;
START_TRANSFER_OR(common, bulk_in, bh->inreq, if (!start_in_transfer(common, bh))
&bh->inreq_busy, &bh->state)
/* Don't know what to do if common->fsg is NULL */ /* Don't know what to do if common->fsg is NULL */
return -EIO; return -EIO;
...@@ -2287,8 +2287,7 @@ static int get_next_command(struct fsg_common *common) ...@@ -2287,8 +2287,7 @@ static int get_next_command(struct fsg_common *common)
/* Queue a request to read a Bulk-only CBW */ /* Queue a request to read a Bulk-only CBW */
set_bulk_out_req_length(common, bh, USB_BULK_CB_WRAP_LEN); set_bulk_out_req_length(common, bh, USB_BULK_CB_WRAP_LEN);
bh->outreq->short_not_ok = 1; bh->outreq->short_not_ok = 1;
START_TRANSFER_OR(common, bulk_out, bh->outreq, if (!start_out_transfer(common, bh))
&bh->outreq_busy, &bh->state)
/* Don't know what to do if common->fsg is NULL */ /* Don't know what to do if common->fsg is NULL */
return -EIO; return -EIO;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册