qcacld-3.0: Remove obsolete set/reset ssid hotlist

This is a qcacld-2.0 to qcacld-3.0 propagation.

Remove obsolete set/reset ssid hotlist.

Change-Id: Ie6c4a9847f2daa9ba2aebd17f386d584201b86d6
CRs-Fixed: 1102593
Šī revīzija ir iekļauta:
Srinivas Girigowda
2017-01-06 14:58:24 -08:00
revīziju iesūtīja Sandeep Puligilla
vecāks 30641f17eb
revīzija 4698a9c284
12 mainīti faili ar 1 papildinājumiem un 812 dzēšanām

Parādīt failu

@@ -938,14 +938,6 @@ static const struct nl80211_vendor_cmd_info wlan_hdd_cfg80211_vendor_events[] =
=
QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_RESET_SIGNIFICANT_CHANGE
},
[QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_SSID_FOUND_INDEX] = {
.vendor_id = QCA_NL80211_VENDOR_ID,
.subcmd = QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_SSID_FOUND
},
[QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_SSID_LOST_INDEX] = {
.vendor_id = QCA_NL80211_VENDOR_ID,
.subcmd = QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_SSID_LOST
},
#endif /* FEATURE_WLAN_EXTSCAN */
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
@@ -1043,14 +1035,6 @@ static const struct nl80211_vendor_cmd_info wlan_hdd_cfg80211_vendor_events[] =
.vendor_id = QCA_NL80211_VENDOR_ID,
.subcmd = QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_PNO_PASSPOINT_NETWORK_FOUND
},
[QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SET_SSID_HOTLIST_INDEX] = {
.vendor_id = QCA_NL80211_VENDOR_ID,
.subcmd = QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SET_SSID_HOTLIST
},
[QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_RESET_SSID_HOTLIST_INDEX] = {
.vendor_id = QCA_NL80211_VENDOR_ID,
.subcmd = QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_RESET_SSID_HOTLIST
},
[QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_AP_LOST_INDEX] = {
.vendor_id = QCA_NL80211_VENDOR_ID,
.subcmd = QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_AP_LOST
@@ -9643,22 +9627,6 @@ const struct wiphy_vendor_command hdd_wiphy_vendor_commands[] = {
WIPHY_VENDOR_CMD_NEED_RUNNING,
.doit = wlan_hdd_cfg80211_reset_passpoint_list
},
{
.info.vendor_id = QCA_NL80211_VENDOR_ID,
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_SET_SSID_HOTLIST,
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
WIPHY_VENDOR_CMD_NEED_NETDEV |
WIPHY_VENDOR_CMD_NEED_RUNNING,
.doit = wlan_hdd_cfg80211_extscan_set_ssid_hotlist
},
{
.info.vendor_id = QCA_NL80211_VENDOR_ID,
.info.subcmd = QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_RESET_SSID_HOTLIST,
.flags = WIPHY_VENDOR_CMD_NEED_WDEV |
WIPHY_VENDOR_CMD_NEED_NETDEV |
WIPHY_VENDOR_CMD_NEED_RUNNING,
.doit = wlan_hdd_cfg80211_extscan_reset_ssid_hotlist
},
#endif /* FEATURE_WLAN_EXTSCAN */
{
.info.vendor_id = QCA_NL80211_VENDOR_ID,

Parādīt failu

@@ -1293,150 +1293,6 @@ fail:
return;
}
/**
* wlan_hdd_cfg80211_extscan_hotlist_ssid_match_ind() -
* Handle an SSID hotlist match event
* @ctx: HDD context registered with SME
* @event: The SSID hotlist match event
*
* This function will take an SSID match event that was generated by
* firmware and will convert it into a cfg80211 vendor event which is
* sent to userspace.
* This callback execute in atomic context and must not invoke any
* blocking calls.
*
* Return: none
*/
static void
wlan_hdd_cfg80211_extscan_hotlist_ssid_match_ind(void *ctx,
tpSirWifiScanResultEvent event)
{
hdd_context_t *hdd_ctx = ctx;
struct sk_buff *skb;
uint32_t i, index;
int flags = cds_get_gfp_flags();
ENTER();
if (wlan_hdd_validate_context(hdd_ctx))
return;
if (!event) {
hdd_err("event is null");
return;
}
if (event->ap_found) {
index = QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_SSID_FOUND_INDEX;
hdd_notice("SSID hotlist found");
} else {
index = QCA_NL80211_VENDOR_SUBCMD_EXTSCAN_HOTLIST_SSID_LOST_INDEX;
hdd_notice("SSID hotlist lost");
}
skb = cfg80211_vendor_event_alloc(hdd_ctx->wiphy,
NULL,
EXTSCAN_EVENT_BUF_SIZE + NLMSG_HDRLEN,
index, flags);
if (!skb) {
hdd_err("cfg80211_vendor_event_alloc failed");
return;
}
hdd_notice("Req Id %u, Num results %u, More Data %u",
event->requestId, event->numOfAps, event->moreData);
for (i = 0; i < event->numOfAps; i++) {
hdd_notice("[i=%d] Timestamp %llu "
"Ssid: %s "
"Bssid (" MAC_ADDRESS_STR ") "
"Channel %u "
"Rssi %d "
"RTT %u "
"RTT_SD %u",
i,
event->ap[i].ts,
event->ap[i].ssid,
MAC_ADDR_ARRAY(event->ap[i].bssid.bytes),
event->ap[i].channel,
event->ap[i].rssi,
event->ap[i].rtt,
event->ap[i].rtt_sd);
}
if (nla_put_u32(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_REQUEST_ID,
event->requestId) ||
nla_put_u32(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_NUM_RESULTS_AVAILABLE,
event->numOfAps)) {
hdd_err("put fail");
goto fail;
}
if (event->numOfAps) {
struct nlattr *aps;
aps = nla_nest_start(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_LIST);
if (!aps) {
hdd_err("nest fail");
goto fail;
}
for (i = 0; i < event->numOfAps; i++) {
struct nlattr *ap;
ap = nla_nest_start(skb, i);
if (!ap) {
hdd_err("nest fail");
goto fail;
}
if (hdd_wlan_nla_put_u64(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_SCAN_RESULT_TIME_STAMP,
event->ap[i].ts) ||
nla_put(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_SCAN_RESULT_SSID,
sizeof(event->ap[i].ssid),
event->ap[i].ssid) ||
nla_put(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_SCAN_RESULT_BSSID,
sizeof(event->ap[i].bssid),
event->ap[i].bssid.bytes) ||
nla_put_u32(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_SCAN_RESULT_CHANNEL,
event->ap[i].channel) ||
nla_put_s32(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_SCAN_RESULT_RSSI,
event->ap[i].rssi) ||
nla_put_u32(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_SCAN_RESULT_RTT,
event->ap[i].rtt) ||
nla_put_u32(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_SCAN_RESULT_RTT_SD,
event->ap[i].rtt_sd)) {
hdd_err("put fail");
goto fail;
}
nla_nest_end(skb, ap);
}
nla_nest_end(skb, aps);
if (nla_put_u8(skb,
QCA_WLAN_VENDOR_ATTR_EXTSCAN_RESULTS_SCAN_RESULT_MORE_DATA,
event->moreData)) {
hdd_err("put fail");
goto fail;
}
}
cfg80211_vendor_event(skb, flags);
return;
fail:
kfree_skb(skb);
return;
}
/**
* wlan_hdd_cfg80211_extscan_generic_rsp() -
* Handle a generic ExtScan Response message
@@ -1539,11 +1395,6 @@ void wlan_hdd_cfg80211_extscan_callback(void *ctx, const uint16_t evType,
(struct pno_match_found *)pMsg);
break;
case eSIR_EXTSCAN_HOTLIST_SSID_MATCH_IND:
wlan_hdd_cfg80211_extscan_hotlist_ssid_match_ind(ctx,
(tpSirWifiScanResultEvent)pMsg);
break;
case eSIR_EXTSCAN_SCAN_PROGRESS_EVENT_IND:
wlan_hdd_cfg80211_extscan_scan_progress_event(ctx,
(tpSirExtScanOnScanEventIndParams) pMsg);
@@ -4419,397 +4270,6 @@ int wlan_hdd_cfg80211_reset_passpoint_list(struct wiphy *wiphy,
return ret;
}
/*
* define short names for the global vendor params
* used by __wlan_hdd_cfg80211_extscan_set_ssid_hotlist()
*/
#define PARAM_MAX \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SUBCMD_CONFIG_PARAM_MAX
#define PARAM_REQUEST_ID \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SUBCMD_CONFIG_PARAM_REQUEST_ID
#define PARAMS_LOST_SSID_SAMPLE_SIZE \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SSID_HOTLIST_PARAMS_LOST_SSID_SAMPLE_SIZE
#define PARAMS_NUM_SSID \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SSID_HOTLIST_PARAMS_NUM_SSID
#define THRESHOLD_PARAM \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SSID_THRESHOLD_PARAM
#define PARAM_SSID \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SSID_THRESHOLD_PARAM_SSID
#define PARAM_BAND \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SSID_THRESHOLD_PARAM_BAND
#define PARAM_RSSI_LOW \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SSID_THRESHOLD_PARAM_RSSI_LOW
#define PARAM_RSSI_HIGH \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SSID_THRESHOLD_PARAM_RSSI_HIGH
/**
* __wlan_hdd_cfg80211_extscan_set_ssid_hotlist() - set ssid hot list
* @wiphy: Pointer to wireless phy
* @wdev: Pointer to wireless device
* @data: Pointer to data
* @data_len: Data length
*
* Return: 0 on success, negative errno on failure
*/
static int
__wlan_hdd_cfg80211_extscan_set_ssid_hotlist(struct wiphy *wiphy,
struct wireless_dev *wdev,
const void *data,
int data_len)
{
struct sir_set_ssid_hotlist_request *request;
struct net_device *dev = wdev->netdev;
hdd_adapter_t *adapter = WLAN_HDD_GET_PRIV_PTR(dev);
hdd_context_t *hdd_ctx = wiphy_priv(wiphy);
struct nlattr *tb[PARAM_MAX + 1];
struct nlattr *tb2[PARAM_MAX + 1];
struct nlattr *ssids;
struct hdd_ext_scan_context *context;
uint32_t request_id;
char ssid_string[SIR_MAC_MAX_SSID_LENGTH + 1];
int ssid_len, i, rem, ssid_str_len;
QDF_STATUS status;
int retval;
unsigned long rc;
ENTER_DEV(dev);
if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
hdd_err("Command not allowed in FTM mode");
return -EPERM;
}
retval = wlan_hdd_validate_context(hdd_ctx);
if (0 != retval)
return -EINVAL;
if (!hdd_ctx->config->extscan_enabled) {
hdd_err("extscan not supported");
return -ENOTSUPP;
}
if (nla_parse(tb, PARAM_MAX,
data, data_len,
wlan_hdd_extscan_config_policy)) {
hdd_err("Invalid ATTR");
return -EINVAL;
}
request = qdf_mem_malloc(sizeof(*request));
if (!request) {
hdd_err("qdf_mem_malloc failed");
return -ENOMEM;
}
/* Parse and fetch request Id */
if (!tb[PARAM_REQUEST_ID]) {
hdd_err("attr request id failed");
goto fail;
}
request->request_id = nla_get_u32(tb[PARAM_REQUEST_ID]);
hdd_notice("Request Id %d", request->request_id);
/* Parse and fetch lost SSID sample size */
if (!tb[PARAMS_LOST_SSID_SAMPLE_SIZE]) {
hdd_err("attr number of Ssid failed");
goto fail;
}
request->lost_ssid_sample_size =
nla_get_u32(tb[PARAMS_LOST_SSID_SAMPLE_SIZE]);
hdd_notice("Lost SSID Sample Size %d",
request->lost_ssid_sample_size);
/* Parse and fetch number of hotlist SSID */
if (!tb[PARAMS_NUM_SSID]) {
hdd_err("attr number of Ssid failed");
goto fail;
}
request->ssid_count = nla_get_u32(tb[PARAMS_NUM_SSID]);
hdd_notice("Number of SSID %d", request->ssid_count);
request->session_id = adapter->sessionId;
hdd_notice("Session Id %d", request->session_id);
i = 0;
nla_for_each_nested(ssids, tb[THRESHOLD_PARAM], rem) {
if (i >= WLAN_EXTSCAN_MAX_HOTLIST_SSIDS) {
hdd_err("Too Many SSIDs, %d exceeds %d",
i, WLAN_EXTSCAN_MAX_HOTLIST_SSIDS);
break;
}
if (nla_parse(tb2, PARAM_MAX,
nla_data(ssids), nla_len(ssids),
wlan_hdd_extscan_config_policy)) {
hdd_err("nla_parse failed");
goto fail;
}
/* Parse and fetch SSID */
if (!tb2[PARAM_SSID]) {
hdd_err("attr ssid failed");
goto fail;
}
ssid_str_len = nla_strlcpy(ssid_string,
tb2[PARAM_SSID],
sizeof(ssid_string));
if (ssid_str_len > SIR_MAC_MAX_SSID_LENGTH) {
hdd_err("Invalid length exceeds max ssid length");
goto fail;
}
hdd_notice("SSID %s",
ssid_string);
ssid_len = strlen(ssid_string);
memcpy(request->ssids[i].ssid.ssId, ssid_string, ssid_len);
request->ssids[i].ssid.length = ssid_len;
/* Parse and fetch low RSSI */
if (!tb2[PARAM_BAND]) {
hdd_err("attr band failed");
goto fail;
}
request->ssids[i].band = nla_get_u8(tb2[PARAM_BAND]);
hdd_notice("band %d", request->ssids[i].band);
/* Parse and fetch low RSSI */
if (!tb2[PARAM_RSSI_LOW]) {
hdd_err("attr low RSSI failed");
goto fail;
}
request->ssids[i].rssi_low = nla_get_s32(tb2[PARAM_RSSI_LOW]);
hdd_notice("RSSI low %d", request->ssids[i].rssi_low);
/* Parse and fetch high RSSI */
if (!tb2[PARAM_RSSI_HIGH]) {
hdd_err("attr high RSSI failed");
goto fail;
}
request->ssids[i].rssi_high = nla_get_u32(tb2[PARAM_RSSI_HIGH]);
hdd_notice("RSSI high %d", request->ssids[i].rssi_high);
i++;
}
context = &ext_scan_context;
spin_lock(&context->context_lock);
INIT_COMPLETION(context->response_event);
context->request_id = request_id = request->request_id;
spin_unlock(&context->context_lock);
status = sme_set_ssid_hotlist(hdd_ctx->hHal, request);
if (!QDF_IS_STATUS_SUCCESS(status)) {
hdd_err("sme_set_ssid_hotlist failed(err=%d)", status);
goto fail;
}
qdf_mem_free(request);
/* request was sent -- wait for the response */
rc = wait_for_completion_timeout(&context->response_event,
msecs_to_jiffies
(WLAN_WAIT_TIME_EXTSCAN));
if (!rc) {
hdd_err("sme_set_ssid_hotlist timed out");
retval = -ETIMEDOUT;
} else {
spin_lock(&context->context_lock);
if (context->request_id == request_id)
retval = context->response_status;
else
retval = -EINVAL;
spin_unlock(&context->context_lock);
}
return retval;
fail:
qdf_mem_free(request);
return -EINVAL;
}
/*
* done with short names for the global vendor params
* used by wlan_hdd_cfg80211_extscan_set_ssid_hotlist()
*/
#undef PARAM_MAX
#undef PARAM_REQUEST_ID
#undef PARAMS_NUM_SSID
#undef THRESHOLD_PARAM
#undef PARAM_SSID
#undef PARAM_BAND
#undef PARAM_RSSI_LOW
#undef PARAM_RSSI_HIGH
/**
* wlan_hdd_cfg80211_extscan_set_ssid_hotlist() - set ssid hot list
* @wiphy: Pointer to wireless phy
* @wdev: Pointer to wireless device
* @data: Pointer to data
* @data_len: Data length
*
* Return: 0 on success, negative errno on failure
*/
int
wlan_hdd_cfg80211_extscan_set_ssid_hotlist(struct wiphy *wiphy,
struct wireless_dev *wdev,
const void *data,
int data_len)
{
int ret;
cds_ssr_protect(__func__);
ret = __wlan_hdd_cfg80211_extscan_set_ssid_hotlist(wiphy, wdev, data,
data_len);
cds_ssr_unprotect(__func__);
return ret;
}
/*
* define short names for the global vendor params
* used by __wlan_hdd_cfg80211_extscan_reset_ssid_hotlist()
*/
#define PARAM_MAX \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SUBCMD_CONFIG_PARAM_MAX
#define PARAM_REQUEST_ID \
QCA_WLAN_VENDOR_ATTR_EXTSCAN_SUBCMD_CONFIG_PARAM_REQUEST_ID
/**
* __wlan_hdd_cfg80211_extscan_reset_ssid_hotlist() - reset ssid hot list
* @wiphy: Pointer to wireless phy
* @wdev: Pointer to wireless device
* @data: Pointer to data
* @data_len: Data length
*
* Return: 0 on success, negative errno on failure
*/
static int
__wlan_hdd_cfg80211_extscan_reset_ssid_hotlist(struct wiphy *wiphy,
struct wireless_dev *wdev,
const void *data,
int data_len)
{
struct sir_set_ssid_hotlist_request *request;
struct net_device *dev = wdev->netdev;
hdd_adapter_t *adapter = WLAN_HDD_GET_PRIV_PTR(dev);
hdd_context_t *hdd_ctx = wiphy_priv(wiphy);
struct nlattr *tb[PARAM_MAX + 1];
struct hdd_ext_scan_context *context;
uint32_t request_id;
QDF_STATUS status;
int retval;
unsigned long rc;
ENTER_DEV(dev);
if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
hdd_err("Command not allowed in FTM mode");
return -EPERM;
}
retval = wlan_hdd_validate_context(hdd_ctx);
if (0 != retval)
return -EINVAL;
if (!hdd_ctx->config->extscan_enabled) {
hdd_err("extscan not supported");
return -ENOTSUPP;
}
if (nla_parse(tb, PARAM_MAX,
data, data_len,
wlan_hdd_extscan_config_policy)) {
hdd_err("Invalid ATTR");
return -EINVAL;
}
request = qdf_mem_malloc(sizeof(*request));
if (!request) {
hdd_err("qdf_mem_malloc failed");
return -ENOMEM;
}
/* Parse and fetch request Id */
if (!tb[PARAM_REQUEST_ID]) {
hdd_err("attr request id failed");
goto fail;
}
request->request_id = nla_get_u32(tb[PARAM_REQUEST_ID]);
hdd_notice("Request Id %d", request->request_id);
request->session_id = adapter->sessionId;
hdd_notice("Session Id %d", request->session_id);
request->lost_ssid_sample_size = 0;
request->ssid_count = 0;
context = &ext_scan_context;
spin_lock(&context->context_lock);
INIT_COMPLETION(context->response_event);
context->request_id = request_id = request->request_id;
spin_unlock(&context->context_lock);
status = sme_set_ssid_hotlist(hdd_ctx->hHal, request);
if (!QDF_IS_STATUS_SUCCESS(status)) {
hdd_err("sme_reset_ssid_hotlist failed(err=%d)", status);
goto fail;
}
qdf_mem_free(request);
/* request was sent -- wait for the response */
rc = wait_for_completion_timeout(&context->response_event,
msecs_to_jiffies
(WLAN_WAIT_TIME_EXTSCAN));
if (!rc) {
hdd_err("sme_reset_ssid_hotlist timed out");
retval = -ETIMEDOUT;
} else {
spin_lock(&context->context_lock);
if (context->request_id == request_id)
retval = context->response_status;
else
retval = -EINVAL;
spin_unlock(&context->context_lock);
}
return retval;
fail:
qdf_mem_free(request);
return -EINVAL;
}
/*
* done with short names for the global vendor params
* used by wlan_hdd_cfg80211_extscan_reset_ssid_hotlist()
*/
#undef PARAM_MAX
#undef PARAM_REQUEST_ID
/**
* wlan_hdd_cfg80211_extscan_reset_ssid_hotlist() - reset ssid hot list
* @wiphy: Pointer to wireless phy
* @wdev: Pointer to wireless device
* @data: Pointer to data
* @data_len: Data length
*
* Return: 0 on success, negative errno on failure
*/
int
wlan_hdd_cfg80211_extscan_reset_ssid_hotlist(struct wiphy *wiphy,
struct wireless_dev *wdev,
const void *data,
int data_len)
{
int ret;
cds_ssr_protect(__func__);
ret = __wlan_hdd_cfg80211_extscan_reset_ssid_hotlist(wiphy, wdev,
data, data_len);
cds_ssr_unprotect(__func__);
return ret;
}
/**
* wlan_hdd_init_completion_extwow() - Initialize ext wow variable
* @hdd_ctx: Global HDD context

Parādīt failu

@@ -104,7 +104,6 @@ typedef uint8_t tSirVersionString[SIR_VERSION_STRING_LEN];
#define WLAN_EXTSCAN_MAX_BUCKETS 16
#define WLAN_EXTSCAN_MAX_HOTLIST_APS 128
#define WLAN_EXTSCAN_MAX_SIGNIFICANT_CHANGE_APS 64
#define WLAN_EXTSCAN_MAX_HOTLIST_SSIDS 8
/* This should not be greater than MAX_NUMBER_OF_CONC_CONNECTIONS */
#define MAX_VDEV_SUPPORTED 4
@@ -164,7 +163,6 @@ typedef enum {
eSIR_PASSPOINT_NETWORK_FOUND_IND,
eSIR_EXTSCAN_SET_SSID_HOTLIST_RSP,
eSIR_EXTSCAN_RESET_SSID_HOTLIST_RSP,
eSIR_EXTSCAN_HOTLIST_SSID_MATCH_IND,
/* Keep this last */
eSIR_EXTSCAN_CALLBACK_TYPE_MAX,
@@ -4515,36 +4513,6 @@ struct sir_wisa_params {
bool mode;
uint8_t vdev_id;
};
/**
* struct sir_ssid_hotlist_param - param for SSID Hotlist
* @ssid: SSID which is being hotlisted
* @band: Band in which the given SSID should be scanned
* @rssi_low: Low bound on RSSI
* @rssi_high: High bound on RSSI
*/
struct sir_ssid_hotlist_param {
tSirMacSSid ssid;
uint8_t band;
int32_t rssi_low;
int32_t rssi_high;
};
/**
* struct sir_set_ssid_hotlist_request - set SSID hotlist request struct
* @request_id: ID of the request
* @session_id: ID of the session
* @lost_ssid_sample_size: Number of consecutive scans in which the SSID
* must not be seen in order to consider the SSID "lost"
* @ssid_count: Number of valid entries in the @ssids array
* @ssids: Array that defines the SSIDs that are in the hotlist
*/
struct sir_set_ssid_hotlist_request {
uint32_t request_id;
uint8_t session_id;
uint32_t lost_ssid_sample_size;
uint32_t ssid_count;
struct sir_ssid_hotlist_param ssids[WLAN_EXTSCAN_MAX_HOTLIST_SSIDS];
};
typedef struct {
uint32_t requestId;

Parādīt failu

@@ -575,7 +575,7 @@ typedef struct sSirMbMsgP2p {
#define SIR_HAL_SET_EPNO_LIST_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 313)
#define SIR_HAL_SET_PASSPOINT_LIST_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 316)
#define SIR_HAL_RESET_PASSPOINT_LIST_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 317)
#define SIR_HAL_EXTSCAN_SET_SSID_HOTLIST_REQ (SIR_HAL_ITC_MSG_TYPES_BEGIN + 318)
/* 318 unused */
#define SIR_HAL_OCB_SET_CONFIG_CMD (SIR_HAL_ITC_MSG_TYPES_BEGIN + 319)
#define SIR_HAL_OCB_SET_UTC_TIME_CMD (SIR_HAL_ITC_MSG_TYPES_BEGIN + 320)

Parādīt failu

@@ -691,7 +691,6 @@ uint8_t *mac_trace_get_wma_msg_string(uint16_t wma_msg)
CASE_RETURN_STRING(WMA_SET_EPNO_LIST_REQ);
CASE_RETURN_STRING(WMA_SET_PASSPOINT_LIST_REQ);
CASE_RETURN_STRING(WMA_RESET_PASSPOINT_LIST_REQ);
CASE_RETURN_STRING(WMA_EXTSCAN_SET_SSID_HOTLIST_REQ);
#endif /* FEATURE_WLAN_EXTSCAN */
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
CASE_RETURN_STRING(WMA_LINK_LAYER_STATS_CLEAR_REQ);

Parādīt failu

@@ -867,9 +867,6 @@ QDF_STATUS sme_set_passpoint_list(tHalHandle hal,
struct wifi_passpoint_req *req_msg);
QDF_STATUS sme_reset_passpoint_list(tHalHandle hal,
struct wifi_passpoint_req *req_msg);
QDF_STATUS
sme_set_ssid_hotlist(tHalHandle hal,
struct sir_set_ssid_hotlist_request *request);
QDF_STATUS sme_ext_scan_register_callback(tHalHandle hHal,
void (*pExtScanIndCb)(void *, const uint16_t, void *));

Parādīt failu

@@ -13323,50 +13323,6 @@ QDF_STATUS sme_reset_passpoint_list(tHalHandle hal,
return status;
}
/**
* sme_set_ssid_hotlist() - Set the SSID hotlist
* @hal: SME handle
* @request: set ssid hotlist request
*
* Return: QDF_STATUS
*/
QDF_STATUS
sme_set_ssid_hotlist(tHalHandle hal,
struct sir_set_ssid_hotlist_request *request)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpAniSirGlobal mac = PMAC_STRUCT(hal);
struct scheduler_msg message;
struct sir_set_ssid_hotlist_request *set_req;
set_req = qdf_mem_malloc(sizeof(*set_req));
if (!set_req) {
sms_log(mac, LOGE, FL("qdf_mem_malloc failed"));
return QDF_STATUS_E_FAILURE;
}
*set_req = *request;
status = sme_acquire_global_lock(&mac->sme);
if (QDF_STATUS_SUCCESS == status) {
/* Serialize the req through MC thread */
message.bodyptr = set_req;
message.type = WMA_EXTSCAN_SET_SSID_HOTLIST_REQ;
status = scheduler_post_msg(QDF_MODULE_ID_WMA, &message);
sme_release_global_lock(&mac->sme);
if (!QDF_IS_STATUS_SUCCESS(status)) {
qdf_mem_free(set_req);
status = QDF_STATUS_E_FAILURE;
}
} else {
sms_log(mac, LOGE,
FL("sme_acquire_global_lock failed!(status=%d)"),
status);
qdf_mem_free(set_req);
status = QDF_STATUS_E_FAILURE;
}
return status;
}
QDF_STATUS sme_ext_scan_register_callback(tHalHandle hHal,
void (*pExtScanIndCb)(void *,
const uint16_t,

Parādīt failu

@@ -351,10 +351,6 @@ int wma_passpoint_match_event_handler(void *handle,
uint8_t *cmd_param_info,
uint32_t len);
int
wma_extscan_hotlist_ssid_match_event_handler(void *handle,
uint8_t *cmd_param_info,
uint32_t len);
#endif
void wma_register_extscan_event_handler(tp_wma_handle wma_handle);
@@ -410,9 +406,6 @@ QDF_STATUS wma_set_passpoint_network_list(tp_wma_handle wma,
QDF_STATUS wma_reset_passpoint_network_list(tp_wma_handle wma,
struct wifi_passpoint_req *req);
QDF_STATUS
wma_set_ssid_hotlist(tp_wma_handle wma,
struct sir_set_ssid_hotlist_request *request);
#endif
QDF_STATUS wma_ipa_offload_enable_disable(tp_wma_handle wma,

Parādīt failu

@@ -417,7 +417,6 @@
#define WMA_SET_EPNO_LIST_REQ SIR_HAL_SET_EPNO_LIST_REQ
#define WMA_SET_PASSPOINT_LIST_REQ SIR_HAL_SET_PASSPOINT_LIST_REQ
#define WMA_RESET_PASSPOINT_LIST_REQ SIR_HAL_RESET_PASSPOINT_LIST_REQ
#define WMA_EXTSCAN_SET_SSID_HOTLIST_REQ SIR_HAL_EXTSCAN_SET_SSID_HOTLIST_REQ
#endif /* FEATURE_WLAN_EXTSCAN */

Parādīt failu

@@ -2117,10 +2117,6 @@ static int wma_extscan_get_eventid_from_tlvtag(uint32_t tag)
event_id = WMI_EXTSCAN_CAPABILITIES_EVENTID;
break;
case WMITLV_TAG_STRUC_wmi_extscan_hotlist_ssid_match_event_fixed_param:
event_id = WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID;
break;
default:
event_id = 0;
WMA_LOGE("%s: Unknown tag: %d", __func__, tag);

Parādīt failu

@@ -6836,11 +6836,6 @@ QDF_STATUS wma_mc_process_msg(void *cds_context, struct scheduler_msg *msg)
wma_reset_passpoint_network_list(wma_handle,
(struct wifi_passpoint_req *)msg->bodyptr);
break;
case WMA_EXTSCAN_SET_SSID_HOTLIST_REQ:
wma_set_ssid_hotlist(wma_handle,
(struct sir_set_ssid_hotlist_request *)msg->bodyptr);
qdf_mem_free(msg->bodyptr);
break;
#endif /* FEATURE_WLAN_EXTSCAN */
case WMA_SET_SCAN_MAC_OUI_REQ:
wma_scan_probe_setoui(wma_handle, msg->bodyptr);

Parādīt failu

@@ -3406,11 +3406,6 @@ void wma_extscan_wow_event_callback(void *handle, void *event, uint32_t len)
wma_extscan_capabilities_event_handler(handle, event, len);
break;
case WMITLV_TAG_STRUC_wmi_extscan_hotlist_ssid_match_event_fixed_param:
wma_extscan_hotlist_ssid_match_event_handler(handle,
event, len);
break;
default:
WMA_LOGE(FL("Unknown tag: %d"), tag);
break;
@@ -3639,12 +3634,6 @@ void wma_register_extscan_event_handler(tp_wma_handle wma_handle)
wma_passpoint_match_event_handler,
WMA_RX_SERIALIZER_CTX);
wmi_unified_register_event_handler(wma_handle->wmi_handle,
WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID,
wma_extscan_hotlist_ssid_match_event_handler,
WMA_RX_SERIALIZER_CTX);
return;
}
@@ -4566,102 +4555,6 @@ int wma_passpoint_match_event_handler(void *handle,
return 0;
}
/**
* wma_extscan_hotlist_ssid_match_event_handler() -
* Handler for SSID hotlist match event from firmware
* @handle: WMA handle
* @cmd_param_info: WMI command buffer
* @len: length of @cmd_param_info
*
* Return: 0 on success, non-zero on failure
*/
int
wma_extscan_hotlist_ssid_match_event_handler(void *handle,
uint8_t *cmd_param_info,
uint32_t len)
{
WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID_param_tlvs *param_buf;
wmi_extscan_hotlist_ssid_match_event_fixed_param *event;
tSirWifiScanResultEvent *dest_hotlist;
tSirWifiScanResult *dest_ap;
wmi_extscan_wlan_descriptor *src_hotlist;
int numap, j;
bool ssid_found = false;
tpAniSirGlobal mac = cds_get_context(QDF_MODULE_ID_PE);
if (!mac) {
WMA_LOGE("%s: Invalid mac", __func__);
return -EINVAL;
}
if (!mac->sme.pExtScanIndCb) {
WMA_LOGE("%s: Callback not registered", __func__);
return -EINVAL;
}
param_buf = (WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID_param_tlvs *)
cmd_param_info;
if (!param_buf) {
WMA_LOGE("%s: Invalid hotlist match event", __func__);
return -EINVAL;
}
event = param_buf->fixed_param;
src_hotlist = param_buf->hotlist_ssid_match;
numap = event->total_entries;
if (!src_hotlist || !numap) {
WMA_LOGE("%s: Hotlist AP's list invalid", __func__);
return -EINVAL;
}
dest_hotlist = qdf_mem_malloc(sizeof(*dest_hotlist) +
sizeof(*dest_ap) * numap);
if (!dest_hotlist) {
WMA_LOGE("%s: Allocation failed for hotlist buffer",
__func__);
return -EINVAL;
}
dest_ap = &dest_hotlist->ap[0];
dest_hotlist->numOfAps = event->total_entries;
dest_hotlist->requestId = event->config_request_id;
if (event->first_entry_index +
event->num_entries_in_page < event->total_entries)
dest_hotlist->moreData = 1;
else
dest_hotlist->moreData = 0;
WMA_LOGD("%s: Hotlist match: requestId: %u,numOfAps: %d", __func__,
dest_hotlist->requestId, dest_hotlist->numOfAps);
for (j = 0; j < numap; j++) {
dest_ap->channel = src_hotlist->channel;
dest_ap->ts = src_hotlist->tstamp;
ssid_found = src_hotlist->flags & WMI_HOTLIST_FLAG_PRESENCE;
dest_ap->rtt = src_hotlist->rtt;
dest_ap->rtt_sd = src_hotlist->rtt_sd;
dest_ap->beaconPeriod = src_hotlist->beacon_interval;
dest_ap->capability = src_hotlist->capabilities;
dest_ap->ieLength = src_hotlist->ie_length;
WMI_MAC_ADDR_TO_CHAR_ARRAY(&src_hotlist->bssid,
dest_ap->bssid.bytes);
qdf_mem_copy(dest_ap->ssid, src_hotlist->ssid.ssid,
src_hotlist->ssid.ssid_len);
dest_ap->ssid[src_hotlist->ssid.ssid_len] = '\0';
dest_ap++;
src_hotlist++;
}
dest_hotlist->ap_found = ssid_found;
mac->sme.pExtScanIndCb(mac->hHdd,
eSIR_EXTSCAN_HOTLIST_SSID_MATCH_IND,
dest_hotlist);
WMA_LOGI("%s: sending hotlist ssid match event", __func__);
qdf_mem_free(dest_hotlist);
return 0;
}
/**
* wma_get_buf_extscan_start_cmd() - Fill extscan start request
* @handle: wma handle
@@ -5649,41 +5542,6 @@ QDF_STATUS wma_reset_passpoint_network_list(tp_wma_handle wma,
return status;
}
/**
* wma_set_ssid_hotlist() - Handle an SSID hotlist set request
* @wma: WMA handle
* @request: SSID hotlist set request from SME
*
* Return: QDF_STATUS enumeration
*/
QDF_STATUS
wma_set_ssid_hotlist(tp_wma_handle wma,
struct sir_set_ssid_hotlist_request *request)
{
if (!wma || !wma->wmi_handle) {
WMA_LOGE("%s: WMA is closed, can not issue hotlist cmd",
__func__);
return QDF_STATUS_E_FAILURE;
}
if (!request) {
WMA_LOGE("%s: Invalid request buffer", __func__);
return QDF_STATUS_E_FAILURE;
}
if (!WMI_SERVICE_IS_ENABLED(wma->wmi_service_bitmap,
WMI_SERVICE_EXTSCAN)) {
WMA_LOGE("%s: extscan not enabled",
__func__);
return QDF_STATUS_E_NOSUPPORT;
}
if (wmi_unified_set_ssid_hotlist_cmd(wma->wmi_handle,
(struct ssid_hotlist_request_params *)request)) {
return QDF_STATUS_E_FAILURE;
}
return QDF_STATUS_SUCCESS;
}
#endif
/**