aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/controller/pcie-cadence.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/controller/pcie-cadence.c')
-rw-r--r--drivers/pci/controller/pcie-cadence.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/drivers/pci/controller/pcie-cadence.c b/drivers/pci/controller/pcie-cadence.c
index 2edc12661e44..86f1b002c846 100644
--- a/drivers/pci/controller/pcie-cadence.c
+++ b/drivers/pci/controller/pcie-cadence.c
@@ -217,3 +217,33 @@ err_link:
217 217
218 return ret; 218 return ret;
219} 219}
220
221#ifdef CONFIG_PM_SLEEP
222static int cdns_pcie_suspend_noirq(struct device *dev)
223{
224 struct cdns_pcie *pcie = dev_get_drvdata(dev);
225
226 cdns_pcie_disable_phy(pcie);
227
228 return 0;
229}
230
231static int cdns_pcie_resume_noirq(struct device *dev)
232{
233 struct cdns_pcie *pcie = dev_get_drvdata(dev);
234 int ret;
235
236 ret = cdns_pcie_enable_phy(pcie);
237 if (ret) {
238 dev_err(dev, "failed to enable phy\n");
239 return ret;
240 }
241
242 return 0;
243}
244#endif
245
246const struct dev_pm_ops cdns_pcie_pm_ops = {
247 SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(cdns_pcie_suspend_noirq,
248 cdns_pcie_resume_noirq)
249};