mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
qcacmn: Update address search flags for TDLS
Add support to set address search flags in WLAN Tx Descriptor for TDLS operation Change-Id: Iafb15fb1efd84a4bef436062368401a5496e4468 CRs-Fixed: 2041759
This commit is contained in:
parent
14f621c934
commit
56bfd8fdb3
9 changed files with 54 additions and 2 deletions
|
|
@ -1693,6 +1693,13 @@ QDF_STATUS tdls_process_enable_link(struct tdls_oper_request *req)
|
|||
tdls_increment_peer_count(soc_obj);
|
||||
feature = soc_obj->tdls_configs.tdls_feature_flags;
|
||||
|
||||
if (soc_obj->tdls_dp_vdev_update)
|
||||
soc_obj->tdls_dp_vdev_update(&soc_obj->soc,
|
||||
peer->sta_id,
|
||||
soc_obj->tdls_update_dp_vdev_flags,
|
||||
((peer->link_status ==
|
||||
TDLS_LINK_CONNECTED) ? true : false));
|
||||
|
||||
tdls_debug("TDLS buffer sta: %d, uapsd_mask %d",
|
||||
TDLS_IS_BUFFER_STA_ENABLED(feature),
|
||||
soc_obj->tdls_configs.tdls_uapsd_mask);
|
||||
|
|
@ -1911,6 +1918,13 @@ QDF_STATUS tdls_process_remove_force_peer(struct tdls_oper_request *req)
|
|||
tdls_set_peer_link_status(peer, TDLS_LINK_TEARING,
|
||||
TDLS_LINK_UNSPECIFIED);
|
||||
|
||||
if (soc_obj->tdls_dp_vdev_update)
|
||||
soc_obj->tdls_dp_vdev_update(&soc_obj->soc,
|
||||
peer->sta_id,
|
||||
soc_obj->tdls_update_dp_vdev_flags,
|
||||
((peer->link_status ==
|
||||
TDLS_LINK_CONNECTED) ? true : false));
|
||||
|
||||
if (soc_obj->tdls_event_cb) {
|
||||
qdf_mem_copy(ind.peer_mac, macaddr, QDF_MAC_ADDR_SIZE);
|
||||
ind.vdev = vdev;
|
||||
|
|
|
|||
|
|
@ -536,6 +536,13 @@ void tdls_indicate_teardown(struct tdls_vdev_priv_obj *tdls_vdev,
|
|||
TDLS_LINK_UNSPECIFIED);
|
||||
tdls_notice("Teardown reason %d", reason);
|
||||
|
||||
if (tdls_soc->tdls_dp_vdev_update)
|
||||
tdls_soc->tdls_dp_vdev_update(&tdls_soc->soc,
|
||||
curr_peer->sta_id,
|
||||
tdls_soc->tdls_update_dp_vdev_flags,
|
||||
((curr_peer->link_status ==
|
||||
TDLS_LINK_CONNECTED) ? true : false));
|
||||
|
||||
indication.reason = reason;
|
||||
indication.vdev = tdls_vdev->vdev;
|
||||
qdf_mem_copy(indication.peer_mac, curr_peer->peer_mac.bytes,
|
||||
|
|
|
|||
|
|
@ -181,6 +181,7 @@ struct tdls_set_state_info {
|
|||
* @tdls_del_sta_req: store eWNI_SME_TDLS_DEL_STA_REQ value
|
||||
* @tdls_update_peer_state: store WMA_UPDATE_TDLS_PEER_STATE value
|
||||
* @tdls_del_all_peers:store eWNI_SME_DEL_ALL_TDLS_PEERS
|
||||
* @tdls_update_dp_vdev_flags store CDP_UPDATE_TDLS_FLAGS
|
||||
* @tdls_idle_peer_data: provide information about idle peer
|
||||
* @tdls_ct_spinlock: connection tracker spin lock
|
||||
*/
|
||||
|
|
@ -215,6 +216,7 @@ struct tdls_soc_priv_obj {
|
|||
void *tdls_evt_cb_data;
|
||||
tdls_register_tl_peer_callback tdls_reg_tl_peer;
|
||||
tdls_deregister_tl_peer_callback tdls_dereg_tl_peer;
|
||||
tdls_dp_vdev_update_flags_callback tdls_dp_vdev_update;
|
||||
void *tdls_tl_peer_data;
|
||||
qdf_list_t tx_q_ack;
|
||||
enum tdls_conc_cap tdls_con_cap;
|
||||
|
|
@ -223,6 +225,7 @@ struct tdls_soc_priv_obj {
|
|||
uint16_t tdls_del_sta_req;
|
||||
uint16_t tdls_update_peer_state;
|
||||
uint16_t tdls_del_all_peers;
|
||||
uint32_t tdls_update_dp_vdev_flags;
|
||||
struct tdls_ct_idle_peer_data tdls_idle_peer_data;
|
||||
qdf_spinlock_t tdls_ct_spinlock;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -530,6 +530,14 @@ typedef QDF_STATUS (*tdls_register_tl_peer_callback)(void *userdata,
|
|||
typedef QDF_STATUS (*tdls_deregister_tl_peer_callback)(void *userdata,
|
||||
uint32_t vdev_id,
|
||||
uint8_t sta_id);
|
||||
|
||||
/* This callback is used to update datapath vdev flags */
|
||||
typedef QDF_STATUS
|
||||
(*tdls_dp_vdev_update_flags_callback)(void *cbk_data,
|
||||
uint8_t sta_id,
|
||||
uint32_t vdev_param,
|
||||
bool is_link_up);
|
||||
|
||||
/**
|
||||
* struct tdls_start_params - tdls start params
|
||||
* @config: tdls user config
|
||||
|
|
@ -537,12 +545,15 @@ typedef QDF_STATUS (*tdls_deregister_tl_peer_callback)(void *userdata,
|
|||
* @tdls_add_sta_req: pass eWNI_SME_TDLS_ADD_STA_REQ value
|
||||
* @tdls_del_sta_req: pass eWNI_SME_TDLS_DEL_STA_REQ value
|
||||
* @tdls_update_peer_state: pass WMA_UPDATE_TDLS_PEER_STATE value
|
||||
* @tdls_del_all_peers: pass eWNI_SME_DEL_ALL_TDLS_PEERS
|
||||
* @tdls_update_dp_vdev_flags: pass CDP_UPDATE_TDLS_FLAGS
|
||||
* @tdls_event_cb: tdls event callback
|
||||
* @tdls_evt_cb_data: tdls event data
|
||||
* @ack_cnf_cb: tdls tx ack callback to indicate the tx status
|
||||
* @tx_ack_cnf_cb_data: tdls tx ack user data
|
||||
* @tdls_reg_tl_peer: tdls register tdls peer
|
||||
* @tdls_dereg_tl_peer: tdls deregister tdls peer
|
||||
* @tdls_dp_vdev_update: update vdev flags in datapath
|
||||
* @tdls_tl_peer_data: userdata for register/deregister TDLS peer
|
||||
*/
|
||||
struct tdls_start_params {
|
||||
|
|
@ -552,6 +563,7 @@ struct tdls_start_params {
|
|||
uint16_t tdls_del_sta_req;
|
||||
uint16_t tdls_update_peer_state;
|
||||
uint16_t tdls_del_all_peers;
|
||||
uint32_t tdls_update_dp_vdev_flags;
|
||||
tdls_rx_callback tdls_rx_cb;
|
||||
void *tdls_rx_cb_data;
|
||||
tdls_wmm_check tdls_wmm_cb;
|
||||
|
|
@ -562,6 +574,7 @@ struct tdls_start_params {
|
|||
void *tx_ack_cnf_cb_data;
|
||||
tdls_register_tl_peer_callback tdls_reg_tl_peer;
|
||||
tdls_deregister_tl_peer_callback tdls_dereg_tl_peer;
|
||||
tdls_dp_vdev_update_flags_callback tdls_dp_vdev_update;
|
||||
void *tdls_tl_peer_data;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -217,6 +217,7 @@ QDF_STATUS ucfg_tdls_update_config(struct wlan_objmgr_psoc *psoc,
|
|||
soc_obj->tdls_del_sta_req = req->tdls_del_sta_req;
|
||||
soc_obj->tdls_update_peer_state = req->tdls_update_peer_state;
|
||||
soc_obj->tdls_del_all_peers = req->tdls_del_all_peers;
|
||||
soc_obj->tdls_update_dp_vdev_flags = req->tdls_update_dp_vdev_flags;
|
||||
tdls_pm_call_backs.tdls_notify_increment_session =
|
||||
tdls_notify_increment_session;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue