Browse Source

qcacld-3.0: Drop measurement pilot public action frame

Measurement pilot public action frame (Action Id = 7) is not
handled in the driver, if the AP is sending this action frame
it ends up waking up the APPS and burn battery.

Since anyway host is not handling this action frame, configure
the firmware to drop this action frame.

Change-Id: I15327f9af8cccaa7324e4e39f1e6336225740b75
CRs-Fixed: 2146506
Srinivas Girigowda 7 years ago
parent
commit
244c3f631e

+ 16 - 0
components/pmo/core/src/wlan_pmo_static_config.c

@@ -377,6 +377,19 @@ static void set_action_id_drop_pattern_for_spec_mgmt(
 				= DROP_SPEC_MGMT_ACTION_FRAME_BITMAP;
 }
 
+/**
+ * set_action_id_drop_pattern_for_public_action() - Set action id of action
+ * frames for public action frames to be droppped in fw.
+ *
+ * @action_id_per_category: Pointer to action id bitmaps.
+ */
+static void set_action_id_drop_pattern_for_public_action(
+					uint32_t *action_id_per_category)
+{
+	action_id_per_category[PMO_MAC_ACTION_PUBLIC_USAGE]
+				= DROP_PUBLIC_ACTION_FRAME_BITMAP;
+}
+
 void pmo_register_action_frame_patterns(struct wlan_objmgr_vdev *vdev)
 {
 
@@ -397,6 +410,7 @@ void pmo_register_action_frame_patterns(struct wlan_objmgr_vdev *vdev)
 	cmd.action_category_map[i++] = ALLOWED_ACTION_FRAMES_BITMAP7;
 
 	set_action_id_drop_pattern_for_spec_mgmt(cmd.action_per_category);
+	set_action_id_drop_pattern_for_public_action(cmd.action_per_category);
 
 	for (i = 0; i < PMO_SUPPORTED_ACTION_CATE_ELE_LIST; i++) {
 		if (i < ALLOWED_ACTION_FRAME_MAP_WORDS)
@@ -408,6 +422,8 @@ void pmo_register_action_frame_patterns(struct wlan_objmgr_vdev *vdev)
 
 	pmo_debug("Spectrum mgmt action id drop bitmap: 0x%x",
 			cmd.action_per_category[PMO_MAC_ACTION_SPECTRUM_MGMT]);
+	pmo_debug("Public action id drop bitmap: 0x%x",
+			cmd.action_per_category[PMO_MAC_ACTION_PUBLIC_USAGE]);
 
 	/*  config action frame patterns */
 	status = pmo_tgt_send_action_frame_pattern_req(vdev, &cmd);

+ 7 - 1
components/pmo/dispatcher/inc/wlan_pmo_wow_public_struct.h

@@ -116,6 +116,12 @@
 
 #define ALLOWED_ACTION_FRAME_MAP_WORDS (PMO_MAC_ACTION_MAX / 32)
 
+/* Public Action for 20/40 BSS Coexistence */
+#define PMO_MAC_ACTION_MEASUREMENT_PILOT    7
+
+#define DROP_PUBLIC_ACTION_FRAME_BITMAP \
+		(1 << PMO_MAC_ACTION_MEASUREMENT_PILOT)
+
 #ifndef ANI_SUPPORT_11H
 /*
  * DROP_SPEC_MGMT_ACTION_FRAME_BITMAP
@@ -127,7 +133,7 @@
  *         Type                      | Bit | Drop |
  * ----------------------------------+-----+------+
  * SIR_MAC_ACTION_MEASURE_REQUEST_ID    0     1
- * SIR_MAC_ACTION_TPC_REQUEST_ID        1     1
+ * SIR_MAC_ACTION_TPC_REQUEST_ID        2     1
  * ----------------------------------+-----+------+
  */
 #define DROP_SPEC_MGMT_ACTION_FRAME_BITMAP \