92 lines
2.8 KiB
Diff
92 lines
2.8 KiB
Diff
From 55da645e4bbc71118f9f2fb726d19d631b25ef6b Mon Sep 17 00:00:00 2001
|
|
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
|
Date: Sat, 3 Mar 2018 22:43:09 +0100
|
|
Subject: [PATCH] usb: core: hcd: remove support for initializing a single PHY
|
|
|
|
With the new PHY wrapper in place we can now handle multiple PHYs.
|
|
Remove the code which handles only one generic PHY as this is now
|
|
covered (with support for multiple PHYs as well as suspend/resume
|
|
support) by the new PHY wrapper.
|
|
|
|
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
|
|
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
|
---
|
|
drivers/usb/core/hcd.c | 37 -------------------------------------
|
|
include/linux/usb/hcd.h | 1 -
|
|
2 files changed, 38 deletions(-)
|
|
|
|
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
|
|
index 32797c2..5a92d8f 100644
|
|
--- a/drivers/usb/core/hcd.c
|
|
+++ b/drivers/usb/core/hcd.c
|
|
@@ -2757,30 +2757,6 @@ int usb_add_hcd(struct usb_hcd *hcd,
|
|
}
|
|
}
|
|
|
|
- if (IS_ENABLED(CONFIG_GENERIC_PHY) && !hcd->skip_phy_initialization) {
|
|
- struct phy *phy = phy_get(hcd->self.sysdev, "usb");
|
|
-
|
|
- if (IS_ERR(phy)) {
|
|
- retval = PTR_ERR(phy);
|
|
- if (retval == -EPROBE_DEFER)
|
|
- goto err_phy;
|
|
- } else {
|
|
- retval = phy_init(phy);
|
|
- if (retval) {
|
|
- phy_put(phy);
|
|
- goto err_phy;
|
|
- }
|
|
- retval = phy_power_on(phy);
|
|
- if (retval) {
|
|
- phy_exit(phy);
|
|
- phy_put(phy);
|
|
- goto err_phy;
|
|
- }
|
|
- hcd->phy = phy;
|
|
- hcd->remove_phy = 1;
|
|
- }
|
|
- }
|
|
-
|
|
if (!hcd->skip_phy_initialization) {
|
|
hcd->phy_roothub = usb_phy_roothub_init(hcd->self.sysdev);
|
|
if (IS_ERR(hcd->phy_roothub)) {
|
|
@@ -2961,13 +2937,6 @@ int usb_add_hcd(struct usb_hcd *hcd,
|
|
err_usb_phy_roothub_power_on:
|
|
usb_phy_roothub_exit(hcd->phy_roothub);
|
|
err_phy_roothub_init:
|
|
- if (IS_ENABLED(CONFIG_GENERIC_PHY) && hcd->remove_phy && hcd->phy) {
|
|
- phy_power_off(hcd->phy);
|
|
- phy_exit(hcd->phy);
|
|
- phy_put(hcd->phy);
|
|
- hcd->phy = NULL;
|
|
- }
|
|
-err_phy:
|
|
if (hcd->remove_phy && hcd->usb_phy) {
|
|
usb_phy_shutdown(hcd->usb_phy);
|
|
usb_put_phy(hcd->usb_phy);
|
|
@@ -3048,12 +3017,6 @@ void usb_remove_hcd(struct usb_hcd *hcd)
|
|
usb_phy_roothub_power_off(hcd->phy_roothub);
|
|
usb_phy_roothub_exit(hcd->phy_roothub);
|
|
|
|
- if (IS_ENABLED(CONFIG_GENERIC_PHY) && hcd->remove_phy && hcd->phy) {
|
|
- phy_power_off(hcd->phy);
|
|
- phy_exit(hcd->phy);
|
|
- phy_put(hcd->phy);
|
|
- hcd->phy = NULL;
|
|
- }
|
|
if (hcd->remove_phy && hcd->usb_phy) {
|
|
usb_phy_shutdown(hcd->usb_phy);
|
|
usb_put_phy(hcd->usb_phy);
|
|
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
|
|
index a042675..aef50cb 100644
|
|
--- a/include/linux/usb/hcd.h
|
|
+++ b/include/linux/usb/hcd.h
|
|
@@ -103,7 +103,6 @@ struct usb_hcd {
|
|
* other external phys should be software-transparent
|
|
*/
|
|
struct usb_phy *usb_phy;
|
|
- struct phy *phy;
|
|
struct usb_phy_roothub *phy_roothub;
|
|
|
|
/* Flags that need to be manipulated atomically because they can
|