Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da67ca60 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: dwc3: Set GUSB3PIPECTL_SUSPHY only after connection"

parents 92796e9c 3bd74226
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -102,12 +102,6 @@ void dwc3_set_mode(struct dwc3 *dwc, u32 mode)
			dwc3_writel(dwc->regs, DWC3_GFLADJ, reg);
		}
	}

	if (!dwc->ssphy_clear_auto_suspend_on_disconnect) {
		reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0));
		reg |= DWC3_GUSB3PIPECTL_SUSPHY;
		dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg);
	}
}

/**
+4 −6
Original line number Diff line number Diff line
@@ -98,8 +98,6 @@ static int dwc3_otg_start_host(struct usb_otg *otg, int on)
			return ret;
		}

		if (dwc->ssphy_clear_auto_suspend_on_disconnect)
			dwc3_gadget_usb3_phy_suspend(dwc, true);
		dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_HOST);

		/*
@@ -126,6 +124,8 @@ static int dwc3_otg_start_host(struct usb_otg *otg, int on)
		/* re-init OTG EVTEN register as XHCI reset clears it */
		if (ext_xceiv && !ext_xceiv->otg_capability)
			dwc3_otg_reset(dotg);

		dwc3_gadget_usb3_phy_suspend(dwc, true);
	} else {
		dev_dbg(otg->phy->dev, "%s: turn off host\n", __func__);

@@ -151,7 +151,6 @@ static int dwc3_otg_start_host(struct usb_otg *otg, int on)
						ext_xceiv->ext_block_reset)
			ext_xceiv->ext_block_reset(ext_xceiv, true);

		if (dwc->ssphy_clear_auto_suspend_on_disconnect)
		dwc3_gadget_usb3_phy_suspend(dwc, false);
		dwc3_set_mode(dwc, DWC3_GCTL_PRTCAP_DEVICE);

@@ -233,7 +232,6 @@ static int dwc3_otg_start_peripheral(struct usb_otg *otg, int on)
		usb_gadget_vbus_disconnect(otg->gadget);
		usb_phy_notify_disconnect(dotg->dwc->usb2_phy, USB_SPEED_HIGH);
		usb_phy_notify_disconnect(dotg->dwc->usb3_phy, USB_SPEED_SUPER);
		if (dotg->dwc->ssphy_clear_auto_suspend_on_disconnect)
		dwc3_gadget_usb3_phy_suspend(dotg->dwc, false);
	}

+2 −16
Original line number Diff line number Diff line
@@ -2156,11 +2156,6 @@ static int __dwc3_gadget_start(struct dwc3 *dwc)
/* Required gadget re-initialization before switching to gadget in OTG mode */
void dwc3_gadget_restart(struct dwc3 *dwc)
{
	/* automatic phy suspend only on recent versions */
	if (dwc->revision >= DWC3_REVISION_194A &&
			!dwc->ssphy_clear_auto_suspend_on_disconnect)
		dwc3_gadget_usb3_phy_suspend(dwc, true);

	__dwc3_gadget_start(dwc);
}

@@ -2922,8 +2917,6 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc)
	/* after reset -> Default State */
	usb_gadget_set_state(&dwc->gadget, USB_STATE_DEFAULT);

	if (dwc->revision < DWC3_REVISION_194A ||
			dwc->ssphy_clear_auto_suspend_on_disconnect)
	dwc3_gadget_usb3_phy_suspend(dwc, false);

	if (dotg && dotg->otg.phy)
@@ -3042,9 +3035,7 @@ static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc)
		dwc3_writel(dwc->regs, DWC3_DCTL, reg);
	}

	/* Recent versions support automatic phy suspend and don't need this */
	if (dwc->revision < DWC3_REVISION_194A &&
			dwc->gadget.speed != USB_SPEED_SUPER)
	if (dwc->gadget.speed != USB_SPEED_SUPER)
		/* Suspend unneeded PHY */
		dwc3_gadget_usb3_phy_suspend(dwc, true);

@@ -3591,11 +3582,6 @@ int dwc3_gadget_init(struct dwc3 *dwc)
	reg |= DWC3_DCFG_LPM_CAP;
	dwc3_writel(dwc->regs, DWC3_DCFG, reg);

	/* Enable automatic phy suspend only on recent versions */
	if (dwc->revision >= DWC3_REVISION_194A &&
			!dwc->ssphy_clear_auto_suspend_on_disconnect)
		dwc3_gadget_usb3_phy_suspend(dwc, true);

	ret = usb_add_gadget_udc(dwc->dev, &dwc->gadget);
	if (ret) {
		dev_err(dwc->dev, "failed to register udc\n");