Просмотр исходного кода

qcacld-3.0: Enable Force wake

Enable Force wake feature through Kbuild
to access address range greater than BAR+4K
at runtime.

Change-Id: Ibe3c3b9b765c256493b1d5f9258e462760d45dc6
CRs-Fixed: 2557978
Venkata Sharath Chandra Manchala 5 лет назад
Родитель
Сommit
06f1f1225b

+ 1 - 1
Kbuild

@@ -2638,7 +2638,7 @@ cppflags-$(CONFIG_ENABLE_DEBUG_ADDRESS_MARKING) += -DENABLE_DEBUG_ADDRESS_MARKIN
 cppflags-$(CONFIG_FEATURE_TSO) += -DFEATURE_TSO
 cppflags-$(CONFIG_FEATURE_TSO_DEBUG) += -DFEATURE_TSO_DEBUG
 cppflags-$(CONFIG_FEATURE_TSO_STATS) += -DFEATURE_TSO_STATS
-
+cppflags-$(CONFIG_FEATURE_FORCE_WAKE) += -DFORCE_WAKE
 cppflags-$(CONFIG_WLAN_LRO) += -DFEATURE_LRO
 
 cppflags-$(CONFIG_FEATURE_AP_MCC_CH_AVOIDANCE) += -DFEATURE_AP_MCC_CH_AVOIDANCE

+ 1 - 0
configs/default_defconfig

@@ -413,6 +413,7 @@ CONFIG_DP_INTR_POLL_BASED := y
 CONFIG_TX_PER_PDEV_DESC_POOL := y
 CONFIG_DP_TRACE := y
 CONFIG_FEATURE_TSO := y
+CONFIG_FEATURE_FORCE_WAKE := y
 CONFIG_DP_LFR := y
 CONFIG_DUP_RX_DESC_WAR := y
 CONFIG_HTT_PADDR64 := y

+ 18 - 0
core/hdd/inc/wlan_hdd_driver_ops.h

@@ -137,4 +137,22 @@ int hdd_soc_idle_restart_lock(struct device *dev);
  */
 void hdd_soc_idle_restart_unlock(void);
 
+#ifdef FORCE_WAKE
+/**
+ * hdd_set_hif_init_phase() - Enable/disable the
+ * init_phase flag
+ * @hif_ctx: hif opaque handle
+ * @hal_init_phase: init phase flag
+ *
+ * Return: None
+ */
+void hdd_set_hif_init_phase(struct hif_opaque_softc *hif_ctx,
+			    bool init_phase);
+#else
+static inline
+void hdd_set_hif_init_phase(struct hif_opaque_softc *hif_ctx,
+			    bool init_phase)
+{
+}
+#endif /* FORCE_WAKE */
 #endif /* __WLAN_HDD_DRIVER_OPS_H__ */

+ 8 - 0
core/hdd/src/wlan_hdd_driver_ops.c

@@ -152,6 +152,14 @@ static void hdd_hif_init_driver_state_callbacks(void *data,
 	cbk->is_target_ready = hdd_is_target_ready;
 }
 
+#ifdef FORCE_WAKE
+void hdd_set_hif_init_phase(struct hif_opaque_softc *hif_ctx,
+			    bool hal_init_phase)
+{
+	hif_srng_init_phase(hif_ctx, hal_init_phase);
+}
+#endif /* FORCE_WAKE */
+
 /**
  * hdd_hif_set_attribute() - API to set CE attribute if memory is limited
  * @hif_ctx: hif context

+ 2 - 0
core/hdd/src/wlan_hdd_main.c

@@ -3334,6 +3334,8 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx, bool reinit)
 
 		wlan_hdd_init_tx_rx_histogram(hdd_ctx);
 
+		hdd_set_hif_init_phase(hif_ctx, false);
+
 		break;
 
 	default: