Ver código fonte

qcacmn: Resume fastpath DP in correct place for runtime PM

Fastpath DP should be resumed after WOW is disabled from FW. Move
it to correct place.

Change-Id: I9108ee4393cc4ee5f8a232c3de14d68b47aa760e
CRs-fixed: 2023358
Yue Ma 8 anos atrás
pai
commit
9c6f84da99
3 arquivos alterados com 5 adições e 8 exclusões
  1. 2 1
      hif/inc/hif.h
  2. 1 7
      hif/src/pcie/if_pci.c
  3. 2 0
      htc/htc_send.c

+ 2 - 1
hif/inc/hif.h

@@ -652,6 +652,7 @@ void hif_display_stats(struct hif_opaque_softc *hif_ctx);
 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_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);
@@ -668,7 +669,7 @@ int hif_pm_runtime_prevent_suspend_timeout(struct hif_opaque_softc *ol_sc,
 struct hif_pm_runtime_lock {
 	const char *name;
 };
-
+static inline void hif_fastpath_resume(struct hif_opaque_softc *hif_ctx) {}
 static inline void hif_pm_runtime_get_noresume(struct hif_opaque_softc *hif_ctx)
 {}
 

+ 1 - 7
hif/src/pcie/if_pci.c

@@ -3114,7 +3114,6 @@ bus_resume:
 	return errno;
 }
 
-#ifdef WLAN_FEATURE_FASTPATH
 /**
  * hif_fastpath_resume() - resume fastpath for runtimepm
  *
@@ -3122,7 +3121,7 @@ bus_resume:
  * since runtime pm may cause ce_send_fast to skip the register
  * write.
  */
-static void hif_fastpath_resume(struct hif_opaque_softc *hif_ctx)
+void hif_fastpath_resume(struct hif_opaque_softc *hif_ctx)
 {
 	struct hif_softc *scn = HIF_GET_SOFTC(hif_ctx);
 	struct CE_state *ce_state;
@@ -3144,9 +3143,6 @@ static void hif_fastpath_resume(struct hif_opaque_softc *hif_ctx)
 		Q_TARGET_ACCESS_END(scn);
 	}
 }
-#else
-static void hif_fastpath_resume(struct hif_opaque_softc *hif_ctx) {}
-#endif
 
 /**
  * hif_runtime_resume() - do the bus resume part of a runtime resume
@@ -3160,8 +3156,6 @@ int hif_runtime_resume(struct hif_opaque_softc *hif_ctx)
 	QDF_BUG(!hif_bus_resume_noirq(hif_ctx));
 	QDF_BUG(!hif_apps_irqs_enable(hif_ctx));
 	QDF_BUG(!hif_bus_resume(hif_ctx));
-	hif_fastpath_resume(hif_ctx);
-
 	return 0;
 }
 #endif /* #ifdef FEATURE_RUNTIME_PM */

+ 2 - 0
htc/htc_send.c

@@ -2009,6 +2009,8 @@ void htc_kick_queues(void *context)
 
 		htc_try_send(target, endpoint, NULL);
 	}
+
+	hif_fastpath_resume(target->hif_dev);
 }
 #endif