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

Commit 730229e1 authored by Ajay Agarwal's avatar Ajay Agarwal
Browse files

usb: dwc3: Disable parkmode for Gen1 controllers



Disable parkmode for Gen1 controllers to fix the data stall issue
in host mode.

Change-Id: I28694a533543b14f752e195b722aafcb83cc4f1d
Signed-off-by: default avatarAjay Agarwal <ajaya@codeaurora.org>
parent 5974d512
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -889,6 +889,17 @@ int dwc3_core_init(struct dwc3 *dwc)
		if (dwc->dis_tx_ipgap_linecheck_quirk)
			reg |= DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS;

		/*
		 * STAR: 9001415732: Host failure when Park mode is enabled:
		 * Disable parkmode for Gen1 controllers to fix the stall
		 * seen during host mode transfers on multiple endpoints.
		 */
		if (!dwc3_is_usb31(dwc)) {
			reg |= DWC3_GUCTL1_PARKMODE_DISABLE_SS;
			reg |= DWC3_GUCTL1_PARKMODE_DISABLE_HS;
			reg |= DWC3_GUCTL1_PARKMODE_DISABLE_FSLS;
		}

		dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
	}

+3 −0
Original line number Diff line number Diff line
@@ -223,6 +223,9 @@
#define DWC3_GUCTL1_TX_IPGAP_LINECHECK_DIS	BIT(28)
#define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW	BIT(24)
#define DWC3_GUCTL1_IP_GAP_ADD_ON(n)	(n << 21)
#define DWC3_GUCTL1_PARKMODE_DISABLE_SS	BIT(17)
#define DWC3_GUCTL1_PARKMODE_DISABLE_HS	BIT(16)
#define DWC3_GUCTL1_PARKMODE_DISABLE_FSLS	BIT(15)

/* Global Debug LTSSM Register */
#define DWC3_GDBGLTSSM_LINKSTATE_MASK	(0xF << 22)