Browse Source

qcacld-3.0: Increase WMA_STA_WOW_DEFAULT_PTRN_MAX to 5

qcacld-2.0 to qcacld-3.0 propagation

The problem with the existing code is:
* WMA_STA_WOW_DEFAULT_PTRN_MAX is set to 4 and in wma_wow_sta()
  we make sure atleast WMA_STA_WOW_DEFAULT_PTRN_MAX free slots are
  available before configuring the default wow pattern. But after this
  check we are actually configuring 5 default wow patterns.
* If BPF is enabled, we are limiting the Max WoW patterns to 2,
  because the free slots are 2 which is less than the expected default
  free slots WMA_STA_WOW_DEFAULT_PTRN_MAX. we are not configuring
  default STA mode wow pattern and hence no wakeups observed for
  incoming packets.
Address this issue by changing the WMA_STA_WOW_DEFAULT_PTRN_MAX to 5 and
MAX WoW filters to WMA_STA_WOW_DEFAULT_PTRN_MAX if BPF is enabled.

Change-Id: If433cff18ce511e7fdffadff69ee13b762a1719b
CRs-Fixed: 973054
Arun Khandavalli 8 years ago
parent
commit
d454d42793
4 changed files with 8 additions and 5 deletions
  1. 6 1
      core/hdd/src/wlan_hdd_main.c
  2. 1 1
      core/wma/inc/wma.h
  3. 0 2
      core/wma/inc/wma_types.h
  4. 1 1
      core/wma/src/wma_main.c

+ 6 - 1
core/hdd/src/wlan_hdd_main.c

@@ -1497,8 +1497,13 @@ void hdd_update_tgt_cfg(void *context, void *param)
 	hdd_ctx->bpf_enabled = (cfg->bpf_enabled &&
 				hdd_ctx->config->bpf_packet_filter_enable);
 
+	/*
+	 * If BPF is enabled, maxWowFilters set to WMA_STA_WOW_DEFAULT_PTRN_MAX
+	 * because we need atleast WMA_STA_WOW_DEFAULT_PTRN_MAX free slots to
+	 * configure the STA mode wow pattern.
+	 */
 	if (hdd_ctx->bpf_enabled)
-		hdd_ctx->config->maxWoWFilters = MAX_WOW_FILTERS;
+		hdd_ctx->config->maxWoWFilters = WMA_STA_WOW_DEFAULT_PTRN_MAX;
 
 	/* Configure NAN datapath features */
 	hdd_nan_datapath_target_config(hdd_ctx, cfg);

+ 1 - 1
core/wma/inc/wma.h

@@ -243,7 +243,7 @@ enum ds_mode {
 #define WMA_NUM_BITS_IN_BYTE           8
 
 #define WMA_AP_WOW_DEFAULT_PTRN_MAX    4
-#define WMA_STA_WOW_DEFAULT_PTRN_MAX   4
+#define WMA_STA_WOW_DEFAULT_PTRN_MAX   5
 
 #define WMA_BSS_STATUS_STARTED 0x1
 #define WMA_BSS_STATUS_STOPPED 0x2

+ 0 - 2
core/wma/inc/wma_types.h

@@ -475,8 +475,6 @@
 /* Bit 6 will be used to control BD rate for Management frames */
 #define HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME 0x40
 
-#define MAX_WOW_FILTERS 2
-
 #define wma_tx_frame(hHal, pFrmBuf, frmLen, frmType, txDir, tid, pCompFunc, \
 		   pData, txFlag, sessionid, channel_freq) \
 	(QDF_STATUS)( wma_tx_packet( \

+ 1 - 1
core/wma/src/wma_main.c

@@ -3324,7 +3324,7 @@ static void wma_update_fw_config(tp_wma_handle wma_handle,
 	if (WMI_SERVICE_IS_ENABLED(wma_handle->wmi_service_bitmap,
 				   WMI_SERVICE_BPF_OFFLOAD))
 		tgt_cap->wlan_resource_config.num_wow_filters =
-					MAX_WOW_FILTERS;
+					WMA_STA_WOW_DEFAULT_PTRN_MAX;
 }
 
 /**