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

Commit 64c677c9 authored by Tony Truong's avatar Tony Truong Committed by Gerrit - the friendly Code Review server
Browse files

msm: pcie: disable PCIe CLKREQ override during PCIe DRV resume



It's possible that other subsystems did not properly disable
PCIe CLKREQ override when handing back the link to APPS. During
DRV resume, always disable PCIe CLKREQ override for APPS.

Change-Id: I4a522d81e9a6df7e6371f86b478e02e7b2034935
Signed-off-by: default avatarTony Truong <truong@codeaurora.org>
parent e4b28fed
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -67,6 +67,10 @@
#define PCIE20_PARF_L1SUB_AHB_CLK_MAX_TIMER (0x180)
#define PCIE20_PARF_DEBUG_INT_EN (0x190)

#define PCIE20_PARF_CLKREQ_OVERRIDE (0x2b0)
#define PCIE20_PARF_CLKREQ_IN_VALUE (BIT(3))
#define PCIE20_PARF_CLKREQ_IN_ENABLE (BIT(1))

#define PCIE20_ELBI_SYS_CTRL (0x04)
#define PCIE20_ELBI_SYS_STTS (0x08)

@@ -7161,6 +7165,14 @@ static int msm_pcie_drv_resume(struct msm_pcie_dev_t *pcie_dev)
		}
	}

	/* always ungate clkreq */
	msm_pcie_write_reg_field(pcie_dev->parf,
				PCIE20_PARF_CLKREQ_OVERRIDE,
				PCIE20_PARF_CLKREQ_IN_ENABLE, 0);
	msm_pcie_write_reg_field(pcie_dev->parf,
				PCIE20_PARF_CLKREQ_OVERRIDE,
				PCIE20_PARF_CLKREQ_IN_VALUE, 0);

	pcie_dev->user_suspend = false;
	spin_lock_irq(&pcie_dev->cfg_lock);
	pcie_dev->cfg_access = true;