qcacld-3.0: Remove legacy P2P codes in SME

To reduce code size, remove legacy P2P codes in SME layer.

Change-Id: I2f7d4c14d4ba2df9360351bdc55a8ba92ec9caf9
CRs-Fixed: 2111574
This commit is contained in:
Wu Gao 2017-09-18 18:58:45 +08:00 • committed by snandini
commit aa06e3511c
10 changed files with 29 additions and 484 deletions

View file

@ -482,7 +482,6 @@ typedef enum {
eCSR_ROAM_WPS_PBC_PROBE_REQ_IND,
eCSR_ROAM_FT_RESPONSE,
eCSR_ROAM_FT_START,
eCSR_ROAM_REMAIN_CHAN_READY,
/* this mean error happens before assoc_start/roam_start is called. */
eCSR_ROAM_SESSION_OPENED,
eCSR_ROAM_FT_REASSOC_FAILED,

View file

@ -1,113 +0,0 @@
/*
* Copyright (c) 2011-2012, 2014-2017 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/*
* This file was originally distributed by Qualcomm Atheros, Inc.
* under proprietary terms before Copyright ownership was assigned
* to the Linux Foundation.
*/
/**
*
* Name: p2p_api.h
*
* Description: P2P FSM defines.
*
*
*/
#ifndef __P2P_API_H__
#define __P2P_API_H__
#include "qdf_types.h"
#include "qdf_mc_timer.h"
#include "qdf_lock.h"
typedef struct sP2pPsConfig {
uint8_t opp_ps;
uint32_t ctWindow;
uint8_t count;
uint32_t duration;
uint32_t interval;
uint32_t single_noa_duration;
uint8_t psSelection;
uint8_t sessionid;
} tP2pPsConfig, *tpP2pPsConfig;
typedef QDF_STATUS (*remainOnChanCallback)(tHalHandle, void *context,
QDF_STATUS status, uint32_t scan_id);
typedef struct sRemainOnChn {
uint8_t chn;
uint32_t duration;
remainOnChanCallback callback;
void *pCBContext;
} tRemainOnChn, tpRemainOnChn;
#define SIZE_OF_NOA_DESCRIPTOR 13
#define MAX_NOA_PERIOD_IN_MICROSECS 3000000
#define P2P_CLEAR_POWERSAVE 0
#define P2P_OPPORTUNISTIC_PS 1
#define P2P_PERIODIC_NOA 2
#define P2P_SINGLE_NOA 4
typedef struct sp2pContext {
tHalHandle hHal;
uint8_t sessionId; /* Session id corresponding to P2P */
uint8_t SMEsessionId;
uint8_t probeReqForwarding;
uint8_t *probeRspIe;
uint32_t probeRspIeLength;
} tp2pContext, *tPp2pContext;
QDF_STATUS sme_remain_on_chn_rsp(tpAniSirGlobal pMac, uint8_t *pMsg);
QDF_STATUS sme_remain_on_chn_ready(tHalHandle hHal, uint8_t *pMsg);
QDF_STATUS sme_remain_on_channel(tHalHandle hHal, uint8_t sessionId,
uint8_t channel, uint32_t duration,
remainOnChanCallback callback,
void *pContext, uint8_t isP2PProbeReqAllowed,
uint32_t *scan_id);
QDF_STATUS sme_report_probe_req(tHalHandle hHal, uint8_t flag);
QDF_STATUS sme_update_p2p_ie(tHalHandle hHal, void *p2pIe,
uint32_t p2pIeLength);
QDF_STATUS sme_send_action(tHalHandle hHal, uint8_t sessionId,
const uint8_t *pBuf, uint32_t len, uint16_t wait, bool noack,
uint16_t channel_freq);
QDF_STATUS sme_cancel_remain_on_channel(tHalHandle hHal,
uint8_t sessionId, uint32_t scan_id);
QDF_STATUS sme_p2p_open(tHalHandle hHal);
QDF_STATUS p2p_stop(tHalHandle hHal);
QDF_STATUS sme_p2p_close(tHalHandle hHal);
QDF_STATUS sme_p2p_set_ps(tHalHandle hHal, tP2pPsConfig *data);
QDF_STATUS p2p_remain_on_channel(tHalHandle hHal, uint8_t sessionId,
uint8_t channel, uint32_t duration,
remainOnChanCallback callback,
void *pContext, uint8_t isP2PProbeReqAllowed,
uint32_t scan_id);
QDF_STATUS p2p_send_action(tHalHandle hHal, uint8_t sessionId,
const uint8_t *pBuf, uint32_t len, uint16_t wait, bool noack,
uint16_t channel_freq);
QDF_STATUS p2p_cancel_remain_on_channel(tHalHandle hHal,
uint8_t sessionId, uint32_t scan_id);
QDF_STATUS p2p_set_ps(tHalHandle hHal, tP2pPsConfig *pNoA);
tSirRFBand get_rf_band(uint8_t channel);
#endif /* __P2P_API_H__ */

View file

@ -41,7 +41,6 @@
#include "qdf_lock.h"
#include "qdf_types.h"
#include "sir_api.h"
#include "p2p_api.h"
#include "cds_regdomain.h"
#include "sme_internal.h"
#include "wma_tgt_cfg.h"
@ -1268,8 +1267,6 @@ void sme_get_vdev_type_nss(enum tQDF_ADAPTER_MODE dev_mode,
uint8_t *nss_2g, uint8_t *nss_5g);
QDF_STATUS sme_roam_set_default_key_index(tHalHandle hal, uint8_t session_id,
uint8_t default_idx);
QDF_STATUS sme_register_p2p_ack_ind_callback(tHalHandle hal,
sir_p2p_ack_ind_callback callback);
void sme_send_disassoc_req_frame(tHalHandle hal, uint8_t session_id, uint8_t
*peer_mac, uint16_t reason, uint8_t
wait_for_ack);

View file

@ -90,9 +90,6 @@ typedef struct sRemainChlCmd {
void *callbackCtx;
} tRemainChlCmd;
typedef struct sNoACmd {
tP2pPsConfig NoA;
} tNoACmd;
#ifdef FEATURE_WLAN_TDLS
typedef struct TdlsSendMgmtInfo {
tSirMacAddr peerMac;
@ -177,7 +174,6 @@ typedef struct tagSmeCmd {
tGenericPmcCmd pmcCmd;
tGenericQosCmd qosCmd;
tRemainChlCmd remainChlCmd;
tNoACmd NoACmd;
struct addstafor_sessioncmd addStaSessionCmd;
struct delstafor_sessionCmd delStaSessionCmd;
#ifdef FEATURE_WLAN_TDLS

View file

@ -82,7 +82,6 @@ typedef enum eSmeCommandType {
eSmeQosCommandMask = 0x40000, /* To identify Qos commands */
eSmeCommandAddTs,
eSmeCommandDelTs,
eSmeCommandRemainOnChannel,
e_sme_command_set_hw_mode,
e_sme_command_nss_update,
e_sme_command_set_dual_mac_config,

View file

@ -536,9 +536,6 @@ QDF_STATUS sme_ser_handle_active_cmd(struct wlan_serialization_command *cmd)
CSR_ACTIVE_SCAN_LIST_CMD_TIMEOUT);
status = csr_process_scan_command(mac_ctx, sme_cmd);
break;
case eSmeCommandRemainOnChannel:
status = p2p_process_remain_on_channel_cmd(mac_ctx, sme_cmd);
break;
/*
* Treat standby differently here because caller may not be able
* to handle the failure so we do our best here
@ -780,7 +777,6 @@ QDF_STATUS sme_open(tHalHandle hHal)
sme_err("rrm_open failed, status: %d", status);
return status;
}
sme_p2p_open(pMac);
sme_trace_init(pMac);
sme_register_debug_callback();
wlan_serialization_legacy_init_callback();
@ -1342,41 +1338,6 @@ static QDF_STATUS sme_handle_scan_req(tpAniSirGlobal mac_ctx,
return status;
}
/**
* sme_handle_roc_req() - Roc request handler
* @mac_ctx: MAC global context
* @msg: message buffer
*
* Roc request message from upper layer is handled as
* part of this API
*
* Return: QDF_STATUS
*/
static QDF_STATUS sme_handle_roc_req(tHalHandle hal,
void *msg)
{
struct ani_roc_req *roc_msg;
QDF_STATUS status = QDF_STATUS_E_FAILURE;
remainOnChanCallback callback;
if (msg == NULL) {
sme_err("ROC request is NULL");
return status;
}
roc_msg = msg;
callback = roc_msg->callback;
status = p2p_remain_on_channel(hal, roc_msg->session_id,
roc_msg->channel, roc_msg->duration, callback,
roc_msg->ctx, roc_msg->is_p2pprobe_allowed,
roc_msg->scan_id);
if (!QDF_IS_STATUS_SUCCESS(status))
sme_err("Scan request failed. session_id: %d scan_id: %d",
roc_msg->session_id, roc_msg->scan_id);
return status;
}
static QDF_STATUS dfs_msg_processor(tpAniSirGlobal mac,
struct scheduler_msg *msg)
{
@ -2164,22 +2125,6 @@ QDF_STATUS sme_process_msg(tHalHandle hHal, struct scheduler_msg *pMsg)
sme_err("Empty message for: %d", pMsg->type);
}
break;
case eWNI_SME_REMAIN_ON_CHN_RSP:
if (pMsg->bodyptr) {
status = sme_remain_on_chn_rsp(pMac, pMsg->bodyptr);
qdf_mem_free(pMsg->bodyptr);
} else {
sme_err("Empty message for: %d", pMsg->type);
}
break;
case eWNI_SME_REMAIN_ON_CHN_RDY_IND:
if (pMsg->bodyptr) {
status = sme_remain_on_chn_ready(pMac, pMsg->bodyptr);
qdf_mem_free(pMsg->bodyptr);
} else {
sme_err("Empty message for: %d", pMsg->type);
}
break;
case eWNI_SME_CHANGE_COUNTRY_CODE:
if (pMsg->bodyptr) {
status = sme_handle_change_country_code((void *)pMac,
@ -2206,14 +2151,6 @@ QDF_STATUS sme_process_msg(tHalHandle hHal, struct scheduler_msg *pMsg)
sme_err("Empty message for: %d", pMsg->type);
}
break;
case eWNI_SME_ROC_CMD:
if (pMsg->bodyptr) {
status = sme_handle_roc_req(hHal, pMsg->bodyptr);
qdf_mem_free(pMsg->bodyptr);
} else {
sme_err("Empty message for: %d", pMsg->type);
}
break;
#ifdef WLAN_FEATURE_11W
case eWNI_SME_UNPROT_MGMT_FRM_IND:
if (pMsg->bodyptr) {
@ -2666,8 +2603,6 @@ QDF_STATUS sme_stop(tHalHandle hHal, tHalStopType stopType)
QDF_STATUS fail_status = QDF_STATUS_SUCCESS;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
p2p_stop(hHal);
status = rrm_stop(pMac);
if (!QDF_IS_STATUS_SUCCESS(status)) {
sme_err("rrm_stop failed with status: %d", status);
@ -2737,8 +2672,6 @@ QDF_STATUS sme_close(tHalHandle hHal)
fail_status = status;
}
sme_p2p_close(hHal);
free_sme_cmd_list(pMac);
if (!QDF_IS_STATUS_SUCCESS
@ -5712,42 +5645,6 @@ QDF_STATUS sme_get_operation_channel(tHalHandle hHal, uint32_t *pChannel,
return QDF_STATUS_E_FAILURE;
} /* sme_get_operation_channel ends here */
/**
* sme_register_p2p_ack_ind_callback() - p2p ack indication callback
* @hal: hal pointer
* @callback: callback pointer to be registered
*
* This function is used to register a callback to PE for p2p ack
* indication
*
* Return: Success if msg is posted to PE else Failure.
*/
QDF_STATUS sme_register_p2p_ack_ind_callback(tHalHandle hal,
sir_p2p_ack_ind_callback callback)
{
tpAniSirGlobal mac_ctx = PMAC_STRUCT(hal);
struct sir_sme_p2p_ack_ind_cb_req *msg;
QDF_STATUS status = QDF_STATUS_SUCCESS;
status = sme_acquire_global_lock(&mac_ctx->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
msg = qdf_mem_malloc(sizeof(*msg));
if (NULL == msg) {
sme_err("Failed to allocate memory");
sme_release_global_lock(&mac_ctx->sme);
return QDF_STATUS_E_NOMEM;
}
msg->message_type = eWNI_SME_REGISTER_P2P_ACK_CB;
msg->length = sizeof(*msg);
msg->callback = callback;
status = umac_send_mb_message_to_mac(msg);
sme_release_global_lock(&mac_ctx->sme);
return status;
}
return status;
}
/**
* sme_register_mgmt_frame_ind_callback() - Register a callback for
* management frame indication to PE.
@ -5904,211 +5801,6 @@ QDF_STATUS sme_deregister_mgmt_frame(tHalHandle hHal, uint8_t sessionId,
return status;
}
/**
* sme_remain_on_channel - API to request remain on channel for 'x' duration
*
* @hHal: pointer to MAC handle
* @session_id: Session identifier
* @channel: channel information
* @duration: duration in ms
* @callback: HDD registered callback to process reaminOnChannelRsp
* @context: HDD Callback param
* @scan_id: scan identifier
*
* This function process the roc request and generates scan identifier.s
*
* Return: QDF_STATUS
*/
QDF_STATUS sme_remain_on_channel(tHalHandle hHal, uint8_t session_id,
uint8_t channel, uint32_t duration,
remainOnChanCallback callback,
void *pContext, uint8_t isP2PProbeReqAllowed,
uint32_t *scan_id)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpAniSirGlobal mac_ctx = PMAC_STRUCT(hHal);
uint32_t san_req_id, scan_count;
struct ani_roc_req *roc_msg;
struct scheduler_msg msg = {0};
MTRACE(qdf_trace(QDF_MODULE_ID_SME,
TRACE_CODE_SME_RX_HDD_REMAIN_ONCHAN, session_id, 0));
scan_count = csr_scan_active_ll_count(mac_ctx);
if (scan_count >= mac_ctx->scan.max_scan_count) {
sme_err("Max scan reached");
return QDF_STATUS_E_FAILURE;
}
wma_get_scan_id(&san_req_id);
*scan_id = san_req_id;
status = sme_acquire_global_lock(&mac_ctx->sme);
roc_msg = qdf_mem_malloc(sizeof(struct ani_roc_req));
if (NULL == roc_msg) {
sme_err("scan_req: failed to allocate mem for msg");
sme_release_global_lock(&mac_ctx->sme);
return QDF_STATUS_E_NOMEM;
}
roc_msg->msg_type = eWNI_SME_ROC_CMD;
roc_msg->msg_len = (uint16_t) sizeof(struct ani_roc_req);
roc_msg->session_id = session_id;
roc_msg->callback = callback;
roc_msg->duration = duration;
roc_msg->channel = channel;
roc_msg->is_p2pprobe_allowed = isP2PProbeReqAllowed;
roc_msg->ctx = pContext;
roc_msg->scan_id = *scan_id;
msg.type = eWNI_SME_ROC_CMD;
msg.bodyptr = roc_msg;
msg.reserved = 0;
msg.bodyval = 0;
if (QDF_STATUS_SUCCESS !=
scheduler_post_msg(QDF_MODULE_ID_SME, &msg)) {
sme_err("sme_scan_req failed to post msg");
qdf_mem_free(roc_msg);
status = QDF_STATUS_E_FAILURE;
}
sme_release_global_lock(&mac_ctx->sme);
return status;
}
/*
* sme_report_probe_req() -
* API to enable/disable forwarding of probeReq to apps in p2p.
*
* hHal - The handle returned by mac_open.
* falg: to set the Probe request forarding to wpa_supplicant in listen state
* in p2p
* Return QDF_STATUS
*/
#ifndef WLAN_FEATURE_CONCURRENT_P2P
QDF_STATUS sme_report_probe_req(tHalHandle hHal, uint8_t flag)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
do {
/* acquire the lock for the sme object */
status = sme_acquire_global_lock(&pMac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
/* call set in context */
pMac->p2pContext.probeReqForwarding = flag;
/* release the lock for the sme object */
sme_release_global_lock(&pMac->sme);
}
} while (0);
return status;
}
/*
* sme_update_p2p_ie() -
* API to set the P2p Ie in p2p context
*
* hHal - The handle returned by mac_open.
* p2pIe - Ptr to p2pIe from HDD.
* p2pIeLength: length of p2pIe
* Return QDF_STATUS
*/
QDF_STATUS sme_update_p2p_ie(tHalHandle hHal, void *p2pIe, uint32_t p2pIeLength)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
MTRACE(qdf_trace(QDF_MODULE_ID_SME,
TRACE_CODE_SME_RX_HDD_UPDATE_P2P_IE, NO_SESSION, 0));
/* acquire the lock for the sme object */
status = sme_acquire_global_lock(&pMac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
if (NULL != pMac->p2pContext.probeRspIe) {
qdf_mem_free(pMac->p2pContext.probeRspIe);
pMac->p2pContext.probeRspIeLength = 0;
}
pMac->p2pContext.probeRspIe = qdf_mem_malloc(p2pIeLength);
if (NULL == pMac->p2pContext.probeRspIe) {
sme_err("Unable to allocate P2P IE");
pMac->p2pContext.probeRspIeLength = 0;
status = QDF_STATUS_E_NOMEM;
} else {
pMac->p2pContext.probeRspIeLength = p2pIeLength;
qdf_mem_copy((uint8_t *) pMac->p2pContext.probeRspIe,
p2pIe, p2pIeLength);
}
/* release the lock for the sme object */
sme_release_global_lock(&pMac->sme);
}
return status;
}
#endif
/*
* sme_send_action() -
* API to send action frame from supplicant.
*
* hHal - The handle returned by mac_open.
* Return QDF_STATUS
*/
QDF_STATUS sme_send_action(tHalHandle hHal, uint8_t sessionId,
const uint8_t *pBuf, uint32_t len,
uint16_t wait, bool noack,
uint16_t channel_freq)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
MTRACE(qdf_trace(QDF_MODULE_ID_SME,
TRACE_CODE_SME_RX_HDD_SEND_ACTION, sessionId, 0));
/* acquire the lock for the sme object */
status = sme_acquire_global_lock(&pMac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
p2p_send_action(hHal, sessionId, pBuf, len, wait, noack,
channel_freq);
/* release the lock for the sme object */
sme_release_global_lock(&pMac->sme);
}
return status;
}
QDF_STATUS sme_cancel_remain_on_channel(tHalHandle hHal,
uint8_t sessionId, uint32_t scan_id)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
MTRACE(qdf_trace(QDF_MODULE_ID_SME,
TRACE_CODE_SME_RX_HDD_CANCEL_REMAIN_ONCHAN, sessionId,
0));
status = sme_acquire_global_lock(&pMac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
status = p2p_cancel_remain_on_channel(hHal, sessionId, scan_id);
sme_release_global_lock(&pMac->sme);
}
return status;
}
/* Power Save Related */
QDF_STATUS sme_p2p_set_ps(tHalHandle hHal, tP2pPsConfig *data)
{
QDF_STATUS status = QDF_STATUS_SUCCESS;
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
status = sme_acquire_global_lock(&pMac->sme);
if (QDF_IS_STATUS_SUCCESS(status)) {
status = p2p_set_ps(hHal, data);
sme_release_global_lock(&pMac->sme);
}
return status;
}
#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
/**
* sme_configure_ext_wow() - configure Extr WoW

View file

@ -189,7 +189,6 @@ static uint8_t *sme_trace_get_command_string(uint32_t command)
CASE_RETURN_STRING(eSmeQosCommandMask);
CASE_RETURN_STRING(eSmeCommandAddTs);
CASE_RETURN_STRING(eSmeCommandDelTs);
CASE_RETURN_STRING(eSmeCommandRemainOnChannel);
CASE_RETURN_STRING(e_sme_command_set_hw_mode);
CASE_RETURN_STRING(e_sme_command_nss_update);
CASE_RETURN_STRING(e_sme_command_set_dual_mac_config);

View file

@ -1351,43 +1351,9 @@ void csr_release_command_wm_status_change(tpAniSirGlobal pMac,
csr_reinit_wm_status_change_cmd(pMac, pCommand);
}
/**
* csr_release_roc_req_cmd() - Release the command
* @mac_ctx: Global MAC Context
*
* Release the remain on channel request command from the queue
*
* Return: None
*/
void csr_release_roc_req_cmd(tpAniSirGlobal mac_ctx, tSmeCmd *sme_cmd)
{
if (eSmeCommandRemainOnChannel == sme_cmd->command) {
remainOnChanCallback callback =
sme_cmd->u.remainChlCmd.callback;
/* process the msg */
if (callback)
callback(mac_ctx,
sme_cmd->u.remainChlCmd.callbackCtx, 0,
sme_cmd->u.remainChlCmd.scan_id);
sme_err("Remove RoC Request from Active Cmd List");
}
}
void csr_cancel_command(tpAniSirGlobal mac_ctx, tSmeCmd *sme_cmd)
{
switch (sme_cmd->command) {
case eSmeCommandRemainOnChannel:
if (NULL != sme_cmd->u.remainChlCmd.callback) {
remainOnChanCallback callback =
sme_cmd->u.remainChlCmd.callback;
/* process the msg */
if (callback) {
callback(mac_ctx, sme_cmd->u.remainChlCmd.
callbackCtx, eCSR_SCAN_ABORT,
sme_cmd->u.remainChlCmd.scan_id);
}
}
break;
case eSmeCommandScan:
/*
* We need to inform the requester before dropping
@ -18988,9 +18954,6 @@ static void csr_free_cmd_memory(tpAniSirGlobal pMac, tSmeCmd *pCommand)
case eSmeCommandNdpDataEndInitiatorRequest:
csr_release_ndp_data_end_req(pMac, pCommand);
break;
case eSmeCommandRemainOnChannel:
csr_release_roc_req_cmd(pMac, pCommand);
break;
default:
break;
}
@ -19030,8 +18993,7 @@ void csr_release_command(tpAniSirGlobal mac_ctx, tSmeCmd *sme_cmd)
}
qdf_mem_zero(&cmd_info,
sizeof(struct wlan_serialization_queued_cmd_info));
if (sme_cmd->command == eSmeCommandScan ||
sme_cmd->command == eSmeCommandRemainOnChannel) {
if (sme_cmd->command == eSmeCommandScan) {
sme_debug("filled cmd_id[%d]",
sme_cmd->u.scanCmd.scanID);
cmd_info.cmd_id = sme_cmd->u.scanCmd.scanID;
@ -19214,9 +19176,6 @@ enum wlan_serialization_cmd_type csr_get_cmd_type(tSmeCmd *sme_cmd)
case eSmeCommandNdpDataEndInitiatorRequest:
cmd_type = WLAN_SER_CMD_NDP_DATA_END_INIT_REQ;
break;
case eSmeCommandRemainOnChannel:
cmd_type = WLAN_SER_CMD_REMAIN_ON_CHANNEL;
break;
case eSmeCommandEnterStandby:
cmd_type = WLAN_SER_CMD_ENTER_STANDBY;
break;
@ -19291,8 +19250,7 @@ QDF_STATUS csr_set_serialization_params_to_cmd(tpAniSirGlobal mac_ctx,
* no need to fill command id for non-scan as they will be
* zero always
*/
if (sme_cmd->command == eSmeCommandScan ||
sme_cmd->command == eSmeCommandRemainOnChannel) {
if (sme_cmd->command == eSmeCommandScan) {
cmd->cmd_id = sme_cmd->u.scanCmd.scanID;
sme_debug("cmd_id[%d]", sme_cmd->u.scanCmd.scanID);
} else {
@ -19342,8 +19300,7 @@ QDF_STATUS csr_queue_sme_command(tpAniSirGlobal mac_ctx, tSmeCmd *sme_cmd,
}
}
if ((eSmeCommandScan == sme_cmd->command) ||
(sme_cmd->command == eSmeCommandRemainOnChannel)) {
if (eSmeCommandScan == sme_cmd->command) {
if (csr_scan_active_ll_count(mac_ctx) >=
mac_ctx->scan.max_scan_count) {
sme_err("Max scan reached");

View file

@ -490,6 +490,29 @@ csr_neighbor_roam_prepare_scan_profile_filter(tpAniSirGlobal pMac,
return QDF_STATUS_SUCCESS;
}
/**
* get_rf_band()
*
* @channel: channel number
*
* This function is used to translate channel number to band
*
* Return: SIR_BAND_2_4_GHZ - if 2.4GHZ channel
* SIR_BAND_5_GHZ - if 5GHZ channel
*/
static tSirRFBand get_rf_band(uint8_t channel)
{
if ((channel >= SIR_11A_CHANNEL_BEGIN) &&
(channel <= SIR_11A_CHANNEL_END))
return SIR_BAND_5_GHZ;
if ((channel >= SIR_11B_CHANNEL_BEGIN) &&
(channel <= SIR_11B_CHANNEL_END))
return SIR_BAND_2_4_GHZ;
return SIR_BAND_UNKNOWN;
}
/**
* csr_neighbor_roam_channels_filter_by_current_band()
*

View file

@ -231,7 +231,6 @@ const char *get_e_roam_cmd_status_str(eRoamCmdStatus val)
CASE_RETURN_STR(eCSR_ROAM_WPS_PBC_PROBE_REQ_IND);
CASE_RETURN_STR(eCSR_ROAM_FT_RESPONSE);
CASE_RETURN_STR(eCSR_ROAM_FT_START);
CASE_RETURN_STR(eCSR_ROAM_REMAIN_CHAN_READY);
CASE_RETURN_STR(eCSR_ROAM_SESSION_OPENED);
CASE_RETURN_STR(eCSR_ROAM_FT_REASSOC_FAILED);
CASE_RETURN_STR(eCSR_ROAM_PMK_NOTIFY);
@ -658,8 +657,7 @@ tListElem *csr_scan_active_ll_next(struct sAniSirGlobal *mac_ctx,
if (!entry)
return NULL;
sme_cmd = GET_BASE_ADDR(entry, tSmeCmd, Link);
if (sme_cmd->command == eSmeCommandScan ||
sme_cmd->command == eSmeCommandRemainOnChannel)
if (sme_cmd->command == eSmeCommandScan)
cmd.cmd_id = sme_cmd->u.scanCmd.scanID;
else
cmd.cmd_id = 0;
@ -687,8 +685,7 @@ tListElem *csr_scan_pending_ll_next(struct sAniSirGlobal *mac_ctx,
if (!entry)
return NULL;
sme_cmd = GET_BASE_ADDR(entry, tSmeCmd, Link);
if (sme_cmd->command == eSmeCommandScan ||
sme_cmd->command == eSmeCommandRemainOnChannel)
if (sme_cmd->command == eSmeCommandScan)
cmd.cmd_id = sme_cmd->u.scanCmd.scanID;
else
cmd.cmd_id = 0;
@ -716,8 +713,7 @@ tListElem *csr_nonscan_pending_ll_next(struct sAniSirGlobal *mac_ctx,
if (!entry)
return NULL;
sme_cmd = GET_BASE_ADDR(entry, tSmeCmd, Link);
if (sme_cmd->command == eSmeCommandScan ||
sme_cmd->command == eSmeCommandRemainOnChannel)
if (sme_cmd->command == eSmeCommandScan)
cmd.cmd_id = sme_cmd->u.scanCmd.scanID;
else
cmd.cmd_id = 0;