aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/dwc3
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2014-09-16 10:53:59 -0400
committerFelipe Balbi <balbi@ti.com>2014-09-16 10:53:59 -0400
commit4cd41ffd27b6b775445ecfdb72b592b71d6b4a32 (patch)
tree61e8c51ed5b9fae163d2d54967ebda02805c0bfa /drivers/usb/dwc3
parentd9152161b4bfd131a8253a5b9fcd8ba9b10277c4 (diff)
parent9e82bf014195d6f0054982c463575cdce24292be (diff)
Merge tag 'v3.17-rc5' into next
Linux 3.17-rc5 Signed-off-by: Felipe Balbi <balbi@ti.com> Conflicts: Documentation/devicetree/bindings/usb/mxs-phy.txt drivers/usb/phy/phy-mxs-usb.c
Diffstat (limited to 'drivers/usb/dwc3')
-rw-r--r--drivers/usb/dwc3/core.c13
-rw-r--r--drivers/usb/dwc3/dwc3-omap.c2
-rw-r--r--drivers/usb/dwc3/gadget.c11
3 files changed, 11 insertions, 15 deletions
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index f2050e844b4b..b0f4d52b7f04 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -796,20 +796,21 @@ static int dwc3_remove(struct platform_device *pdev)
796{ 796{
797 struct dwc3 *dwc = platform_get_drvdata(pdev); 797 struct dwc3 *dwc = platform_get_drvdata(pdev);
798 798
799 dwc3_debugfs_exit(dwc);
800 dwc3_core_exit_mode(dwc);
801 dwc3_event_buffers_cleanup(dwc);
802 dwc3_free_event_buffers(dwc);
803
799 usb_phy_set_suspend(dwc->usb2_phy, 1); 804 usb_phy_set_suspend(dwc->usb2_phy, 1);
800 usb_phy_set_suspend(dwc->usb3_phy, 1); 805 usb_phy_set_suspend(dwc->usb3_phy, 1);
801 phy_power_off(dwc->usb2_generic_phy); 806 phy_power_off(dwc->usb2_generic_phy);
802 phy_power_off(dwc->usb3_generic_phy); 807 phy_power_off(dwc->usb3_generic_phy);
803 808
809 dwc3_core_exit(dwc);
810
804 pm_runtime_put_sync(&pdev->dev); 811 pm_runtime_put_sync(&pdev->dev);
805 pm_runtime_disable(&pdev->dev); 812 pm_runtime_disable(&pdev->dev);
806 813
807 dwc3_debugfs_exit(dwc);
808 dwc3_core_exit_mode(dwc);
809 dwc3_event_buffers_cleanup(dwc);
810 dwc3_free_event_buffers(dwc);
811 dwc3_core_exit(dwc);
812
813 return 0; 814 return 0;
814} 815}
815 816
diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c
index 3ef5e4fc315b..2f537d588225 100644
--- a/drivers/usb/dwc3/dwc3-omap.c
+++ b/drivers/usb/dwc3/dwc3-omap.c
@@ -574,9 +574,9 @@ static int dwc3_omap_remove(struct platform_device *pdev)
574 if (omap->extcon_id_dev.edev) 574 if (omap->extcon_id_dev.edev)
575 extcon_unregister_interest(&omap->extcon_id_dev); 575 extcon_unregister_interest(&omap->extcon_id_dev);
576 dwc3_omap_disable_irqs(omap); 576 dwc3_omap_disable_irqs(omap);
577 device_for_each_child(&pdev->dev, NULL, dwc3_omap_remove_core);
577 pm_runtime_put_sync(&pdev->dev); 578 pm_runtime_put_sync(&pdev->dev);
578 pm_runtime_disable(&pdev->dev); 579 pm_runtime_disable(&pdev->dev);
579 device_for_each_child(&pdev->dev, NULL, dwc3_omap_remove_core);
580 580
581 return 0; 581 return 0;
582} 582}
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index f2dbaca5df2c..0fcc0a35ae05 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -437,7 +437,7 @@ static int dwc3_gadget_set_ep_config(struct dwc3 *dwc, struct dwc3_ep *dep,
437 dep->stream_capable = true; 437 dep->stream_capable = true;
438 } 438 }
439 439
440 if (usb_endpoint_xfer_isoc(desc)) 440 if (!usb_endpoint_xfer_control(desc))
441 params.param1 |= DWC3_DEPCFG_XFER_IN_PROGRESS_EN; 441 params.param1 |= DWC3_DEPCFG_XFER_IN_PROGRESS_EN;
442 442
443 /* 443 /*
@@ -1137,9 +1137,11 @@ static int dwc3_gadget_ep_queue(struct usb_ep *ep, struct usb_request *request,
1137 1137
1138 int ret; 1138 int ret;
1139 1139
1140 spin_lock_irqsave(&dwc->lock, flags);
1140 if (!dep->endpoint.desc) { 1141 if (!dep->endpoint.desc) {
1141 dev_dbg(dwc->dev, "trying to queue request %p to disabled %s\n", 1142 dev_dbg(dwc->dev, "trying to queue request %p to disabled %s\n",
1142 request, ep->name); 1143 request, ep->name);
1144 spin_unlock_irqrestore(&dwc->lock, flags);
1143 return -ESHUTDOWN; 1145 return -ESHUTDOWN;
1144 } 1146 }
1145 1147
@@ -1147,7 +1149,6 @@ static int dwc3_gadget_ep_queue(struct usb_ep *ep, struct usb_request *request,
1147 request, ep->name, request->length); 1149 request, ep->name, request->length);
1148 trace_dwc3_ep_queue(req); 1150 trace_dwc3_ep_queue(req);
1149 1151
1150 spin_lock_irqsave(&dwc->lock, flags);
1151 ret = __dwc3_gadget_ep_queue(dep, req); 1152 ret = __dwc3_gadget_ep_queue(dep, req);
1152 spin_unlock_irqrestore(&dwc->lock, flags); 1153 spin_unlock_irqrestore(&dwc->lock, flags);
1153 1154
@@ -1952,12 +1953,6 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
1952 dwc3_endpoint_transfer_complete(dwc, dep, event); 1953 dwc3_endpoint_transfer_complete(dwc, dep, event);
1953 break; 1954 break;
1954 case DWC3_DEPEVT_XFERINPROGRESS: 1955 case DWC3_DEPEVT_XFERINPROGRESS:
1955 if (!usb_endpoint_xfer_isoc(dep->endpoint.desc)) {
1956 dev_dbg(dwc->dev, "%s is not an Isochronous endpoint\n",
1957 dep->name);
1958 return;
1959 }
1960
1961 dwc3_endpoint_transfer_complete(dwc, dep, event); 1956 dwc3_endpoint_transfer_complete(dwc, dep, event);
1962 break; 1957 break;
1963 case DWC3_DEPEVT_XFERNOTREADY: 1958 case DWC3_DEPEVT_XFERNOTREADY: