diff options
author | Ido Shayevitz <idos@codeaurora.org> | 2012-03-12 14:25:24 -0400 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2012-05-04 08:52:52 -0400 |
commit | 16e78db720baa9356485336ec137c7ee0a482a9b (patch) | |
tree | 31d499e57a036d423ab98432195e1df1da386cac | |
parent | 31fb6014165358e71196bd7a9bf236c00e0b2cd8 (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.h | 1 | ||||
-rw-r--r-- | drivers/usb/dwc3/ep0.c | 2 | ||||
-rw-r--r-- | drivers/usb/dwc3/gadget.c | 37 |
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; |