mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
qcacmn: Add support to get RSSI of Non associated clients
Add change in driver to get RSSI of non associated clients. This is done in 2 levels of filtering 1. Send WMI to FW to configure BSSID in HW 2. Filter the neighbour BSSID packets received in host for the configured client mac Change-Id: I6b684b83cecb308dac326056aa77537aee07b933 CRs-Fixed: 2148773
This commit is contained in:
parent
96ad17d131
commit
bc719e6b02
5 changed files with 156 additions and 4 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2017 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||
*
|
||||
|
|
@ -762,4 +762,35 @@ cdp_get_pldev(ol_txrx_soc_handle soc,
|
|||
return soc->ops->ctrl_ops->txrx_get_pldev(pdev);
|
||||
}
|
||||
|
||||
#ifdef ATH_SUPPORT_NAC_RSSI
|
||||
/**
|
||||
* cdp_vdev_config_for_nac_rssi(): To invoke dp callback for nac rssi config
|
||||
* @soc: soc pointer
|
||||
* @vdev: vdev pointer
|
||||
* @nac_cmd: specfies nac_rss config action add, del, list
|
||||
* @bssid: Neighbour bssid
|
||||
* @client_macaddr: Non-Associated client MAC
|
||||
* @chan_num: channel number to scan
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static inline QDF_STATUS cdp_vdev_config_for_nac_rssi(ol_txrx_soc_handle soc,
|
||||
struct cdp_vdev *vdev, enum cdp_nac_param_cmd nac_cmd,
|
||||
char *bssid, char *client_macaddr, uint8_t chan_num)
|
||||
{
|
||||
if (!soc || !soc->ops) {
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
|
||||
"%s invalid instance", __func__);
|
||||
QDF_BUG(0);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
if (!soc->ops->ctrl_ops ||
|
||||
!soc->ops->ctrl_ops->txrx_vdev_config_for_nac_rssi)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
return soc->ops->ctrl_ops->txrx_vdev_config_for_nac_rssi(vdev,
|
||||
nac_cmd, bssid, client_macaddr, chan_num);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -45,6 +45,15 @@
|
|||
#define CDP_PEER_DELETE_NO_SPECIAL 0
|
||||
#define CDP_PEER_DO_NOT_START_UNMAP_TIMER 1
|
||||
|
||||
/* same as ieee80211_nac_param */
|
||||
enum cdp_nac_param_cmd {
|
||||
/* IEEE80211_NAC_PARAM_ADD */
|
||||
CDP_NAC_PARAM_ADD = 1,
|
||||
/* IEEE80211_NAC_PARAM_DEL */
|
||||
CDP_NAC_PARAM_DEL,
|
||||
/* IEEE80211_NAC_PARAM_LIST */
|
||||
CDP_NAC_PARAM_LIST,
|
||||
};
|
||||
/******************************************************************************
|
||||
*
|
||||
* Control Interface (A Interface)
|
||||
|
|
@ -473,6 +482,12 @@ struct cdp_ctrl_ops {
|
|||
int (*txrx_wdi_event_handler)(struct cdp_pdev *pdev,
|
||||
uint32_t event, void *evt_data);
|
||||
void * (*txrx_get_pldev)(struct cdp_pdev *pdev);
|
||||
|
||||
#ifdef ATH_SUPPORT_NAC_RSSI
|
||||
QDF_STATUS (*txrx_vdev_config_for_nac_rssi)(struct cdp_vdev *vdev,
|
||||
enum cdp_nac_param_cmd cmd, char *bssid, char *client_macaddr,
|
||||
uint8_t chan_num);
|
||||
#endif
|
||||
};
|
||||
|
||||
struct cdp_me_ops {
|
||||
|
|
@ -699,7 +714,13 @@ struct ol_if_ops {
|
|||
|
||||
void (*record_act_change)(struct wlan_objmgr_pdev *pdev,
|
||||
u_int8_t *dstmac, bool active);
|
||||
|
||||
#ifdef ATH_SUPPORT_NAC_RSSI
|
||||
int (*config_fw_for_nac_rssi)(struct wlan_objmgr_pdev *pdev,
|
||||
u_int8_t vdev_id, enum cdp_nac_param_cmd cmd, char *bssid,
|
||||
char *client_macaddr, uint8_t chan_num);
|
||||
int (*config_bssid_in_fw_for_nac_rssi)(struct wlan_objmgr_pdev *pdev,
|
||||
u_int8_t vdev_id, enum cdp_nac_param_cmd cmd, char *bssid);
|
||||
#endif
|
||||
/* TODO: Add any other control path calls required to OL_IF/WMA layer */
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue