qcacmn: Add obss detection info extract handler
Add hander to extract obss detection info received
from firmware.
Change-Id: I5fde304915a97d37d6cbe58e7a315e91fbac61b6
CRs-Fixed: 2170184
diff --git a/wmi_unified_api.h b/wmi_unified_api.h
index 44d431b..9aa0c51 100644
--- a/wmi_unified_api.h
+++ b/wmi_unified_api.h
@@ -1911,4 +1911,22 @@
QDF_STATUS wmi_unified_send_obss_detection_cfg_cmd(void *wmi_hdl,
struct wmi_obss_detection_cfg_param *cfg);
+
+/**
+ * wmi_unified_extract_obss_detection_info() - WMI function to extract obss
+ * detection info from FW.
+ * @wmi_hdl: wmi handle
+ * @data: event data from firmware
+ * @info: Pointer to hold obss detection info
+ *
+ * This function is used to extract obss info from firmware.
+ *
+ * Return: QDF_STATUS
+ */
+
+QDF_STATUS wmi_unified_extract_obss_detection_info(void *wmi_hdl,
+ uint8_t *data,
+ struct wmi_obss_detect_info
+ *info);
+
#endif /* _WMI_UNIFIED_API_H_ */
diff --git a/wmi_unified_param.h b/wmi_unified_param.h
index d0eae3e..a84d9e9 100644
--- a/wmi_unified_param.h
+++ b/wmi_unified_param.h
@@ -8297,4 +8297,33 @@
uint32_t obss_ht_20mhz_detect_mode;
};
+/**
+ * enum sap_obss_detection_reason - obss detection event reasons
+ * @OBSS_OFFLOAD_DETECTION_DISABLED: OBSS detection disabled
+ * @OBSS_OFFLOAD_DETECTION_PRESENT: OBSS present detection
+ * @OBSS_OFFLOAD_DETECTION_ABSENT: OBSS absent detection
+ *
+ * Defines different types of reasons for obss detection event from firmware.
+ */
+enum wmi_obss_detection_reason {
+ OBSS_OFFLOAD_DETECTION_DISABLED = 0,
+ OBSS_OFFLOAD_DETECTION_PRESENT = 1,
+ OBSS_OFFLOAD_DETECTION_ABSENT = 2,
+};
+
+/**
+ * struct wmi_obss_detect_info - OBSS detection info from firmware
+ * @vdev_id: IDof the vdev to which this info belongs.
+ * @reason: Indicate if present or Absent detection,
+ * also if not supported offload for this vdev.
+ * @matched_detection_masks: Detection bit map.
+ * @matched_bssid_addr: MAC address valid for only if info is present detection.
+ */
+struct wmi_obss_detect_info {
+ uint32_t vdev_id;
+ enum wmi_obss_detection_reason reason;
+ uint32_t matched_detection_masks;
+ uint8_t matched_bssid_addr[IEEE80211_ADDR_LEN];
+};
+
#endif /* _WMI_UNIFIED_PARAM_H_ */
diff --git a/wmi_unified_priv.h b/wmi_unified_priv.h
index cc231d1..5f426c7 100644
--- a/wmi_unified_priv.h
+++ b/wmi_unified_priv.h
@@ -1496,6 +1496,8 @@
struct wmi_btm_config *params);
QDF_STATUS (*send_obss_detection_cfg_cmd)(wmi_unified_t wmi_handle,
struct wmi_obss_detection_cfg_param *obss_cfg_param);
+QDF_STATUS (*extract_obss_detection_info)(uint8_t *evt_buf,
+ struct wmi_obss_detect_info *info);
};
/* Forward declartion for psoc*/