The code for retrieving qTD item for particular endpoint is hard
to understand, moreover it's duplicated all over the driver. Move
the code into single nice and documented function.

Signed-off-by: Marek Vasut <ma...@denx.de>
Cc: Fabio Estevam <fabio.este...@freescale.com>
Cc: Lei Wen <lei...@marvell.com>
Cc: Otavio Salvador <ota...@ossystems.com.br>
Cc: Stefano Babic <sba...@denx.de>
---
 drivers/usb/gadget/mv_udc.c |   17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/gadget/mv_udc.c b/drivers/usb/gadget/mv_udc.c
index 55dd5df..364c8ed 100644
--- a/drivers/usb/gadget/mv_udc.c
+++ b/drivers/usb/gadget/mv_udc.c
@@ -139,6 +139,19 @@ static struct ept_queue_head *mv_get_qh(int ep_num, int 
dir_in)
        return &controller.epts[(ep_num * 2) + dir_in];
 }
 
+/**
+ * mv_get_qtd() - return queue item for endpoint
+ * @ep_num:    Endpoint number
+ * @dir_in:    Direction of the endpoint (IN = 1, OUT = 0)
+ *
+ * This function returns the QH associated with particular endpoint
+ * and it's direction.
+ */
+static struct ept_queue_item *mv_get_qtd(int ep_num, int dir_in)
+{
+       return controller.items[(ep_num * 2) + dir_in];
+}
+
 static struct usb_request *
 mv_ep_alloc_request(struct usb_ep *ep, unsigned int gfp_flags)
 {
@@ -197,7 +210,7 @@ static int mv_ep_queue(struct usb_ep *ep,
        int bit, num, len, in;
        num = mv_ep->desc->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK;
        in = (mv_ep->desc->bEndpointAddress & USB_DIR_IN) != 0;
-       item = controller.items[2 * num + in];
+       item = mv_get_qtd(num, in);
        head = mv_get_qh(num, in);
        phys = (unsigned)req->buf;
        len = req->length;
@@ -233,7 +246,7 @@ static void handle_ep_complete(struct mv_ep *ep)
        in = (ep->desc->bEndpointAddress & USB_DIR_IN) != 0;
        if (num == 0)
                ep->desc = &ep0_out_desc;
-       item = controller.items[2 * num + in];
+       item = mv_get_qtd(num, in);
 
        if (item->info & 0xff)
                printf("EP%d/%s FAIL nfo=%x pg0=%x\n",
-- 
1.7.10.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to