Loading drivers/platform/msm/ep_pcie/ep_pcie_core.c +18 −0 Original line number Diff line number Diff line Loading @@ -1661,6 +1661,13 @@ int ep_pcie_core_disable_endpoint(void) ep_pcie_vreg_deinit(dev); out: mutex_unlock(&dev->setup_mtx); if (atomic_read(&dev->ep_pcie_dev_wake)) { EP_PCIE_DBG(dev, "PCIe V%d: Released wakelock\n", dev->rev); atomic_set(&dev->ep_pcie_dev_wake, 0); pm_relax(&dev->pdev->dev); } return rc; } Loading Loading @@ -1971,6 +1978,17 @@ static irqreturn_t ep_pcie_handle_perst_irq(int irq, void *data) "PCIe V%d: No. %ld PERST assertion.\n", dev->rev, dev->perst_ast_counter); if (dev->in_d3hot_sleep) { /* * Perst was asserted when device was in d3hot sleep, * disable clkreq irq */ EP_PCIE_DBG(dev, "PCIe V%d: Disable clkreq irq\n", dev->rev); disable_irq_nosync(clkreq_irq); dev->in_d3hot_sleep = false; } if (dev->client_ready) { ep_pcie_notify_event(dev, EP_PCIE_EVENT_PM_D3_COLD); } else { Loading Loading
drivers/platform/msm/ep_pcie/ep_pcie_core.c +18 −0 Original line number Diff line number Diff line Loading @@ -1661,6 +1661,13 @@ int ep_pcie_core_disable_endpoint(void) ep_pcie_vreg_deinit(dev); out: mutex_unlock(&dev->setup_mtx); if (atomic_read(&dev->ep_pcie_dev_wake)) { EP_PCIE_DBG(dev, "PCIe V%d: Released wakelock\n", dev->rev); atomic_set(&dev->ep_pcie_dev_wake, 0); pm_relax(&dev->pdev->dev); } return rc; } Loading Loading @@ -1971,6 +1978,17 @@ static irqreturn_t ep_pcie_handle_perst_irq(int irq, void *data) "PCIe V%d: No. %ld PERST assertion.\n", dev->rev, dev->perst_ast_counter); if (dev->in_d3hot_sleep) { /* * Perst was asserted when device was in d3hot sleep, * disable clkreq irq */ EP_PCIE_DBG(dev, "PCIe V%d: Disable clkreq irq\n", dev->rev); disable_irq_nosync(clkreq_irq); dev->in_d3hot_sleep = false; } if (dev->client_ready) { ep_pcie_notify_event(dev, EP_PCIE_EVENT_PM_D3_COLD); } else { Loading