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> Tested-by: Neil Armstrong <narmstrong@baylibre.con> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1255dfd187
commit
ad70f937e9
|
@ -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 @@ err_create_buf:
|
|||
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);
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue