diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-11-27 11:25:20 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-11-27 11:25:20 -0500 |
| commit | 842f57baab186417d89810f3dd6147f1ef3009dd (patch) | |
| tree | 63150a49c6ce3ba28d5a98abbab780b4fe8022dc /drivers/usb/dwc3 | |
| parent | fc625960edecfb57e62c2975d1f155155e28e6ba (diff) | |
| parent | eee47538ec1f26198cf5da675975b61d7f16135b (diff) | |
Merge tag 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-testing
Kishon writes:
Improvements in phy-core specifically on PHY core finds the PHY in the case
of non-dt boot. Adds three new PHY drivers using the PHY framework and some
miscellaneous fixes and cleanups.
Diffstat (limited to 'drivers/usb/dwc3')
| -rw-r--r-- | drivers/usb/dwc3/host.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/drivers/usb/dwc3/host.c b/drivers/usb/dwc3/host.c index dcb8ca084598..12bfd3c5405e 100644 --- a/drivers/usb/dwc3/host.c +++ b/drivers/usb/dwc3/host.c | |||
| @@ -29,8 +29,7 @@ int dwc3_host_init(struct dwc3 *dwc) | |||
| 29 | xhci = platform_device_alloc("xhci-hcd", PLATFORM_DEVID_AUTO); | 29 | xhci = platform_device_alloc("xhci-hcd", PLATFORM_DEVID_AUTO); |
| 30 | if (!xhci) { | 30 | if (!xhci) { |
| 31 | dev_err(dwc->dev, "couldn't allocate xHCI device\n"); | 31 | dev_err(dwc->dev, "couldn't allocate xHCI device\n"); |
| 32 | ret = -ENOMEM; | 32 | return -ENOMEM; |
| 33 | goto err0; | ||
| 34 | } | 33 | } |
| 35 | 34 | ||
| 36 | dma_set_coherent_mask(&xhci->dev, dwc->dev->coherent_dma_mask); | 35 | dma_set_coherent_mask(&xhci->dev, dwc->dev->coherent_dma_mask); |
| @@ -60,22 +59,33 @@ int dwc3_host_init(struct dwc3 *dwc) | |||
| 60 | goto err1; | 59 | goto err1; |
| 61 | } | 60 | } |
| 62 | 61 | ||
| 62 | phy_create_lookup(dwc->usb2_generic_phy, "usb2-phy", | ||
| 63 | dev_name(&xhci->dev)); | ||
| 64 | phy_create_lookup(dwc->usb3_generic_phy, "usb3-phy", | ||
| 65 | dev_name(&xhci->dev)); | ||
| 66 | |||
| 63 | ret = platform_device_add(xhci); | 67 | ret = platform_device_add(xhci); |
| 64 | if (ret) { | 68 | if (ret) { |
| 65 | dev_err(dwc->dev, "failed to register xHCI device\n"); | 69 | dev_err(dwc->dev, "failed to register xHCI device\n"); |
| 66 | goto err1; | 70 | goto err2; |
| 67 | } | 71 | } |
| 68 | 72 | ||
| 69 | return 0; | 73 | return 0; |
| 70 | 74 | err2: | |
| 75 | phy_remove_lookup(dwc->usb2_generic_phy, "usb2-phy", | ||
| 76 | dev_name(&xhci->dev)); | ||
| 77 | phy_remove_lookup(dwc->usb3_generic_phy, "usb3-phy", | ||
| 78 | dev_name(&xhci->dev)); | ||
| 71 | err1: | 79 | err1: |
| 72 | platform_device_put(xhci); | 80 | platform_device_put(xhci); |
| 73 | |||
| 74 | err0: | ||
| 75 | return ret; | 81 | return ret; |
| 76 | } | 82 | } |
| 77 | 83 | ||
| 78 | void dwc3_host_exit(struct dwc3 *dwc) | 84 | void dwc3_host_exit(struct dwc3 *dwc) |
| 79 | { | 85 | { |
| 86 | phy_remove_lookup(dwc->usb2_generic_phy, "usb2-phy", | ||
| 87 | dev_name(&dwc->xhci->dev)); | ||
| 88 | phy_remove_lookup(dwc->usb3_generic_phy, "usb3-phy", | ||
| 89 | dev_name(&dwc->xhci->dev)); | ||
| 80 | platform_device_unregister(dwc->xhci); | 90 | platform_device_unregister(dwc->xhci); |
| 81 | } | 91 | } |
