qcacmn: Add SON ops structure definitions
Move SON Tx operations structure definition to lmac interface. Add SON Rx operations structure. CRs-Fixed: 2987042 Change-Id: Ice7c0dc81a60627f3d26897646b754780e498d6e
This commit is contained in:

committed by
Madan Koyyalamudi

parent
bc5590deaf
commit
96fec42073
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
@@ -97,4 +97,16 @@ QDF_STATUS wlan_lmac_if_sptrl_set_rx_ops_register_cb(void (*handler)
|
|||||||
QDF_STATUS wlan_lmac_if_iot_sim_set_rx_ops_register_cb(void (*handler)
|
QDF_STATUS wlan_lmac_if_iot_sim_set_rx_ops_register_cb(void (*handler)
|
||||||
(struct wlan_lmac_if_rx_ops *));
|
(struct wlan_lmac_if_rx_ops *));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_lmac_if_son_set_rx_ops_register_cb ()- SON Rx ops
|
||||||
|
* registration callback assignment
|
||||||
|
* @handler: Handler to be called for SON rx ops registration
|
||||||
|
*
|
||||||
|
* API to assign appropriate SON rx ops registration callback handler
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS - in case of success
|
||||||
|
*/
|
||||||
|
QDF_STATUS wlan_lmac_if_son_set_rx_ops_register_cb(void (*handler)
|
||||||
|
(struct wlan_lmac_if_rx_ops *));
|
||||||
#endif /* _WLAN_LMAC_IF_API_H */
|
#endif /* _WLAN_LMAC_IF_API_H */
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
@@ -108,6 +108,27 @@ static void wlan_iot_sim_register_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Function pointer for son rx_ops registration function */
|
||||||
|
void (*wlan_lmac_if_son_rx_ops)(struct wlan_lmac_if_rx_ops *rx_ops);
|
||||||
|
|
||||||
|
QDF_STATUS wlan_lmac_if_son_set_rx_ops_register_cb(void (*handler)
|
||||||
|
(struct wlan_lmac_if_rx_ops *))
|
||||||
|
{
|
||||||
|
wlan_lmac_if_son_rx_ops = handler;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
qdf_export_symbol(wlan_lmac_if_son_set_rx_ops_register_cb);
|
||||||
|
|
||||||
|
static void wlan_son_register_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops)
|
||||||
|
{
|
||||||
|
if (wlan_lmac_if_son_rx_ops)
|
||||||
|
wlan_lmac_if_son_rx_ops(rx_ops);
|
||||||
|
else
|
||||||
|
qdf_info("\n***** SON MODULE NOT LOADED *****\n");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_global_lmac_if_rx_ops_register() - Global lmac_if
|
* wlan_global_lmac_if_rx_ops_register() - Global lmac_if
|
||||||
* rx handler register
|
* rx handler register
|
||||||
@@ -138,6 +159,9 @@ wlan_global_lmac_if_rx_ops_register(struct wlan_lmac_if_rx_ops *rx_ops)
|
|||||||
/* iot_sim rx_ops registration*/
|
/* iot_sim rx_ops registration*/
|
||||||
wlan_iot_sim_register_rx_ops(rx_ops);
|
wlan_iot_sim_register_rx_ops(rx_ops);
|
||||||
|
|
||||||
|
/* son rx_ops registration*/
|
||||||
|
wlan_son_register_rx_ops(rx_ops);
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -31,9 +31,6 @@
|
|||||||
#ifdef WLAN_ATF_ENABLE
|
#ifdef WLAN_ATF_ENABLE
|
||||||
#include "wlan_atf_utils_defs.h"
|
#include "wlan_atf_utils_defs.h"
|
||||||
#endif
|
#endif
|
||||||
#ifdef QCA_SUPPORT_SON
|
|
||||||
#include <wlan_son_tgt_api.h>
|
|
||||||
#endif
|
|
||||||
#ifdef WLAN_SA_API_ENABLE
|
#ifdef WLAN_SA_API_ENABLE
|
||||||
#include "wlan_sa_api_utils_defs.h"
|
#include "wlan_sa_api_utils_defs.h"
|
||||||
#endif
|
#endif
|
||||||
@@ -1082,6 +1079,59 @@ struct wlan_lmac_if_gpio_tx_ops {
|
|||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_lmac_if_son_tx_ops: son tx operations
|
||||||
|
* son_send_null: send null packet
|
||||||
|
* get_peer_rate: get peer rate
|
||||||
|
* peer_ext_stats_enable: Enable peer ext stats
|
||||||
|
*/
|
||||||
|
struct wlan_lmac_if_son_tx_ops {
|
||||||
|
/* Function pointer to enable/disable band steering */
|
||||||
|
QDF_STATUS (*son_send_null)(struct wlan_objmgr_pdev *pdev,
|
||||||
|
u_int8_t *macaddr,
|
||||||
|
struct wlan_objmgr_vdev *vdev);
|
||||||
|
|
||||||
|
u_int32_t (*get_peer_rate)(struct wlan_objmgr_peer *peer,
|
||||||
|
u_int8_t type);
|
||||||
|
|
||||||
|
QDF_STATUS (*peer_ext_stats_enable)(struct wlan_objmgr_pdev *pdev,
|
||||||
|
u_int8_t *peer_addr,
|
||||||
|
struct wlan_objmgr_vdev *vdev,
|
||||||
|
u_int32_t stats_count,
|
||||||
|
u_int32_t enable);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_lmac_if_son_rx_ops: son rx operations
|
||||||
|
* deliver_event: deliver mlme and other mac events
|
||||||
|
* process_mgmt_frame: process mgmt frames
|
||||||
|
* config_set: route son config from cfg80211
|
||||||
|
* config_get: route son config from cfg80211
|
||||||
|
* config_ext_set_get: route extended configs from cfg80211
|
||||||
|
*/
|
||||||
|
struct wiphy;
|
||||||
|
struct wireless_dev;
|
||||||
|
struct wlan_lmac_if_son_rx_ops {
|
||||||
|
int (*deliver_event)(struct wlan_objmgr_vdev *vdev,
|
||||||
|
struct wlan_objmgr_peer *peer,
|
||||||
|
uint32_t event,
|
||||||
|
void *event_data);
|
||||||
|
int (*process_mgmt_frame)(struct wlan_objmgr_vdev *vdev,
|
||||||
|
struct wlan_objmgr_peer *peer,
|
||||||
|
int subtype, u_int8_t *frame,
|
||||||
|
u_int16_t frame_len,
|
||||||
|
void *meta_data);
|
||||||
|
int (*config_set)(struct wiphy *wiphy,
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
void *params);
|
||||||
|
int (*config_get)(struct wiphy *wiphy,
|
||||||
|
struct wireless_dev *wdev,
|
||||||
|
void *params);
|
||||||
|
int (*config_ext_set_get)(struct net_device *dev,
|
||||||
|
void *req,
|
||||||
|
void *wri);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct wlan_lmac_if_tx_ops - south bound tx function pointers
|
* struct wlan_lmac_if_tx_ops - south bound tx function pointers
|
||||||
* @mgmt_txrx_tx_ops: mgmt txrx tx ops
|
* @mgmt_txrx_tx_ops: mgmt txrx tx ops
|
||||||
@@ -1113,7 +1163,6 @@ struct wlan_lmac_if_tx_ops {
|
|||||||
#ifdef QCA_SUPPORT_SON
|
#ifdef QCA_SUPPORT_SON
|
||||||
struct wlan_lmac_if_son_tx_ops son_tx_ops;
|
struct wlan_lmac_if_son_tx_ops son_tx_ops;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WLAN_ATF_ENABLE
|
#ifdef WLAN_ATF_ENABLE
|
||||||
struct wlan_lmac_if_atf_tx_ops atf_tx_ops;
|
struct wlan_lmac_if_atf_tx_ops atf_tx_ops;
|
||||||
#endif
|
#endif
|
||||||
@@ -1890,6 +1939,7 @@ struct wlan_lmac_if_rx_ops {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct wlan_lmac_if_ftm_rx_ops ftm_rx_ops;
|
struct wlan_lmac_if_ftm_rx_ops ftm_rx_ops;
|
||||||
|
struct wlan_lmac_if_son_rx_ops son_rx_ops;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Function pointer to call legacy tx_ops registration in OL/WMA.
|
/* Function pointer to call legacy tx_ops registration in OL/WMA.
|
||||||
|
Reference in New Issue
Block a user