msm: ep-pcie: Allow device enter L1 right after BME is set
Allow device enter L1, i.e. clear PCIE_0_PCIE_PARF_PM_CTRL[REQ_NOT_ENTR_L1] once we find out BME is set. Change-Id: I8aca816446a286d02ef51724d157cb7c75057250 Signed-off-by: Can Guo <cang@codeaurora.org>
This commit is contained in:
parent
9eb990d0a9
commit
0aae96cfb3
@ -659,10 +659,6 @@ static void ep_pcie_core_init(struct ep_pcie_dev_t *dev, bool configured)
|
||||
PCIE20_LINK_CONTROL2_LINK_STATUS2,
|
||||
0xf, dev->link_speed);
|
||||
|
||||
EP_PCIE_DBG2(dev, "PCIe V%d: Allow L1 after D3_COLD->D0\n",
|
||||
dev->rev);
|
||||
ep_pcie_write_mask(dev->parf + PCIE20_PARF_PM_CTRL, BIT(5), 0);
|
||||
|
||||
EP_PCIE_DBG2(dev, "PCIe V%d: Clear disconn_req after D3_COLD\n",
|
||||
dev->rev);
|
||||
if (!dev->tcsr_not_supported) {
|
||||
@ -1982,6 +1978,11 @@ int ep_pcie_core_enable_endpoint(enum ep_pcie_options opt)
|
||||
dev->rev, retries,
|
||||
BME_TIMEOUT_US_MIN * retries / 1000);
|
||||
ep_pcie_enumeration_complete(dev);
|
||||
|
||||
EP_PCIE_DBG2(dev, "PCIe V%d: Allow L1 after BME is set\n",
|
||||
dev->rev);
|
||||
ep_pcie_write_mask(dev->parf + PCIE20_PARF_PM_CTRL, BIT(5), 0);
|
||||
|
||||
/* expose BAR to user space to identify modem */
|
||||
ep_pcie_bar0_address =
|
||||
readl_relaxed(dev->dm_core + PCIE20_BAR0);
|
||||
@ -2157,6 +2158,10 @@ static irqreturn_t ep_pcie_handle_bme_irq(int irq, void *data)
|
||||
dev->rev);
|
||||
ep_pcie_notify_event(dev, EP_PCIE_EVENT_LINKUP);
|
||||
}
|
||||
|
||||
EP_PCIE_DBG2(dev, "PCIe V%d: Allow L1 after BME is set\n",
|
||||
dev->rev);
|
||||
ep_pcie_write_mask(dev->parf + PCIE20_PARF_PM_CTRL, BIT(5), 0);
|
||||
} else {
|
||||
EP_PCIE_DBG(dev,
|
||||
"PCIe V%d:BME is still disabled\n", dev->rev);
|
||||
|
Loading…
Reference in New Issue
Block a user