Request runtime PM resume in platform driver as soon as shutdown
happens. This can make sure device is resumed while shutdown is
proceeding.
Change-Id: I0aa15b9713347288f4954bd767ec9243d22153ed
CRs-fixed:
2124999
Signed-off-by: Yue Ma <yuem@codeaurora.org>
if (!pci_priv)
return -ENODEV;
+ cnss_pm_request_resume(pci_priv);
+
cnss_driver_call_remove(plat_priv);
cnss_request_bus_bandwidth(CNSS_BUS_WIDTH_NONE);
if (!pci_priv)
return -ENODEV;
+ cnss_pm_request_resume(pci_priv);
+
cnss_driver_call_remove(plat_priv);
cnss_request_bus_bandwidth(CNSS_BUS_WIDTH_NONE);
}
EXPORT_SYMBOL(cnss_auto_resume);
+int cnss_pm_request_resume(struct cnss_pci_data *pci_priv)
+{
+ struct pci_dev *pci_dev;
+
+ if (!pci_priv)
+ return -ENODEV;
+
+ pci_dev = pci_priv->pci_dev;
+ if (!pci_dev)
+ return -ENODEV;
+
+ return pm_request_resume(&pci_dev->dev);
+}
+
int cnss_pci_alloc_fw_mem(struct cnss_pci_data *pci_priv)
{
struct cnss_plat_data *plat_priv = pci_priv->plat_priv;
void cnss_pci_stop_mhi(struct cnss_pci_data *pci_priv);
void cnss_pci_collect_dump_info(struct cnss_pci_data *pci_priv);
void cnss_pci_clear_dump_info(struct cnss_pci_data *pci_priv);
+int cnss_pm_request_resume(struct cnss_pci_data *pci_priv);
#endif /* _CNSS_PCI_H */