aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIdo Shayevitz <idos@codeaurora.org>2012-03-12 14:25:32 -0400
committerFelipe Balbi <balbi@ti.com>2012-05-04 08:52:56 -0400
commita1976f750bafb85a0ae69860178b99d1f364a479 (patch)
tree22d34864233a0931060a0f7591205088eaabefc3
parentdb79d9811b077fc9c215d33a57bbb11cecc59fe3 (diff)
usb: gadget: Update langwell_udc to use usb_endpoint_descriptor inside the struct usb_ep
Remove redundant pointer to struct usb_endpoint_descriptor. Signed-off-by: Ido Shayevitz <idos@codeaurora.org> Signed-off-by: Felipe Balbi <balbi@ti.com>
-rw-r--r--drivers/usb/gadget/langwell_udc.c35
-rw-r--r--drivers/usb/gadget/langwell_udc.h1
2 files changed, 17 insertions, 19 deletions
diff --git a/drivers/usb/gadget/langwell_udc.c b/drivers/usb/gadget/langwell_udc.c
index 130811258d22..e119519cdaf4 100644
--- a/drivers/usb/gadget/langwell_udc.c
+++ b/drivers/usb/gadget/langwell_udc.c
@@ -154,7 +154,7 @@ static inline void print_all_registers(struct langwell_udc *dev)
154/*-------------------------------------------------------------------------*/ 154/*-------------------------------------------------------------------------*/
155 155
156#define is_in(ep) (((ep)->ep_num == 0) ? ((ep)->dev->ep0_dir == \ 156#define is_in(ep) (((ep)->ep_num == 0) ? ((ep)->dev->ep0_dir == \
157 USB_DIR_IN) : (usb_endpoint_dir_in((ep)->desc))) 157 USB_DIR_IN) : (usb_endpoint_dir_in((ep)->ep.desc)))
158 158
159#define DIR_STRING(ep) (is_in(ep) ? "in" : "out") 159#define DIR_STRING(ep) (is_in(ep) ? "in" : "out")
160 160
@@ -257,7 +257,7 @@ static int langwell_ep_enable(struct usb_ep *_ep,
257 dev = ep->dev; 257 dev = ep->dev;
258 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__); 258 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__);
259 259
260 if (!_ep || !desc || ep->desc 260 if (!_ep || !desc || ep->ep.desc
261 || desc->bDescriptorType != USB_DT_ENDPOINT) 261 || desc->bDescriptorType != USB_DT_ENDPOINT)
262 return -EINVAL; 262 return -EINVAL;
263 263
@@ -337,7 +337,7 @@ static int langwell_ep_enable(struct usb_ep *_ep,
337 spin_lock_irqsave(&dev->lock, flags); 337 spin_lock_irqsave(&dev->lock, flags);
338 338
339 ep->ep.maxpacket = max; 339 ep->ep.maxpacket = max;
340 ep->desc = desc; 340 ep->ep.desc = desc;
341 ep->stopped = 0; 341 ep->stopped = 0;
342 ep->ep_num = usb_endpoint_num(desc); 342 ep->ep_num = usb_endpoint_num(desc);
343 343
@@ -432,7 +432,7 @@ static void nuke(struct langwell_ep *ep, int status)
432 ep->stopped = 1; 432 ep->stopped = 1;
433 433
434 /* endpoint fifo flush */ 434 /* endpoint fifo flush */
435 if (&ep->ep && ep->desc) 435 if (&ep->ep && ep->ep.desc)
436 langwell_ep_fifo_flush(&ep->ep); 436 langwell_ep_fifo_flush(&ep->ep);
437 437
438 while (!list_empty(&ep->queue)) { 438 while (!list_empty(&ep->queue)) {
@@ -459,7 +459,7 @@ static int langwell_ep_disable(struct usb_ep *_ep)
459 dev = ep->dev; 459 dev = ep->dev;
460 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__); 460 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__);
461 461
462 if (!_ep || !ep->desc) 462 if (!_ep || !ep->ep.desc)
463 return -EINVAL; 463 return -EINVAL;
464 464
465 spin_lock_irqsave(&dev->lock, flags); 465 spin_lock_irqsave(&dev->lock, flags);
@@ -476,7 +476,6 @@ static int langwell_ep_disable(struct usb_ep *_ep)
476 /* nuke all pending requests (does flush) */ 476 /* nuke all pending requests (does flush) */
477 nuke(ep, -ESHUTDOWN); 477 nuke(ep, -ESHUTDOWN);
478 478
479 ep->desc = NULL;
480 ep->ep.desc = NULL; 479 ep->ep.desc = NULL;
481 ep->stopped = 1; 480 ep->stopped = 1;
482 481
@@ -752,14 +751,14 @@ static int langwell_ep_queue(struct usb_ep *_ep, struct usb_request *_req,
752 return -EINVAL; 751 return -EINVAL;
753 } 752 }
754 753
755 if (unlikely(!_ep || !ep->desc)) 754 if (unlikely(!_ep || !ep->ep.desc))
756 return -EINVAL; 755 return -EINVAL;
757 756
758 dev = ep->dev; 757 dev = ep->dev;
759 req->ep = ep; 758 req->ep = ep;
760 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__); 759 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__);
761 760
762 if (usb_endpoint_xfer_isoc(ep->desc)) { 761 if (usb_endpoint_xfer_isoc(ep->ep.desc)) {
763 if (req->req.length > ep->ep.maxpacket) 762 if (req->req.length > ep->ep.maxpacket)
764 return -EMSGSIZE; 763 return -EMSGSIZE;
765 is_iso = 1; 764 is_iso = 1;
@@ -822,7 +821,7 @@ static int langwell_ep_dequeue(struct usb_ep *_ep, struct usb_request *_req)
822 dev = ep->dev; 821 dev = ep->dev;
823 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__); 822 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__);
824 823
825 if (!_ep || !ep->desc || !_req) 824 if (!_ep || !ep->ep.desc || !_req)
826 return -EINVAL; 825 return -EINVAL;
827 826
828 if (!dev->driver) 827 if (!dev->driver)
@@ -950,13 +949,13 @@ static int langwell_ep_set_halt(struct usb_ep *_ep, int value)
950 949
951 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__); 950 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__);
952 951
953 if (!_ep || !ep->desc) 952 if (!_ep || !ep->ep.desc)
954 return -EINVAL; 953 return -EINVAL;
955 954
956 if (!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN) 955 if (!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN)
957 return -ESHUTDOWN; 956 return -ESHUTDOWN;
958 957
959 if (usb_endpoint_xfer_isoc(ep->desc)) 958 if (usb_endpoint_xfer_isoc(ep->ep.desc))
960 return -EOPNOTSUPP; 959 return -EOPNOTSUPP;
961 960
962 spin_lock_irqsave(&dev->lock, flags); 961 spin_lock_irqsave(&dev->lock, flags);
@@ -999,7 +998,7 @@ static int langwell_ep_set_wedge(struct usb_ep *_ep)
999 998
1000 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__); 999 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__);
1001 1000
1002 if (!_ep || !ep->desc) 1001 if (!_ep || !ep->ep.desc)
1003 return -EINVAL; 1002 return -EINVAL;
1004 1003
1005 dev_vdbg(&dev->pdev->dev, "<--- %s()\n", __func__); 1004 dev_vdbg(&dev->pdev->dev, "<--- %s()\n", __func__);
@@ -1020,8 +1019,8 @@ static void langwell_ep_fifo_flush(struct usb_ep *_ep)
1020 1019
1021 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__); 1020 dev_vdbg(&dev->pdev->dev, "---> %s()\n", __func__);
1022 1021
1023 if (!_ep || !ep->desc) { 1022 if (!_ep || !ep->ep.desc) {
1024 dev_vdbg(&dev->pdev->dev, "ep or ep->desc is NULL\n"); 1023 dev_vdbg(&dev->pdev->dev, "ep or ep->ep.desc is NULL\n");
1025 dev_vdbg(&dev->pdev->dev, "<--- %s()\n", __func__); 1024 dev_vdbg(&dev->pdev->dev, "<--- %s()\n", __func__);
1026 return; 1025 return;
1027 } 1026 }
@@ -1402,7 +1401,7 @@ static int eps_reinit(struct langwell_udc *dev)
1402 ep->stopped = 0; 1401 ep->stopped = 0;
1403 ep->ep.maxpacket = EP0_MAX_PKT_SIZE; 1402 ep->ep.maxpacket = EP0_MAX_PKT_SIZE;
1404 ep->ep_num = 0; 1403 ep->ep_num = 0;
1405 ep->desc = &langwell_ep0_desc; 1404 ep->ep.desc = &langwell_ep0_desc;
1406 INIT_LIST_HEAD(&ep->queue); 1405 INIT_LIST_HEAD(&ep->queue);
1407 1406
1408 ep->ep_type = USB_ENDPOINT_XFER_CONTROL; 1407 ep->ep_type = USB_ENDPOINT_XFER_CONTROL;
@@ -1737,7 +1736,7 @@ static ssize_t show_langwell_udc(struct device *_dev,
1737 } 1736 }
1738 /* other gadget->eplist ep */ 1737 /* other gadget->eplist ep */
1739 list_for_each_entry(ep, &dev->gadget.ep_list, ep.ep_list) { 1738 list_for_each_entry(ep, &dev->gadget.ep_list, ep.ep_list) {
1740 if (ep->desc) { 1739 if (ep->ep.desc) {
1741 t = scnprintf(next, size, 1740 t = scnprintf(next, size,
1742 "\n%s MaxPacketSize: 0x%x, " 1741 "\n%s MaxPacketSize: 0x%x, "
1743 "ep_num: %d\n", 1742 "ep_num: %d\n",
@@ -2046,10 +2045,10 @@ static struct langwell_ep *get_ep_by_windex(struct langwell_udc *dev,
2046 2045
2047 list_for_each_entry(ep, &dev->gadget.ep_list, ep.ep_list) { 2046 list_for_each_entry(ep, &dev->gadget.ep_list, ep.ep_list) {
2048 u8 bEndpointAddress; 2047 u8 bEndpointAddress;
2049 if (!ep->desc) 2048 if (!ep->ep.desc)
2050 continue; 2049 continue;
2051 2050
2052 bEndpointAddress = ep->desc->bEndpointAddress; 2051 bEndpointAddress = ep->ep.desc->bEndpointAddress;
2053 if ((wIndex ^ bEndpointAddress) & USB_DIR_IN) 2052 if ((wIndex ^ bEndpointAddress) & USB_DIR_IN)
2054 continue; 2053 continue;
2055 2054
diff --git a/drivers/usb/gadget/langwell_udc.h b/drivers/usb/gadget/langwell_udc.h
index 8c8087abb481..38fa3c86d85c 100644
--- a/drivers/usb/gadget/langwell_udc.h
+++ b/drivers/usb/gadget/langwell_udc.h
@@ -116,7 +116,6 @@ struct langwell_ep {
116 unsigned long irqs; 116 unsigned long irqs;
117 struct list_head queue; 117 struct list_head queue;
118 struct langwell_dqh *dqh; 118 struct langwell_dqh *dqh;
119 const struct usb_endpoint_descriptor *desc;
120 char name[14]; 119 char name[14];
121 unsigned stopped:1, 120 unsigned stopped:1,
122 ep_type:2, 121 ep_type:2,