diff options
Diffstat (limited to 'drivers/usb')
| -rw-r--r-- | drivers/usb/dwc3/Makefile | 2 | ||||
| -rw-r--r-- | drivers/usb/dwc3/core.c | 15 | ||||
| -rw-r--r-- | drivers/usb/dwc3/debug.c | 32 | ||||
| -rw-r--r-- | drivers/usb/dwc3/debug.h | 7 | ||||
| -rw-r--r-- | drivers/usb/dwc3/ep0.c | 46 | ||||
| -rw-r--r-- | drivers/usb/dwc3/gadget.c | 57 |
6 files changed, 24 insertions, 135 deletions
diff --git a/drivers/usb/dwc3/Makefile b/drivers/usb/dwc3/Makefile index 84de1e4151c4..ffca34029b21 100644 --- a/drivers/usb/dwc3/Makefile +++ b/drivers/usb/dwc3/Makefile | |||
| @@ -6,7 +6,7 @@ obj-$(CONFIG_USB_DWC3) += dwc3.o | |||
| 6 | dwc3-y := core.o | 6 | dwc3-y := core.o |
| 7 | 7 | ||
| 8 | ifneq ($(CONFIG_FTRACE),) | 8 | ifneq ($(CONFIG_FTRACE),) |
| 9 | dwc3-y += debug.o trace.o | 9 | dwc3-y += trace.o |
| 10 | endif | 10 | endif |
| 11 | 11 | ||
| 12 | ifneq ($(filter y,$(CONFIG_USB_DWC3_HOST) $(CONFIG_USB_DWC3_DUAL_ROLE)),) | 12 | ifneq ($(filter y,$(CONFIG_USB_DWC3_HOST) $(CONFIG_USB_DWC3_DUAL_ROLE)),) |
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 5e61ef6a378d..037052db50ef 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c | |||
| @@ -305,13 +305,7 @@ static int dwc3_event_buffers_setup(struct dwc3 *dwc) | |||
| 305 | struct dwc3_event_buffer *evt; | 305 | struct dwc3_event_buffer *evt; |
| 306 | 306 | ||
| 307 | evt = dwc->ev_buf; | 307 | evt = dwc->ev_buf; |
| 308 | dwc3_trace(trace_dwc3_core, | ||
| 309 | "Event buf %p dma %08llx length %d\n", | ||
| 310 | evt->buf, (unsigned long long) evt->dma, | ||
| 311 | evt->length); | ||
| 312 | |||
| 313 | evt->lpos = 0; | 308 | evt->lpos = 0; |
| 314 | |||
| 315 | dwc3_writel(dwc->regs, DWC3_GEVNTADRLO(0), | 309 | dwc3_writel(dwc->regs, DWC3_GEVNTADRLO(0), |
| 316 | lower_32_bits(evt->dma)); | 310 | lower_32_bits(evt->dma)); |
| 317 | dwc3_writel(dwc->regs, DWC3_GEVNTADRHI(0), | 311 | dwc3_writel(dwc->regs, DWC3_GEVNTADRHI(0), |
| @@ -428,9 +422,6 @@ static void dwc3_core_num_eps(struct dwc3 *dwc) | |||
| 428 | 422 | ||
| 429 | dwc->num_in_eps = DWC3_NUM_IN_EPS(parms); | 423 | dwc->num_in_eps = DWC3_NUM_IN_EPS(parms); |
| 430 | dwc->num_out_eps = DWC3_NUM_EPS(parms) - dwc->num_in_eps; | 424 | dwc->num_out_eps = DWC3_NUM_EPS(parms) - dwc->num_in_eps; |
| 431 | |||
| 432 | dwc3_trace(trace_dwc3_core, "found %d IN and %d OUT endpoints", | ||
| 433 | dwc->num_in_eps, dwc->num_out_eps); | ||
| 434 | } | 425 | } |
| 435 | 426 | ||
| 436 | static void dwc3_cache_hwparams(struct dwc3 *dwc) | 427 | static void dwc3_cache_hwparams(struct dwc3 *dwc) |
| @@ -656,13 +647,13 @@ static void dwc3_core_setup_global_control(struct dwc3 *dwc) | |||
| 656 | reg |= DWC3_GCTL_GBLHIBERNATIONEN; | 647 | reg |= DWC3_GCTL_GBLHIBERNATIONEN; |
| 657 | break; | 648 | break; |
| 658 | default: | 649 | default: |
| 659 | dwc3_trace(trace_dwc3_core, "No power optimization available\n"); | 650 | /* nothing */ |
| 651 | break; | ||
| 660 | } | 652 | } |
| 661 | 653 | ||
| 662 | /* check if current dwc3 is on simulation board */ | 654 | /* check if current dwc3 is on simulation board */ |
| 663 | if (dwc->hwparams.hwparams6 & DWC3_GHWPARAMS6_EN_FPGA) { | 655 | if (dwc->hwparams.hwparams6 & DWC3_GHWPARAMS6_EN_FPGA) { |
| 664 | dwc3_trace(trace_dwc3_core, | 656 | dev_info(dwc->dev, "Running with FPGA optmizations\n"); |
| 665 | "running on FPGA platform\n"); | ||
| 666 | dwc->is_fpga = true; | 657 | dwc->is_fpga = true; |
| 667 | } | 658 | } |
| 668 | 659 | ||
diff --git a/drivers/usb/dwc3/debug.c b/drivers/usb/dwc3/debug.c deleted file mode 100644 index 0be6885bc370..000000000000 --- a/drivers/usb/dwc3/debug.c +++ /dev/null | |||
| @@ -1,32 +0,0 @@ | |||
| 1 | /** | ||
| 2 | * debug.c - DesignWare USB3 DRD Controller Debug/Trace Support | ||
| 3 | * | ||
| 4 | * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com | ||
| 5 | * | ||
| 6 | * Author: Felipe Balbi <balbi@ti.com> | ||
| 7 | * | ||
| 8 | * This program is free software: you can redistribute it and/or modify | ||
| 9 | * it under the terms of the GNU General Public License version 2 of | ||
| 10 | * the License as published by the Free Software Foundation. | ||
| 11 | * | ||
| 12 | * This program is distributed in the hope that it will be useful, | ||
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | * GNU General Public License for more details. | ||
| 16 | */ | ||
| 17 | |||
| 18 | #include "debug.h" | ||
| 19 | |||
| 20 | void dwc3_trace(void (*trace)(struct va_format *), const char *fmt, ...) | ||
| 21 | { | ||
| 22 | struct va_format vaf; | ||
| 23 | va_list args; | ||
| 24 | |||
| 25 | va_start(args, fmt); | ||
| 26 | vaf.fmt = fmt; | ||
| 27 | vaf.va = &args; | ||
| 28 | |||
| 29 | trace(&vaf); | ||
| 30 | |||
| 31 | va_end(args); | ||
| 32 | } | ||
diff --git a/drivers/usb/dwc3/debug.h b/drivers/usb/dwc3/debug.h index d93780e84f07..eeed4ffd8131 100644 --- a/drivers/usb/dwc3/debug.h +++ b/drivers/usb/dwc3/debug.h | |||
| @@ -345,13 +345,6 @@ static inline const char *dwc3_gadget_generic_cmd_status_string(int status) | |||
| 345 | } | 345 | } |
| 346 | 346 | ||
| 347 | 347 | ||
| 348 | #if IS_ENABLED(CONFIG_FTRACE) | ||
| 349 | void dwc3_trace(void (*trace)(struct va_format *), const char *fmt, ...); | ||
| 350 | #else | ||
| 351 | static inline void dwc3_trace(void (*trace)(struct va_format *), const char *fmt, ...) | ||
| 352 | { } | ||
| 353 | #endif | ||
| 354 | |||
| 355 | #ifdef CONFIG_DEBUG_FS | 348 | #ifdef CONFIG_DEBUG_FS |
| 356 | extern void dwc3_debugfs_init(struct dwc3 *); | 349 | extern void dwc3_debugfs_init(struct dwc3 *); |
| 357 | extern void dwc3_debugfs_exit(struct dwc3 *); | 350 | extern void dwc3_debugfs_exit(struct dwc3 *); |
diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c index 15b62a5aaff8..2b22ea7263d8 100644 --- a/drivers/usb/dwc3/ep0.c +++ b/drivers/usb/dwc3/ep0.c | |||
| @@ -49,10 +49,8 @@ static int dwc3_ep0_start_trans(struct dwc3 *dwc, u8 epnum, dma_addr_t buf_dma, | |||
| 49 | int ret; | 49 | int ret; |
| 50 | 50 | ||
| 51 | dep = dwc->eps[epnum]; | 51 | dep = dwc->eps[epnum]; |
| 52 | if (dep->flags & DWC3_EP_BUSY) { | 52 | if (dep->flags & DWC3_EP_BUSY) |
| 53 | dwc3_trace(trace_dwc3_ep0, "%s still busy", dep->name); | ||
| 54 | return 0; | 53 | return 0; |
| 55 | } | ||
| 56 | 54 | ||
| 57 | trb = &dwc->ep0_trb[dep->trb_enqueue]; | 55 | trb = &dwc->ep0_trb[dep->trb_enqueue]; |
| 58 | 56 | ||
| @@ -144,9 +142,6 @@ static int __dwc3_gadget_ep0_queue(struct dwc3_ep *dep, | |||
| 144 | 142 | ||
| 145 | if (dwc->ep0state == EP0_STATUS_PHASE) | 143 | if (dwc->ep0state == EP0_STATUS_PHASE) |
| 146 | __dwc3_ep0_do_control_status(dwc, dwc->eps[direction]); | 144 | __dwc3_ep0_do_control_status(dwc, dwc->eps[direction]); |
| 147 | else | ||
| 148 | dwc3_trace(trace_dwc3_ep0, | ||
| 149 | "too early for delayed status"); | ||
| 150 | 145 | ||
| 151 | return 0; | 146 | return 0; |
| 152 | } | 147 | } |
| @@ -210,9 +205,8 @@ int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request, | |||
| 210 | 205 | ||
| 211 | spin_lock_irqsave(&dwc->lock, flags); | 206 | spin_lock_irqsave(&dwc->lock, flags); |
| 212 | if (!dep->endpoint.desc) { | 207 | if (!dep->endpoint.desc) { |
| 213 | dwc3_trace(trace_dwc3_ep0, | 208 | dev_err(dwc->dev, "%s: can't queue to disabled endpoint\n", |
| 214 | "trying to queue request %p to disabled %s", | 209 | dep->name); |
| 215 | request, dep->name); | ||
| 216 | ret = -ESHUTDOWN; | 210 | ret = -ESHUTDOWN; |
| 217 | goto out; | 211 | goto out; |
| 218 | } | 212 | } |
| @@ -574,13 +568,12 @@ static int dwc3_ep0_set_address(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl) | |||
| 574 | 568 | ||
| 575 | addr = le16_to_cpu(ctrl->wValue); | 569 | addr = le16_to_cpu(ctrl->wValue); |
| 576 | if (addr > 127) { | 570 | if (addr > 127) { |
| 577 | dwc3_trace(trace_dwc3_ep0, "invalid device address %d", addr); | 571 | dev_err(dwc->dev, "invalid device address %d\n", addr); |
| 578 | return -EINVAL; | 572 | return -EINVAL; |
| 579 | } | 573 | } |
| 580 | 574 | ||
| 581 | if (state == USB_STATE_CONFIGURED) { | 575 | if (state == USB_STATE_CONFIGURED) { |
| 582 | dwc3_trace(trace_dwc3_ep0, | 576 | dev_err(dwc->dev, "can't SetAddress() from Configured State\n"); |
| 583 | "trying to set address when configured"); | ||
| 584 | return -EINVAL; | 577 | return -EINVAL; |
| 585 | } | 578 | } |
| 586 | 579 | ||
| @@ -765,35 +758,27 @@ static int dwc3_ep0_std_request(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl) | |||
| 765 | 758 | ||
| 766 | switch (ctrl->bRequest) { | 759 | switch (ctrl->bRequest) { |
| 767 | case USB_REQ_GET_STATUS: | 760 | case USB_REQ_GET_STATUS: |
| 768 | dwc3_trace(trace_dwc3_ep0, "USB_REQ_GET_STATUS"); | ||
| 769 | ret = dwc3_ep0_handle_status(dwc, ctrl); | 761 | ret = dwc3_ep0_handle_status(dwc, ctrl); |
| 770 | break; | 762 | break; |
| 771 | case USB_REQ_CLEAR_FEATURE: | 763 | case USB_REQ_CLEAR_FEATURE: |
| 772 | dwc3_trace(trace_dwc3_ep0, "USB_REQ_CLEAR_FEATURE"); | ||
| 773 | ret = dwc3_ep0_handle_feature(dwc, ctrl, 0); | 764 | ret = dwc3_ep0_handle_feature(dwc, ctrl, 0); |
| 774 | break; | 765 | break; |
| 775 | case USB_REQ_SET_FEATURE: | 766 | case USB_REQ_SET_FEATURE: |
| 776 | dwc3_trace(trace_dwc3_ep0, "USB_REQ_SET_FEATURE"); | ||
| 777 | ret = dwc3_ep0_handle_feature(dwc, ctrl, 1); | 767 | ret = dwc3_ep0_handle_feature(dwc, ctrl, 1); |
| 778 | break; | 768 | break; |
| 779 | case USB_REQ_SET_ADDRESS: | 769 | case USB_REQ_SET_ADDRESS: |
| 780 | dwc3_trace(trace_dwc3_ep0, "USB_REQ_SET_ADDRESS"); | ||
| 781 | ret = dwc3_ep0_set_address(dwc, ctrl); | 770 | ret = dwc3_ep0_set_address(dwc, ctrl); |
| 782 | break; | 771 | break; |
| 783 | case USB_REQ_SET_CONFIGURATION: | 772 | case USB_REQ_SET_CONFIGURATION: |
| 784 | dwc3_trace(trace_dwc3_ep0, "USB_REQ_SET_CONFIGURATION"); | ||
| 785 | ret = dwc3_ep0_set_config(dwc, ctrl); | 773 | ret = dwc3_ep0_set_config(dwc, ctrl); |
| 786 | break; | 774 | break; |
| 787 | case USB_REQ_SET_SEL: | 775 | case USB_REQ_SET_SEL: |
| 788 | dwc3_trace(trace_dwc3_ep0, "USB_REQ_SET_SEL"); | ||
| 789 | ret = dwc3_ep0_set_sel(dwc, ctrl); | 776 | ret = dwc3_ep0_set_sel(dwc, ctrl); |
| 790 | break; | 777 | break; |
| 791 | case USB_REQ_SET_ISOCH_DELAY: | 778 | case USB_REQ_SET_ISOCH_DELAY: |
| 792 | dwc3_trace(trace_dwc3_ep0, "USB_REQ_SET_ISOCH_DELAY"); | ||
| 793 | ret = dwc3_ep0_set_isoch_delay(dwc, ctrl); | 779 | ret = dwc3_ep0_set_isoch_delay(dwc, ctrl); |
| 794 | break; | 780 | break; |
| 795 | default: | 781 | default: |
| 796 | dwc3_trace(trace_dwc3_ep0, "Forwarding to gadget driver"); | ||
| 797 | ret = dwc3_ep0_delegate_req(dwc, ctrl); | 782 | ret = dwc3_ep0_delegate_req(dwc, ctrl); |
| 798 | break; | 783 | break; |
| 799 | } | 784 | } |
| @@ -869,9 +854,6 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc, | |||
| 869 | status = DWC3_TRB_SIZE_TRBSTS(trb->size); | 854 | status = DWC3_TRB_SIZE_TRBSTS(trb->size); |
| 870 | if (status == DWC3_TRBSTS_SETUP_PENDING) { | 855 | if (status == DWC3_TRBSTS_SETUP_PENDING) { |
| 871 | dwc->setup_packet_pending = true; | 856 | dwc->setup_packet_pending = true; |
| 872 | |||
| 873 | dwc3_trace(trace_dwc3_ep0, "Setup Pending received"); | ||
| 874 | |||
| 875 | if (r) | 857 | if (r) |
| 876 | dwc3_gadget_giveback(ep0, r, -ECONNRESET); | 858 | dwc3_gadget_giveback(ep0, r, -ECONNRESET); |
| 877 | 859 | ||
| @@ -961,7 +943,7 @@ static void dwc3_ep0_complete_status(struct dwc3 *dwc, | |||
| 961 | 943 | ||
| 962 | ret = dwc3_gadget_set_test_mode(dwc, dwc->test_mode_nr); | 944 | ret = dwc3_gadget_set_test_mode(dwc, dwc->test_mode_nr); |
| 963 | if (ret < 0) { | 945 | if (ret < 0) { |
| 964 | dwc3_trace(trace_dwc3_ep0, "Invalid Test #%d", | 946 | dev_err(dwc->dev, "invalid test #%d\n", |
| 965 | dwc->test_mode_nr); | 947 | dwc->test_mode_nr); |
| 966 | dwc3_ep0_stall_and_restart(dwc); | 948 | dwc3_ep0_stall_and_restart(dwc); |
| 967 | return; | 949 | return; |
| @@ -969,10 +951,8 @@ static void dwc3_ep0_complete_status(struct dwc3 *dwc, | |||
| 969 | } | 951 | } |
| 970 | 952 | ||
| 971 | status = DWC3_TRB_SIZE_TRBSTS(trb->size); | 953 | status = DWC3_TRB_SIZE_TRBSTS(trb->size); |
| 972 | if (status == DWC3_TRBSTS_SETUP_PENDING) { | 954 | if (status == DWC3_TRBSTS_SETUP_PENDING) |
| 973 | dwc->setup_packet_pending = true; | 955 | dwc->setup_packet_pending = true; |
| 974 | dwc3_trace(trace_dwc3_ep0, "Setup Pending received"); | ||
| 975 | } | ||
| 976 | 956 | ||
| 977 | dwc->ep0state = EP0_SETUP_PHASE; | 957 | dwc->ep0state = EP0_SETUP_PHASE; |
| 978 | dwc3_ep0_out_start(dwc); | 958 | dwc3_ep0_out_start(dwc); |
| @@ -1022,10 +1002,8 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc, | |||
| 1022 | 1002 | ||
| 1023 | ret = usb_gadget_map_request(&dwc->gadget, &req->request, | 1003 | ret = usb_gadget_map_request(&dwc->gadget, &req->request, |
| 1024 | dep->number); | 1004 | dep->number); |
| 1025 | if (ret) { | 1005 | if (ret) |
| 1026 | dwc3_trace(trace_dwc3_ep0, "failed to map request"); | ||
| 1027 | return; | 1006 | return; |
| 1028 | } | ||
| 1029 | 1007 | ||
| 1030 | maxpacket = dep->endpoint.maxpacket; | 1008 | maxpacket = dep->endpoint.maxpacket; |
| 1031 | 1009 | ||
| @@ -1050,10 +1028,8 @@ static void __dwc3_ep0_do_control_data(struct dwc3 *dwc, | |||
| 1050 | } else { | 1028 | } else { |
| 1051 | ret = usb_gadget_map_request(&dwc->gadget, &req->request, | 1029 | ret = usb_gadget_map_request(&dwc->gadget, &req->request, |
| 1052 | dep->number); | 1030 | dep->number); |
| 1053 | if (ret) { | 1031 | if (ret) |
| 1054 | dwc3_trace(trace_dwc3_ep0, "failed to map request"); | ||
| 1055 | return; | 1032 | return; |
| 1056 | } | ||
| 1057 | 1033 | ||
| 1058 | ret = dwc3_ep0_start_trans(dwc, dep->number, req->request.dma, | 1034 | ret = dwc3_ep0_start_trans(dwc, dep->number, req->request.dma, |
| 1059 | req->request.length, DWC3_TRBCTL_CONTROL_DATA, | 1035 | req->request.length, DWC3_TRBCTL_CONTROL_DATA, |
| @@ -1123,8 +1099,7 @@ static void dwc3_ep0_xfernotready(struct dwc3 *dwc, | |||
| 1123 | if (dwc->ep0_expect_in != event->endpoint_number) { | 1099 | if (dwc->ep0_expect_in != event->endpoint_number) { |
| 1124 | struct dwc3_ep *dep = dwc->eps[dwc->ep0_expect_in]; | 1100 | struct dwc3_ep *dep = dwc->eps[dwc->ep0_expect_in]; |
| 1125 | 1101 | ||
| 1126 | dwc3_trace(trace_dwc3_ep0, | 1102 | dev_err(dwc->dev, "unexpected direction for Data Phase\n"); |
| 1127 | "Wrong direction for Data phase"); | ||
| 1128 | dwc3_ep0_end_control_data(dwc, dep); | 1103 | dwc3_ep0_end_control_data(dwc, dep); |
| 1129 | dwc3_ep0_stall_and_restart(dwc); | 1104 | dwc3_ep0_stall_and_restart(dwc); |
| 1130 | return; | 1105 | return; |
| @@ -1140,7 +1115,6 @@ static void dwc3_ep0_xfernotready(struct dwc3 *dwc, | |||
| 1140 | 1115 | ||
| 1141 | if (dwc->delayed_status) { | 1116 | if (dwc->delayed_status) { |
| 1142 | WARN_ON_ONCE(event->endpoint_number != 1); | 1117 | WARN_ON_ONCE(event->endpoint_number != 1); |
| 1143 | dwc3_trace(trace_dwc3_ep0, "Delayed Status"); | ||
| 1144 | return; | 1118 | return; |
| 1145 | } | 1119 | } |
| 1146 | 1120 | ||
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 7e39f0cf4436..e47cba55c431 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c | |||
| @@ -139,9 +139,6 @@ int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state) | |||
| 139 | udelay(5); | 139 | udelay(5); |
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | dwc3_trace(trace_dwc3_gadget, | ||
| 143 | "link state change request timed out"); | ||
| 144 | |||
| 145 | return -ETIMEDOUT; | 142 | return -ETIMEDOUT; |
| 146 | } | 143 | } |
| 147 | 144 | ||
| @@ -1115,8 +1112,7 @@ static void __dwc3_gadget_start_isoc(struct dwc3 *dwc, | |||
| 1115 | u32 uf; | 1112 | u32 uf; |
| 1116 | 1113 | ||
| 1117 | if (list_empty(&dep->pending_list)) { | 1114 | if (list_empty(&dep->pending_list)) { |
| 1118 | dwc3_trace(trace_dwc3_gadget, | 1115 | dev_info(dwc->dev, "%s: ran out of requests\n", |
| 1119 | "ISOC ep %s run out for requests", | ||
| 1120 | dep->name); | 1116 | dep->name); |
| 1121 | dep->flags |= DWC3_EP_PENDING_REQUEST; | 1117 | dep->flags |= DWC3_EP_PENDING_REQUEST; |
| 1122 | return; | 1118 | return; |
| @@ -1145,16 +1141,15 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req) | |||
| 1145 | int ret; | 1141 | int ret; |
| 1146 | 1142 | ||
| 1147 | if (!dep->endpoint.desc) { | 1143 | if (!dep->endpoint.desc) { |
| 1148 | dwc3_trace(trace_dwc3_gadget, | 1144 | dev_err(dwc->dev, "%s: can't queue to disabled endpoint\n", |
| 1149 | "trying to queue request %p to disabled %s", | 1145 | dep->name); |
| 1150 | &req->request, dep->endpoint.name); | ||
| 1151 | return -ESHUTDOWN; | 1146 | return -ESHUTDOWN; |
| 1152 | } | 1147 | } |
| 1153 | 1148 | ||
| 1154 | if (WARN(req->dep != dep, "request %p belongs to '%s'\n", | 1149 | if (WARN(req->dep != dep, "request %p belongs to '%s'\n", |
| 1155 | &req->request, req->dep->name)) { | 1150 | &req->request, req->dep->name)) { |
| 1156 | dwc3_trace(trace_dwc3_gadget, "request %p belongs to '%s'", | 1151 | dev_err(dwc->dev, "%s: request %p belongs to '%s'\n", |
| 1157 | &req->request, req->dep->name); | 1152 | dep->name, &req->request, req->dep->name); |
| 1158 | return -EINVAL; | 1153 | return -EINVAL; |
| 1159 | } | 1154 | } |
| 1160 | 1155 | ||
| @@ -1204,10 +1199,6 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req) | |||
| 1204 | return 0; | 1199 | return 0; |
| 1205 | 1200 | ||
| 1206 | ret = __dwc3_gadget_kick_transfer(dep, 0); | 1201 | ret = __dwc3_gadget_kick_transfer(dep, 0); |
| 1207 | if (ret && ret != -EBUSY) | ||
| 1208 | dwc3_trace(trace_dwc3_gadget, | ||
| 1209 | "%s: failed to kick transfers", | ||
| 1210 | dep->name); | ||
| 1211 | if (ret == -EBUSY) | 1202 | if (ret == -EBUSY) |
| 1212 | ret = 0; | 1203 | ret = 0; |
| 1213 | 1204 | ||
| @@ -1226,7 +1217,6 @@ static int __dwc3_gadget_ep_queue_zlp(struct dwc3 *dwc, struct dwc3_ep *dep) | |||
| 1226 | struct usb_request *request; | 1217 | struct usb_request *request; |
| 1227 | struct usb_ep *ep = &dep->endpoint; | 1218 | struct usb_ep *ep = &dep->endpoint; |
| 1228 | 1219 | ||
| 1229 | dwc3_trace(trace_dwc3_gadget, "queueing ZLP"); | ||
| 1230 | request = dwc3_gadget_ep_alloc_request(ep, GFP_ATOMIC); | 1220 | request = dwc3_gadget_ep_alloc_request(ep, GFP_ATOMIC); |
| 1231 | if (!request) | 1221 | if (!request) |
| 1232 | return -ENOMEM; | 1222 | return -ENOMEM; |
| @@ -1345,9 +1335,6 @@ int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol) | |||
| 1345 | 1335 | ||
| 1346 | if (!protocol && ((dep->direction && transfer_in_flight) || | 1336 | if (!protocol && ((dep->direction && transfer_in_flight) || |
| 1347 | (!dep->direction && started))) { | 1337 | (!dep->direction && started))) { |
| 1348 | dwc3_trace(trace_dwc3_gadget, | ||
| 1349 | "%s: pending request, cannot halt", | ||
| 1350 | dep->name); | ||
| 1351 | return -EAGAIN; | 1338 | return -EAGAIN; |
| 1352 | } | 1339 | } |
| 1353 | 1340 | ||
| @@ -1465,10 +1452,8 @@ static int __dwc3_gadget_wakeup(struct dwc3 *dwc) | |||
| 1465 | 1452 | ||
| 1466 | speed = reg & DWC3_DSTS_CONNECTSPD; | 1453 | speed = reg & DWC3_DSTS_CONNECTSPD; |
| 1467 | if ((speed == DWC3_DSTS_SUPERSPEED) || | 1454 | if ((speed == DWC3_DSTS_SUPERSPEED) || |
| 1468 | (speed == DWC3_DSTS_SUPERSPEED_PLUS)) { | 1455 | (speed == DWC3_DSTS_SUPERSPEED_PLUS)) |
| 1469 | dwc3_trace(trace_dwc3_gadget, "no wakeup on SuperSpeed"); | ||
| 1470 | return 0; | 1456 | return 0; |
| 1471 | } | ||
| 1472 | 1457 | ||
| 1473 | link_state = DWC3_DSTS_USBLNKST(reg); | 1458 | link_state = DWC3_DSTS_USBLNKST(reg); |
| 1474 | 1459 | ||
| @@ -1477,9 +1462,6 @@ static int __dwc3_gadget_wakeup(struct dwc3 *dwc) | |||
| 1477 | case DWC3_LINK_STATE_U3: /* in HS, means SUSPEND */ | 1462 | case DWC3_LINK_STATE_U3: /* in HS, means SUSPEND */ |
| 1478 | break; | 1463 | break; |
| 1479 | default: | 1464 | default: |
| 1480 | dwc3_trace(trace_dwc3_gadget, | ||
| 1481 | "can't wakeup from '%s'", | ||
| 1482 | dwc3_gadget_link_string(link_state)); | ||
| 1483 | return -EINVAL; | 1465 | return -EINVAL; |
| 1484 | } | 1466 | } |
| 1485 | 1467 | ||
| @@ -1584,11 +1566,6 @@ static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on, int suspend) | |||
| 1584 | if (!timeout) | 1566 | if (!timeout) |
| 1585 | return -ETIMEDOUT; | 1567 | return -ETIMEDOUT; |
| 1586 | 1568 | ||
| 1587 | dwc3_trace(trace_dwc3_gadget, "gadget %s data soft-%s", | ||
| 1588 | dwc->gadget_driver | ||
| 1589 | ? dwc->gadget_driver->function : "no-function", | ||
| 1590 | is_on ? "connect" : "disconnect"); | ||
| 1591 | |||
| 1592 | return 0; | 1569 | return 0; |
| 1593 | } | 1570 | } |
| 1594 | 1571 | ||
| @@ -1910,8 +1887,6 @@ static int dwc3_gadget_init_hw_endpoints(struct dwc3 *dwc, | |||
| 1910 | dep->endpoint.name = dep->name; | 1887 | dep->endpoint.name = dep->name; |
| 1911 | spin_lock_init(&dep->lock); | 1888 | spin_lock_init(&dep->lock); |
| 1912 | 1889 | ||
| 1913 | dwc3_trace(trace_dwc3_gadget, "initializing %s", dep->name); | ||
| 1914 | |||
| 1915 | if (epnum == 0 || epnum == 1) { | 1890 | if (epnum == 0 || epnum == 1) { |
| 1916 | usb_ep_set_maxpacket_limit(&dep->endpoint, 512); | 1891 | usb_ep_set_maxpacket_limit(&dep->endpoint, 512); |
| 1917 | dep->endpoint.maxburst = 1; | 1892 | dep->endpoint.maxburst = 1; |
| @@ -1958,15 +1933,13 @@ static int dwc3_gadget_init_endpoints(struct dwc3 *dwc) | |||
| 1958 | 1933 | ||
| 1959 | ret = dwc3_gadget_init_hw_endpoints(dwc, dwc->num_out_eps, 0); | 1934 | ret = dwc3_gadget_init_hw_endpoints(dwc, dwc->num_out_eps, 0); |
| 1960 | if (ret < 0) { | 1935 | if (ret < 0) { |
| 1961 | dwc3_trace(trace_dwc3_gadget, | 1936 | dev_err(dwc->dev, "failed to initialize OUT endpoints\n"); |
| 1962 | "failed to allocate OUT endpoints"); | ||
| 1963 | return ret; | 1937 | return ret; |
| 1964 | } | 1938 | } |
| 1965 | 1939 | ||
| 1966 | ret = dwc3_gadget_init_hw_endpoints(dwc, dwc->num_in_eps, 1); | 1940 | ret = dwc3_gadget_init_hw_endpoints(dwc, dwc->num_in_eps, 1); |
| 1967 | if (ret < 0) { | 1941 | if (ret < 0) { |
| 1968 | dwc3_trace(trace_dwc3_gadget, | 1942 | dev_err(dwc->dev, "failed to initialize IN endpoints\n"); |
| 1969 | "failed to allocate IN endpoints"); | ||
| 1970 | return ret; | 1943 | return ret; |
| 1971 | } | 1944 | } |
| 1972 | 1945 | ||
| @@ -2041,9 +2014,6 @@ static int __dwc3_cleanup_done_trbs(struct dwc3 *dwc, struct dwc3_ep *dep, | |||
| 2041 | if (count) { | 2014 | if (count) { |
| 2042 | trb_status = DWC3_TRB_SIZE_TRBSTS(trb->size); | 2015 | trb_status = DWC3_TRB_SIZE_TRBSTS(trb->size); |
| 2043 | if (trb_status == DWC3_TRBSTS_MISSED_ISOC) { | 2016 | if (trb_status == DWC3_TRBSTS_MISSED_ISOC) { |
| 2044 | dwc3_trace(trace_dwc3_gadget, | ||
| 2045 | "%s: incomplete IN transfer", | ||
| 2046 | dep->name); | ||
| 2047 | /* | 2017 | /* |
| 2048 | * If missed isoc occurred and there is | 2018 | * If missed isoc occurred and there is |
| 2049 | * no request queued then issue END | 2019 | * no request queued then issue END |
| @@ -2669,8 +2639,6 @@ static void dwc3_gadget_linksts_change_interrupt(struct dwc3 *dwc, | |||
| 2669 | (pwropt != DWC3_GHWPARAMS1_EN_PWROPT_HIB)) { | 2639 | (pwropt != DWC3_GHWPARAMS1_EN_PWROPT_HIB)) { |
| 2670 | if ((dwc->link_state == DWC3_LINK_STATE_U3) && | 2640 | if ((dwc->link_state == DWC3_LINK_STATE_U3) && |
| 2671 | (next == DWC3_LINK_STATE_RESUME)) { | 2641 | (next == DWC3_LINK_STATE_RESUME)) { |
| 2672 | dwc3_trace(trace_dwc3_gadget, | ||
| 2673 | "ignoring transition U3 -> Resume"); | ||
| 2674 | return; | 2642 | return; |
| 2675 | } | 2643 | } |
| 2676 | } | 2644 | } |
| @@ -2804,11 +2772,7 @@ static void dwc3_gadget_interrupt(struct dwc3 *dwc, | |||
| 2804 | break; | 2772 | break; |
| 2805 | case DWC3_DEVICE_EVENT_EOPF: | 2773 | case DWC3_DEVICE_EVENT_EOPF: |
| 2806 | /* It changed to be suspend event for version 2.30a and above */ | 2774 | /* It changed to be suspend event for version 2.30a and above */ |
| 2807 | if (dwc->revision < DWC3_REVISION_230A) { | 2775 | if (dwc->revision >= DWC3_REVISION_230A) { |
| 2808 | dwc3_trace(trace_dwc3_gadget, "End of Periodic Frame"); | ||
| 2809 | } else { | ||
| 2810 | dwc3_trace(trace_dwc3_gadget, "U3/L1-L2 Suspend Event"); | ||
| 2811 | |||
| 2812 | /* | 2776 | /* |
| 2813 | * Ignore suspend event until the gadget enters into | 2777 | * Ignore suspend event until the gadget enters into |
| 2814 | * USB_STATE_CONFIGURED state. | 2778 | * USB_STATE_CONFIGURED state. |
| @@ -3059,8 +3023,7 @@ int dwc3_gadget_init(struct dwc3 *dwc) | |||
| 3059 | * composite.c that we are USB 2.0 + LPM ECN. | 3023 | * composite.c that we are USB 2.0 + LPM ECN. |
| 3060 | */ | 3024 | */ |
| 3061 | if (dwc->revision < DWC3_REVISION_220A) | 3025 | if (dwc->revision < DWC3_REVISION_220A) |
| 3062 | dwc3_trace(trace_dwc3_gadget, | 3026 | dev_info(dwc->dev, "changing max_speed on rev %08x\n", |
| 3063 | "Changing max_speed on rev %08x", | ||
| 3064 | dwc->revision); | 3027 | dwc->revision); |
| 3065 | 3028 | ||
| 3066 | dwc->gadget.max_speed = dwc->maximum_speed; | 3029 | dwc->gadget.max_speed = dwc->maximum_speed; |
