mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 16:46:15 -04:00
qcacmn: Request runtime PM resume after receiving WAKE MSI
For PCIe DRV (L1SS sleep) suspend, firmware will trigger a WAKE MSI to wake up host so that request runtime PM resume for this case. Change-Id: I959d3b1053b7aef5fe80889553958cf9394c8c38 CRs-fixed: 2450284
This commit is contained in:
parent
94395f626b
commit
2bdc2baea6
3 changed files with 16 additions and 0 deletions
|
|
@ -744,6 +744,7 @@ void hif_clear_stats(struct hif_opaque_softc *hif_ctx);
|
|||
#ifdef FEATURE_RUNTIME_PM
|
||||
struct hif_pm_runtime_lock;
|
||||
void hif_fastpath_resume(struct hif_opaque_softc *hif_ctx);
|
||||
int hif_pm_runtime_request_resume(struct hif_opaque_softc *hif_ctx);
|
||||
int hif_pm_runtime_get(struct hif_opaque_softc *hif_ctx);
|
||||
void hif_pm_runtime_get_noresume(struct hif_opaque_softc *hif_ctx);
|
||||
int hif_pm_runtime_put(struct hif_opaque_softc *hif_ctx);
|
||||
|
|
@ -761,6 +762,9 @@ struct hif_pm_runtime_lock {
|
|||
const char *name;
|
||||
};
|
||||
static inline void hif_fastpath_resume(struct hif_opaque_softc *hif_ctx) {}
|
||||
static inline int
|
||||
hif_pm_runtime_request_resume(struct hif_opaque_softc *hif_ctx)
|
||||
{ return 0; }
|
||||
static inline void hif_pm_runtime_get_noresume(struct hif_opaque_softc *hif_ctx)
|
||||
{}
|
||||
|
||||
|
|
|
|||
|
|
@ -1265,12 +1265,15 @@ irqreturn_t hif_wake_interrupt_handler(int irq, void *context)
|
|||
irqreturn_t hif_wake_interrupt_handler(int irq, void *context)
|
||||
{
|
||||
struct hif_softc *scn = context;
|
||||
struct hif_opaque_softc *hif_ctx = GET_HIF_OPAQUE_HDL(scn);
|
||||
|
||||
HIF_INFO("wake interrupt received on irq %d", irq);
|
||||
|
||||
if (scn->initial_wakeup_cb)
|
||||
scn->initial_wakeup_cb(scn->initial_wakeup_priv);
|
||||
|
||||
hif_pm_runtime_request_resume(hif_ctx);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
#endif /* WLAN_SUSPEND_RESUME_TEST */
|
||||
|
|
|
|||
|
|
@ -3858,6 +3858,15 @@ void hif_pci_irq_disable(struct hif_softc *scn, int ce_id)
|
|||
}
|
||||
|
||||
#ifdef FEATURE_RUNTIME_PM
|
||||
int hif_pm_runtime_request_resume(struct hif_opaque_softc *hif_ctx)
|
||||
{
|
||||
struct hif_pci_softc *sc = HIF_GET_PCI_SOFTC(hif_ctx);
|
||||
|
||||
if (!sc)
|
||||
return -EINVAL;
|
||||
|
||||
return hif_pm_request_resume(sc->dev);
|
||||
}
|
||||
|
||||
void hif_pm_runtime_get_noresume(struct hif_opaque_softc *hif_ctx)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue