mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 09:50:04 +00:00
usb: gadget: mv_u3d: mv_u3d_start_queue() refactoring
The patch improves readability of mv_u3d_start_queue() by rearranging its code with two semantic modifications: - assignment zero to ep->processing if usb_gadget_map_request() fails; - propagation of error code from mv_u3d_req_to_trb() instead of hardcoded -ENOMEM. Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
6ffd65154e
commit
dc9ef58884
1 changed files with 15 additions and 13 deletions
|
@ -493,30 +493,32 @@ mv_u3d_start_queue(struct mv_u3d_ep *ep)
|
|||
ret = usb_gadget_map_request(&u3d->gadget, &req->req,
|
||||
mv_u3d_ep_dir(ep));
|
||||
if (ret)
|
||||
return ret;
|
||||
goto break_processing;
|
||||
|
||||
req->req.status = -EINPROGRESS;
|
||||
req->req.actual = 0;
|
||||
req->trb_count = 0;
|
||||
|
||||
/* build trbs and push them to device queue */
|
||||
if (!mv_u3d_req_to_trb(req)) {
|
||||
ret = mv_u3d_queue_trb(ep, req);
|
||||
if (ret) {
|
||||
ep->processing = 0;
|
||||
return ret;
|
||||
}
|
||||
} else {
|
||||
ep->processing = 0;
|
||||
/* build trbs */
|
||||
ret = mv_u3d_req_to_trb(req);
|
||||
if (ret) {
|
||||
dev_err(u3d->dev, "%s, mv_u3d_req_to_trb fail\n", __func__);
|
||||
return -ENOMEM;
|
||||
goto break_processing;
|
||||
}
|
||||
|
||||
/* and push them to device queue */
|
||||
ret = mv_u3d_queue_trb(ep, req);
|
||||
if (ret)
|
||||
goto break_processing;
|
||||
|
||||
/* irq handler advances the queue */
|
||||
if (req)
|
||||
list_add_tail(&req->queue, &ep->queue);
|
||||
list_add_tail(&req->queue, &ep->queue);
|
||||
|
||||
return 0;
|
||||
|
||||
break_processing:
|
||||
ep->processing = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int mv_u3d_ep_enable(struct usb_ep *_ep,
|
||||
|
|
Loading…
Reference in a new issue