qcacmn: Add support to manage Wifi pos vdev private object

Add support to manage Wifi pos vdev private object. Add new peer
type in enum wlan_peer_type. Add rx_ops and register the rx_ops
for PASN peer create/peer delete request.
Register 11az PASN related WMI events in target if.

Change-Id: I2a5e4d8d7c9b9562d9ab02b287957e93ee6f4758
CRs-Fixed: 3154521
Этот коммит содержится в:
Pragaspathi Thilagaraj
2022-03-12 22:21:47 +05:30
коммит произвёл Madan Koyyalamudi
родитель 87ce989ee0
Коммит 7738bad9e9
15 изменённых файлов: 586 добавлений и 62 удалений

Просмотреть файл

@@ -342,6 +342,24 @@ struct wlan_lmac_if_rx_ops;
*/
void wifi_pos_register_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops);
/**
* wifi_pos_get_tx_ops: api to get tx ops
* @psoc: pointer to psoc object
*
* Return: tx ops
*/
struct wlan_lmac_if_wifi_pos_tx_ops *
wifi_pos_get_tx_ops(struct wlan_objmgr_psoc *psoc);
/**
* wifi_pos_get_rx_ops: api to get rx ops
* @psoc: pointer to psoc object
*
* Return: rx ops
*/
struct wlan_lmac_if_wifi_pos_rx_ops *
wifi_pos_get_rx_ops(struct wlan_objmgr_psoc *psoc);
/**
* ucfg_wifi_pos_get_ftm_cap: API to get fine timing measurement caps
* @psoc: psoc object
@@ -402,6 +420,25 @@ bool wifi_pos_is_app_registered(struct wlan_objmgr_psoc *psoc);
*/
struct wlan_objmgr_psoc *wifi_pos_get_psoc(void);
/**
* wifi_pos_get_legacy_ops() - Get wifi pos legacy ops
* @psoc: PSOC pointer
*
* Return: Pointer to legacy ops
*/
struct wifi_pos_legacy_ops *
wifi_pos_get_legacy_ops(struct wlan_objmgr_psoc *psoc);
/**
* wifi_pos_set_legacy_ops() - Set Wifi Pos legacy ops
* @psoc: PSOC pointer
* @legacy_ops: Legacy ops
*
* Return: QDF_STATUS
*/
QDF_STATUS
wifi_pos_set_legacy_ops(struct wlan_objmgr_psoc *psoc,
struct wifi_pos_legacy_ops *legacy_ops);
#else
static inline QDF_STATUS wifi_pos_init(void)
{

Просмотреть файл

@@ -33,6 +33,7 @@
#include "qdf_trace.h"
#include "qdf_module.h"
#include "wifi_pos_utils_pub.h"
#include "wlan_objmgr_vdev_obj.h"
#include "wlan_cmn.h"
struct wlan_objmgr_psoc;
@@ -215,6 +216,21 @@ typedef void (*wifi_pos_send_rsp_handler)(struct wlan_objmgr_psoc *, uint32_t,
enum wifi_pos_cmd_ids,
uint32_t, uint8_t *);
/**
* struct wifi_pos_legacy_ops - wifi pos module legacy callbacks
* @pasn_peer_create_cb: PASN peer create callback
* @pasn_peer_delete_cb: PASN peer delete callback
*/
struct wifi_pos_legacy_ops {
QDF_STATUS (*pasn_peer_create_cb)(struct wlan_objmgr_psoc *psoc,
struct qdf_mac_addr *peer_addr,
uint8_t vdev_id);
QDF_STATUS (*pasn_peer_delete_cb)(struct wlan_objmgr_psoc *psoc,
struct qdf_mac_addr *peer_addr,
uint8_t vdev_id,
bool no_fw_peer_delete);
};
/**
* struct wifi_pos_psoc_priv_obj - psoc obj data for wifi_pos
* @app_pid: pid of app registered to host driver
@@ -251,6 +267,7 @@ typedef void (*wifi_pos_send_rsp_handler)(struct wlan_objmgr_psoc *, uint32_t,
* @wifi_pos_measurement_request_notification: Call this API when the driver
* receives measurement request
* from the LOWI application
* @legacy_ops: wifi pos legacy callbacks
* @rsp_version: rsp version
*
* wifi pos request messages
@@ -290,6 +307,7 @@ struct wifi_pos_psoc_priv_obj {
qdf_spinlock_t wifi_pos_lock;
bool oem_6g_support_disable;
struct wifi_pos_legacy_ops *legacy_ops;
QDF_STATUS (*wifi_pos_req_handler)(struct wlan_objmgr_psoc *psoc,
struct wifi_pos_req_msg *req);
wifi_pos_send_rsp_handler wifi_pos_send_rsp;
@@ -391,5 +409,15 @@ uint32_t wifi_pos_get_app_pid(struct wlan_objmgr_psoc *psoc);
*/
bool wifi_pos_is_app_registered(struct wlan_objmgr_psoc *psoc);
/**
* wifi_pos_get_vdev_priv_obj() - Get WIfi pos module vdev private
* object
* @vdev: vdev pointer
*
* Return: Pointer to vdev private obj
*/
struct wifi_pos_vdev_priv_obj *
wifi_pos_get_vdev_priv_obj(struct wlan_objmgr_vdev *vdev);
#endif /* _WIFI_POS_UTILS_H_ */
#endif /* WIFI_POS_CONVERGED */