usb: ci_udc: remove controller.items array
authorStephen Warren <swarren@nvidia.com>
Tue, 1 Jul 2014 17:41:17 +0000 (11:41 -0600)
committerMarek Vasut <marex@denx.de>
Wed, 2 Jul 2014 13:45:38 +0000 (15:45 +0200)
There's no need to store an array of QTD pointers in the controller.
Since the calculation is so simple, just have ci_get_qtd() perform it
at run-time, rather than pre-calculating everything.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
drivers/usb/gadget/ci_udc.c
drivers/usb/gadget/ci_udc.h

index abaf8985503f31ec654b35a4a2ff6d48e13c2cad..89138675c32f7c56c330b465f5055de45ce99a99 100644 (file)
@@ -146,7 +146,9 @@ static struct ept_queue_head *ci_get_qh(int ep_num, int dir_in)
  */
 static struct ept_queue_item *ci_get_qtd(int ep_num, int dir_in)
 {
-       return controller.items[(ep_num * 2) + dir_in];
+       int index = (ep_num * 2) + dir_in;
+       uint8_t *imem = controller.items_mem + (index * ILIST_ENT_SZ);
+       return (struct ept_queue_item *)imem;
 }
 
 /**
@@ -790,7 +792,6 @@ static int ci_pullup(struct usb_gadget *gadget, int is_on)
 static int ci_udc_probe(void)
 {
        struct ept_queue_head *head;
-       uint8_t *imem;
        int i;
 
        const int num = 2 * NUM_ENDPOINTS;
@@ -831,9 +832,6 @@ static int ci_udc_probe(void)
                head->next = TERMINATE;
                head->info = 0;
 
-               imem = controller.items_mem + (i * ILIST_ENT_SZ);
-               controller.items[i] = (struct ept_queue_item *)imem;
-
                if (i & 1) {
                        ci_flush_qh(i / 2);
                        ci_flush_qtd(i / 2);
index c2144021e6750c56badd300e31e01814a92e42e8..346164a641329981b6c187dbdf44d609f36208cf 100644 (file)
@@ -102,7 +102,6 @@ struct ci_drv {
        struct usb_gadget_driver        *driver;
        struct ehci_ctrl                *ctrl;
        struct ept_queue_head           *epts;
-       struct ept_queue_item           *items[2 * NUM_ENDPOINTS];
        uint8_t                         *items_mem;
        struct ci_ep                    ep[NUM_ENDPOINTS];
 };