aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIdo Shayevitz <idos@codeaurora.org>2012-03-12 14:25:24 -0400
committerFelipe Balbi <balbi@ti.com>2012-05-04 08:52:52 -0400
commit16e78db720baa9356485336ec137c7ee0a482a9b (patch)
tree31d499e57a036d423ab98432195e1df1da386cac
parent31fb6014165358e71196bd7a9bf236c00e0b2cd8 (diff)
usb: dwc3: Update dwc3 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/dwc3/core.h1
-rw-r--r--drivers/usb/dwc3/ep0.c2
-rw-r--r--drivers/usb/dwc3/gadget.c37
3 files changed, 19 insertions, 21 deletions
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 6c7945b4cad3..9c5c73aae4f4 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -361,7 +361,6 @@ struct dwc3_ep {
361 dma_addr_t trb_pool_dma; 361 dma_addr_t trb_pool_dma;
362 u32 free_slot; 362 u32 free_slot;
363 u32 busy_slot; 363 u32 busy_slot;
364 const struct usb_endpoint_descriptor *desc;
365 const struct usb_ss_ep_comp_descriptor *comp_desc; 364 const struct usb_ss_ep_comp_descriptor *comp_desc;
366 struct dwc3 *dwc; 365 struct dwc3 *dwc;
367 366
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index 3584a169886f..3453ca1f7479 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -179,7 +179,7 @@ int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request,
179 int ret; 179 int ret;
180 180
181 spin_lock_irqsave(&dwc->lock, flags); 181 spin_lock_irqsave(&dwc->lock, flags);
182 if (!dep->desc) { 182 if (!dep->endpoint.desc) {
183 dev_dbg(dwc->dev, "trying to queue request %p to disabled %s\n", 183 dev_dbg(dwc->dev, "trying to queue request %p to disabled %s\n",
184 request, dep->name); 184 request, dep->name);
185 ret = -ESHUTDOWN; 185 ret = -ESHUTDOWN;
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 5255fe975ea1..561625a1284d 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -178,8 +178,8 @@ int dwc3_gadget_resize_tx_fifos(struct dwc3 *dwc)
178 if (!(dep->flags & DWC3_EP_ENABLED)) 178 if (!(dep->flags & DWC3_EP_ENABLED))
179 continue; 179 continue;
180 180
181 if (usb_endpoint_xfer_bulk(dep->desc) 181 if (usb_endpoint_xfer_bulk(dep->endpoint.desc)
182 || usb_endpoint_xfer_isoc(dep->desc)) 182 || usb_endpoint_xfer_isoc(dep->endpoint.desc))
183 mult = 3; 183 mult = 3;
184 184
185 /* 185 /*
@@ -229,7 +229,7 @@ void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req,
229 * completed (not the LINK TRB). 229 * completed (not the LINK TRB).
230 */ 230 */
231 if (((dep->busy_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) && 231 if (((dep->busy_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) &&
232 usb_endpoint_xfer_isoc(dep->desc)) 232 usb_endpoint_xfer_isoc(dep->endpoint.desc))
233 dep->busy_slot++; 233 dep->busy_slot++;
234 } 234 }
235 list_del(&req->list); 235 list_del(&req->list);
@@ -470,7 +470,7 @@ static int __dwc3_gadget_ep_enable(struct dwc3_ep *dep,
470 if (ret) 470 if (ret)
471 return ret; 471 return ret;
472 472
473 dep->desc = desc; 473 dep->endpoint.desc = desc;
474 dep->comp_desc = comp_desc; 474 dep->comp_desc = comp_desc;
475 dep->type = usb_endpoint_type(desc); 475 dep->type = usb_endpoint_type(desc);
476 dep->flags |= DWC3_EP_ENABLED; 476 dep->flags |= DWC3_EP_ENABLED;
@@ -533,7 +533,6 @@ static int __dwc3_gadget_ep_disable(struct dwc3_ep *dep)
533 dwc3_writel(dwc->regs, DWC3_DALEPENA, reg); 533 dwc3_writel(dwc->regs, DWC3_DALEPENA, reg);
534 534
535 dep->stream_capable = false; 535 dep->stream_capable = false;
536 dep->desc = NULL;
537 dep->endpoint.desc = NULL; 536 dep->endpoint.desc = NULL;
538 dep->comp_desc = NULL; 537 dep->comp_desc = NULL;
539 dep->type = 0; 538 dep->type = 0;
@@ -694,7 +693,7 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
694 693
695 /* Skip the LINK-TRB on ISOC */ 694 /* Skip the LINK-TRB on ISOC */
696 if (((cur_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) && 695 if (((cur_slot & DWC3_TRB_MASK) == DWC3_TRB_NUM - 1) &&
697 usb_endpoint_xfer_isoc(dep->desc)) 696 usb_endpoint_xfer_isoc(dep->endpoint.desc))
698 return; 697 return;
699 698
700 if (!req->trb) { 699 if (!req->trb) {
@@ -707,7 +706,7 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
707 trb->bpl = lower_32_bits(dma); 706 trb->bpl = lower_32_bits(dma);
708 trb->bph = upper_32_bits(dma); 707 trb->bph = upper_32_bits(dma);
709 708
710 switch (usb_endpoint_type(dep->desc)) { 709 switch (usb_endpoint_type(dep->endpoint.desc)) {
711 case USB_ENDPOINT_XFER_CONTROL: 710 case USB_ENDPOINT_XFER_CONTROL:
712 trb->ctrl = DWC3_TRBCTL_CONTROL_SETUP; 711 trb->ctrl = DWC3_TRBCTL_CONTROL_SETUP;
713 break; 712 break;
@@ -732,7 +731,7 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
732 BUG(); 731 BUG();
733 } 732 }
734 733
735 if (usb_endpoint_xfer_isoc(dep->desc)) { 734 if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
736 trb->ctrl |= DWC3_TRB_CTRL_ISP_IMI; 735 trb->ctrl |= DWC3_TRB_CTRL_ISP_IMI;
737 trb->ctrl |= DWC3_TRB_CTRL_CSP; 736 trb->ctrl |= DWC3_TRB_CTRL_CSP;
738 } else { 737 } else {
@@ -743,7 +742,7 @@ static void dwc3_prepare_one_trb(struct dwc3_ep *dep,
743 trb->ctrl |= DWC3_TRB_CTRL_LST; 742 trb->ctrl |= DWC3_TRB_CTRL_LST;
744 } 743 }
745 744
746 if (usb_endpoint_xfer_bulk(dep->desc) && dep->stream_capable) 745 if (usb_endpoint_xfer_bulk(dep->endpoint.desc) && dep->stream_capable)
747 trb->ctrl |= DWC3_TRB_CTRL_SID_SOFN(req->request.stream_id); 746 trb->ctrl |= DWC3_TRB_CTRL_SID_SOFN(req->request.stream_id);
748 747
749 trb->ctrl |= DWC3_TRB_CTRL_HWO; 748 trb->ctrl |= DWC3_TRB_CTRL_HWO;
@@ -771,7 +770,7 @@ static void dwc3_prepare_trbs(struct dwc3_ep *dep, bool starting)
771 trbs_left = (dep->busy_slot - dep->free_slot) & DWC3_TRB_MASK; 770 trbs_left = (dep->busy_slot - dep->free_slot) & DWC3_TRB_MASK;
772 771
773 /* Can't wrap around on a non-isoc EP since there's no link TRB */ 772 /* Can't wrap around on a non-isoc EP since there's no link TRB */
774 if (!usb_endpoint_xfer_isoc(dep->desc)) { 773 if (!usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
775 max = DWC3_TRB_NUM - (dep->free_slot & DWC3_TRB_MASK); 774 max = DWC3_TRB_NUM - (dep->free_slot & DWC3_TRB_MASK);
776 if (trbs_left > max) 775 if (trbs_left > max)
777 trbs_left = max; 776 trbs_left = max;
@@ -797,7 +796,7 @@ static void dwc3_prepare_trbs(struct dwc3_ep *dep, bool starting)
797 * processed from the first TRB until the last one. Since we 796 * processed from the first TRB until the last one. Since we
798 * don't wrap around we have to start at the beginning. 797 * don't wrap around we have to start at the beginning.
799 */ 798 */
800 if (usb_endpoint_xfer_isoc(dep->desc)) { 799 if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
801 dep->busy_slot = 1; 800 dep->busy_slot = 1;
802 dep->free_slot = 1; 801 dep->free_slot = 1;
803 } else { 802 } else {
@@ -807,7 +806,7 @@ static void dwc3_prepare_trbs(struct dwc3_ep *dep, bool starting)
807 } 806 }
808 807
809 /* The last TRB is a link TRB, not used for xfer */ 808 /* The last TRB is a link TRB, not used for xfer */
810 if ((trbs_left <= 1) && usb_endpoint_xfer_isoc(dep->desc)) 809 if ((trbs_left <= 1) && usb_endpoint_xfer_isoc(dep->endpoint.desc))
811 return; 810 return;
812 811
813 list_for_each_entry_safe(req, n, &dep->request_list, list) { 812 list_for_each_entry_safe(req, n, &dep->request_list, list) {
@@ -984,7 +983,7 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)
984 int start_trans; 983 int start_trans;
985 984
986 start_trans = 1; 985 start_trans = 1;
987 if (usb_endpoint_xfer_isoc(dep->desc) && 986 if (usb_endpoint_xfer_isoc(dep->endpoint.desc) &&
988 (dep->flags & DWC3_EP_BUSY)) 987 (dep->flags & DWC3_EP_BUSY))
989 start_trans = 0; 988 start_trans = 0;
990 989
@@ -1011,7 +1010,7 @@ static int dwc3_gadget_ep_queue(struct usb_ep *ep, struct usb_request *request,
1011 1010
1012 int ret; 1011 int ret;
1013 1012
1014 if (!dep->desc) { 1013 if (!dep->endpoint.desc) {
1015 dev_dbg(dwc->dev, "trying to queue request %p to disabled %s\n", 1014 dev_dbg(dwc->dev, "trying to queue request %p to disabled %s\n",
1016 request, ep->name); 1015 request, ep->name);
1017 return -ESHUTDOWN; 1016 return -ESHUTDOWN;
@@ -1125,7 +1124,7 @@ static int dwc3_gadget_ep_set_halt(struct usb_ep *ep, int value)
1125 1124
1126 spin_lock_irqsave(&dwc->lock, flags); 1125 spin_lock_irqsave(&dwc->lock, flags);
1127 1126
1128 if (usb_endpoint_xfer_isoc(dep->desc)) { 1127 if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
1129 dev_err(dwc->dev, "%s is of Isochronous type\n", dep->name); 1128 dev_err(dwc->dev, "%s is of Isochronous type\n", dep->name);
1130 ret = -EINVAL; 1129 ret = -EINVAL;
1131 goto out; 1130 goto out;
@@ -1681,7 +1680,7 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
1681 case DWC3_DEPEVT_XFERCOMPLETE: 1680 case DWC3_DEPEVT_XFERCOMPLETE:
1682 dep->res_trans_idx = 0; 1681 dep->res_trans_idx = 0;
1683 1682
1684 if (usb_endpoint_xfer_isoc(dep->desc)) { 1683 if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
1685 dev_dbg(dwc->dev, "%s is an Isochronous endpoint\n", 1684 dev_dbg(dwc->dev, "%s is an Isochronous endpoint\n",
1686 dep->name); 1685 dep->name);
1687 return; 1686 return;
@@ -1690,7 +1689,7 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
1690 dwc3_endpoint_transfer_complete(dwc, dep, event, 1); 1689 dwc3_endpoint_transfer_complete(dwc, dep, event, 1);
1691 break; 1690 break;
1692 case DWC3_DEPEVT_XFERINPROGRESS: 1691 case DWC3_DEPEVT_XFERINPROGRESS:
1693 if (!usb_endpoint_xfer_isoc(dep->desc)) { 1692 if (!usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
1694 dev_dbg(dwc->dev, "%s is not an Isochronous endpoint\n", 1693 dev_dbg(dwc->dev, "%s is not an Isochronous endpoint\n",
1695 dep->name); 1694 dep->name);
1696 return; 1695 return;
@@ -1699,7 +1698,7 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
1699 dwc3_endpoint_transfer_complete(dwc, dep, event, 0); 1698 dwc3_endpoint_transfer_complete(dwc, dep, event, 0);
1700 break; 1699 break;
1701 case DWC3_DEPEVT_XFERNOTREADY: 1700 case DWC3_DEPEVT_XFERNOTREADY:
1702 if (usb_endpoint_xfer_isoc(dep->desc)) { 1701 if (usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
1703 dwc3_gadget_start_isoc(dwc, dep, event); 1702 dwc3_gadget_start_isoc(dwc, dep, event);
1704 } else { 1703 } else {
1705 int ret; 1704 int ret;
@@ -1720,7 +1719,7 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
1720 1719
1721 break; 1720 break;
1722 case DWC3_DEPEVT_STREAMEVT: 1721 case DWC3_DEPEVT_STREAMEVT:
1723 if (!usb_endpoint_xfer_bulk(dep->desc)) { 1722 if (!usb_endpoint_xfer_bulk(dep->endpoint.desc)) {
1724 dev_err(dwc->dev, "Stream event for non-Bulk %s\n", 1723 dev_err(dwc->dev, "Stream event for non-Bulk %s\n",
1725 dep->name); 1724 dep->name);
1726 return; 1725 return;