Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc9ef588 authored by Alexey Khoroshilov's avatar Alexey Khoroshilov Committed by Felipe Balbi
Browse files

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: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: default avatarFelipe Balbi <felipe.balbi@linux.intel.com>
parent 6ffd6515
Loading
Loading
Loading
Loading
+15 −13
Original line number Diff line number Diff line
@@ -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);
	/* build trbs */
	ret = mv_u3d_req_to_trb(req);
	if (ret) {
			ep->processing = 0;
			return ret;
		}
	} else {
		ep->processing = 0;
		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);

	return 0;

break_processing:
	ep->processing = 0;
	return ret;
}

static int mv_u3d_ep_enable(struct usb_ep *_ep,