qcacld-3.0: Split __wlan_hdd_cfg80211_get_station for sta/sap

Refactor function __wlan_hdd_cfg80211_get_station for sta and sap
case.

Change-Id: Ic71333750657745058c5f37665ea0bb7b7331988
CRs-Fixed: 2223583
This commit is contained in:
Naveen Rawat
2018-04-12 10:56:09 -07:00
committed by nshrivas
vanhempi c004fa0614
commit 374d798de2

Näytä tiedosto

@@ -3887,20 +3887,22 @@ int wlan_hdd_get_station_remote(struct wiphy *wiphy,
}
/**
* __wlan_hdd_cfg80211_get_station() - get station statistics
* @wiphy: Pointer to wiphy
* @dev: Pointer to network device
* @mac: Pointer to mac
* @sinfo: Pointer to station info
* wlan_hdd_get_sta_stats() - get aggregate STA stats
* @wiphy: wireless phy
* @adapter: STA adapter to get stats for
* @mac: mac address of sta
* @sinfo: kernel station_info struct to populate
*
* Return: 0 for success, non-zero for failure
* Fetch the vdev-level aggregate stats for the given STA adapter. This is to
* support "station dump" and "station get" for STA vdevs
*
* Return: errno
*/
static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
struct net_device *dev,
const uint8_t *mac,
struct station_info *sinfo)
static int wlan_hdd_get_sta_stats(struct wiphy *wiphy,
struct hdd_adapter *adapter,
const uint8_t *mac,
struct station_info *sinfo)
{
struct hdd_adapter *adapter = WLAN_HDD_GET_PRIV_PTR(dev);
struct hdd_station_ctx *sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
int ssidlen = sta_ctx->conn_info.SSID.SSID.length;
uint8_t rate_flags;
@@ -3924,7 +3926,7 @@ static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
uint8_t rateFlag = 1;
uint8_t i, j, rssidx;
uint8_t nss = 1;
int status, mode = 0, maxHtIdx;
int mode = 0, maxHtIdx;
struct index_vht_data_rate_type *supported_vht_mcs_rate;
struct index_data_rate_type *supported_mcs_rate;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0))
@@ -3935,25 +3937,6 @@ static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
enum data_rate_11ac_max_mcs vht_max_mcs;
int32_t rcpi_value;
hdd_enter_dev(dev);
if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
hdd_err("Command not allowed in FTM mode");
return -EINVAL;
}
status = wlan_hdd_validate_context(hdd_ctx);
if (status)
return status;
if (wlan_hdd_validate_session_id(adapter->session_id)) {
hdd_err("invalid session id: %d", adapter->session_id);
return -EINVAL;
}
if (adapter->device_mode == QDF_SAP_MODE)
return wlan_hdd_get_sap_stats(adapter, sinfo);
if ((eConnectionState_Associated != sta_ctx->conn_info.connState) ||
(0 == ssidlen)) {
hdd_debug("Not associated or Invalid ssidlen, %d",
@@ -4407,6 +4390,46 @@ static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
return 0;
}
/**
* __wlan_hdd_cfg80211_get_station() - get station statistics
* @wiphy: Pointer to wiphy
* @dev: Pointer to network device
* @mac: Pointer to mac
* @sinfo: Pointer to station info
*
* Return: 0 for success, non-zero for failure
*/
static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
struct net_device *dev,
const uint8_t *mac,
struct station_info *sinfo)
{
int status;
struct hdd_adapter *adapter = WLAN_HDD_GET_PRIV_PTR(dev);
struct hdd_context *hdd_ctx = (struct hdd_context *) wiphy_priv(wiphy);
hdd_enter_dev(dev);
if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
hdd_err("Command not allowed in FTM mode");
return -EINVAL;
}
status = wlan_hdd_validate_context(hdd_ctx);
if (status)
return status;
if (wlan_hdd_validate_session_id(adapter->session_id)) {
hdd_err("invalid session id: %d", adapter->session_id);
return -EINVAL;
}
if (adapter->device_mode == QDF_SAP_MODE)
return wlan_hdd_get_sap_stats(adapter, sinfo);
else
return wlan_hdd_get_sta_stats(wiphy, adapter, mac, sinfo);
}
/**
* wlan_hdd_cfg80211_get_station() - get station statistics
* @wiphy: Pointer to wiphy
@@ -4416,15 +4439,9 @@ static int __wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
*
* Return: 0 for success, non-zero for failure
*/
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0))
int wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
struct net_device *dev, const uint8_t *mac,
struct station_info *sinfo)
#else
int wlan_hdd_cfg80211_get_station(struct wiphy *wiphy,
struct net_device *dev, uint8_t *mac,
struct station_info *sinfo)
#endif
{
int ret;