Commit ad70f937 authored by Martin Blumenstingl's avatar Martin Blumenstingl Committed by Greg Kroah-Hartman
Browse files

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: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Tested-by: default avatarNeil Armstrong <narmstrong@baylibre.con>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1255dfd1
Loading
Loading
Loading
Loading
+0 −37
Original line number Original line Diff line number Diff line
@@ -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) {
	if (!hcd->skip_phy_initialization) {
		hcd->phy_roothub = usb_phy_roothub_init(hcd->self.sysdev);
		hcd->phy_roothub = usb_phy_roothub_init(hcd->self.sysdev);
		if (IS_ERR(hcd->phy_roothub)) {
		if (IS_ERR(hcd->phy_roothub)) {
@@ -2961,13 +2937,6 @@ err_create_buf:
err_usb_phy_roothub_power_on:
err_usb_phy_roothub_power_on:
	usb_phy_roothub_exit(hcd->phy_roothub);
	usb_phy_roothub_exit(hcd->phy_roothub);
err_phy_roothub_init:
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) {
	if (hcd->remove_phy && hcd->usb_phy) {
		usb_phy_shutdown(hcd->usb_phy);
		usb_phy_shutdown(hcd->usb_phy);
		usb_put_phy(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_power_off(hcd->phy_roothub);
	usb_phy_roothub_exit(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) {
	if (hcd->remove_phy && hcd->usb_phy) {
		usb_phy_shutdown(hcd->usb_phy);
		usb_phy_shutdown(hcd->usb_phy);
		usb_put_phy(hcd->usb_phy);
		usb_put_phy(hcd->usb_phy);
+0 −1
Original line number Original line Diff line number Diff line
@@ -103,7 +103,6 @@ struct usb_hcd {
	 * other external phys should be software-transparent
	 * other external phys should be software-transparent
	 */
	 */
	struct usb_phy		*usb_phy;
	struct usb_phy		*usb_phy;
	struct phy		*phy;
	struct usb_phy_roothub	*phy_roothub;
	struct usb_phy_roothub	*phy_roothub;


	/* Flags that need to be manipulated atomically because they can
	/* Flags that need to be manipulated atomically because they can