qcacld-3.0: Add support for new regulatory files

Regulatory component is getting updated to reduce the
code size based on different regulatory features. In this
process new regulatory files are getting added and some
of the files are getting removed.

To compile the newly added files update the required changes
in driver Kbuild file.

Some of the functins which are not supposed to be invoked from
outside the component directly, replace those function calls
with the appropriate wrapper functions.

Change-Id: I31a25268250b99f4f156c4f149966213746d999e
CRs-Fixed: 2373780
This commit is contained in:
Ashish Kumar Dhanotiya
2018-12-14 15:29:14 +05:30
committed by nshrivas
parent 6f687e08f9
commit aa9fdbb777
12 changed files with 80 additions and 46 deletions

18
Kbuild
View File

@@ -1045,6 +1045,8 @@ TARGET_IF_INC := -I$(WLAN_COMMON_INC)/target_if/core/inc \
TARGET_IF_OBJ := $(TARGET_IF_DIR)/core/src/target_if_main.o \ TARGET_IF_OBJ := $(TARGET_IF_DIR)/core/src/target_if_main.o \
$(TARGET_IF_DIR)/regulatory/src/target_if_reg.o \ $(TARGET_IF_DIR)/regulatory/src/target_if_reg.o \
$(TARGET_IF_DIR)/regulatory/src/target_if_reg_lte.o \
$(TARGET_IF_DIR)/regulatory/src/target_if_reg_11d.o \
$(TARGET_IF_DIR)/init_deinit/src/init_cmd_api.o \ $(TARGET_IF_DIR)/init_deinit/src/init_cmd_api.o \
$(TARGET_IF_DIR)/init_deinit/src/init_deinit_lmac.o \ $(TARGET_IF_DIR)/init_deinit/src/init_deinit_lmac.o \
$(TARGET_IF_DIR)/init_deinit/src/init_event_handler.o \ $(TARGET_IF_DIR)/init_deinit/src/init_event_handler.o \
@@ -1311,10 +1313,16 @@ REG_CORE_OBJ_DIR := $(WLAN_COMMON_ROOT)/$(REGULATORY_CORE_SRC_DIR)
REG_DISPATCHER_OBJ_DIR := $(WLAN_COMMON_ROOT)/$(REG_DISPATCHER_SRC_DIR) REG_DISPATCHER_OBJ_DIR := $(WLAN_COMMON_ROOT)/$(REG_DISPATCHER_SRC_DIR)
REGULATORY_INC := -I$(WLAN_COMMON_INC)/$(REGULATORY_CORE_INC_DIR) REGULATORY_INC := -I$(WLAN_COMMON_INC)/$(REGULATORY_CORE_INC_DIR)
REGULATORY_INC += -I$(WLAN_COMMON_INC)/$(REG_DISPATCHER_INC_DIR) REGULATORY_INC += -I$(WLAN_COMMON_INC)/$(REG_DISPATCHER_INC_DIR)
REGULATORY_OBJS := $(REG_CORE_OBJ_DIR)/reg_db.o \ REGULATORY_OBJS := $(REG_CORE_OBJ_DIR)/reg_build_chan_list.o \
$(REG_CORE_OBJ_DIR)/reg_services.o \ $(REG_CORE_OBJ_DIR)/reg_callbacks.o \
$(REG_CORE_OBJ_DIR)/reg_db.o \
$(REG_CORE_OBJ_DIR)/reg_db_parser.o \ $(REG_CORE_OBJ_DIR)/reg_db_parser.o \
$(REG_CORE_OBJ_DIR)/reg_getset.o \
$(REG_CORE_OBJ_DIR)/reg_lte.o \
$(REG_CORE_OBJ_DIR)/reg_opclass.o \
$(REG_CORE_OBJ_DIR)/reg_priv_objs.o \
$(REG_DISPATCHER_OBJ_DIR)/wlan_reg_services_api.o \ $(REG_DISPATCHER_OBJ_DIR)/wlan_reg_services_api.o \
$(REG_CORE_OBJ_DIR)/reg_services_common.o \
$(REG_DISPATCHER_OBJ_DIR)/wlan_reg_tgt_api.o \ $(REG_DISPATCHER_OBJ_DIR)/wlan_reg_tgt_api.o \
$(REG_DISPATCHER_OBJ_DIR)/wlan_reg_ucfg_api.o $(REG_DISPATCHER_OBJ_DIR)/wlan_reg_ucfg_api.o
ifeq ($(CONFIG_HOST_11D_SCAN), y) ifeq ($(CONFIG_HOST_11D_SCAN), y)
@@ -2458,6 +2466,12 @@ cppflags-$(CONFIG_WLAN_NUD_TRACKING) += -DWLAN_NUD_TRACKING
#Flag to enable set and get disable channel list feature #Flag to enable set and get disable channel list feature
cppflags-$(CONFIG_DISABLE_CHANNEL_LIST) += -DDISABLE_CHANNEL_LIST cppflags-$(CONFIG_DISABLE_CHANNEL_LIST) += -DDISABLE_CHANNEL_LIST
#Flag to enable/disable LTE COEX support
cppflags-$(CONFIG_CONFIG_LTE_COEX) += -DCONFIG_LTE_COEX
#Flag to enable/disable HOST_OPCLASS
cppflags-$(CONFIG_HOST_OPCLASS) += -DHOST_OPCLASS
#Flag to enable Dynamic Voltage WDCVS (Config Voltage Mode) #Flag to enable Dynamic Voltage WDCVS (Config Voltage Mode)
cppflags-$(CONFIG_WLAN_DYNAMIC_CVM) += -DFEATURE_WLAN_DYNAMIC_CVM cppflags-$(CONFIG_WLAN_DYNAMIC_CVM) += -DFEATURE_WLAN_DYNAMIC_CVM

View File

@@ -1489,8 +1489,9 @@ QDF_STATUS policy_mgr_valid_sap_conc_channel_check(
wlan_reg_is_passive_or_disable_ch(pm_ctx->pdev, channel) || wlan_reg_is_passive_or_disable_ch(pm_ctx->pdev, channel) ||
!(policy_mgr_sta_sap_scc_on_lte_coex_chan(psoc) || !(policy_mgr_sta_sap_scc_on_lte_coex_chan(psoc) ||
policy_mgr_is_safe_channel(psoc, channel)) || policy_mgr_is_safe_channel(psoc, channel)) ||
(!reg_is_etsi13_srd_chan_allowed_master_mode(pm_ctx->pdev) (!wlan_reg_is_etsi13_srd_chan_allowed_master_mode(
&& reg_is_etsi13_srd_chan(pm_ctx->pdev, channel))) { pm_ctx->pdev) &&
wlan_reg_is_etsi13_srd_chan(pm_ctx->pdev, channel))) {
if (wlan_reg_is_dfs_ch(pm_ctx->pdev, channel) && if (wlan_reg_is_dfs_ch(pm_ctx->pdev, channel) &&
sta_sap_scc_on_dfs_chan) { sta_sap_scc_on_dfs_chan) {
policy_mgr_debug("STA SAP SCC is allowed on DFS channel"); policy_mgr_debug("STA SAP SCC is allowed on DFS channel");

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -1844,7 +1844,7 @@ void policy_mgr_set_weight_of_dfs_passive_channels_to_zero(
policy_mgr_debug("Set weight of DFS/passive channels to 0"); policy_mgr_debug("Set weight of DFS/passive channels to 0");
for (i = 0; i < orig_channel_count; i++) { for (i = 0; i < orig_channel_count; i++) {
channel_state = reg_get_channel_state(pm_ctx->pdev, channel_state = wlan_reg_get_channel_state(pm_ctx->pdev,
pcl_channels[i]); pcl_channels[i]);
if ((channel_state == CHANNEL_STATE_DISABLE) || if ((channel_state == CHANNEL_STATE_DISABLE) ||
(channel_state == CHANNEL_STATE_INVALID)) (channel_state == CHANNEL_STATE_INVALID))
@@ -2789,14 +2789,14 @@ enum policy_mgr_conc_next_action
*/ */
switch (num_connections) { switch (num_connections) {
case 1: case 1:
band1 = reg_chan_to_band(pm_conc_connection_list[0].chan); band1 = wlan_reg_chan_to_band(pm_conc_connection_list[0].chan);
if (band1 == BAND_2G) if (band1 == BAND_2G)
return PM_DBS; return PM_DBS;
else else
return PM_NOP; return PM_NOP;
case 2: case 2:
band1 = reg_chan_to_band(pm_conc_connection_list[0].chan); band1 = wlan_reg_chan_to_band(pm_conc_connection_list[0].chan);
band2 = reg_chan_to_band(pm_conc_connection_list[1].chan); band2 = wlan_reg_chan_to_band(pm_conc_connection_list[1].chan);
if ((band1 == BAND_2G) || if ((band1 == BAND_2G) ||
(band2 == BAND_2G)) { (band2 == BAND_2G)) {
if (!hw_mode.dbs_cap) if (!hw_mode.dbs_cap)
@@ -2821,9 +2821,9 @@ enum policy_mgr_conc_next_action
} else } else
return PM_NOP; return PM_NOP;
case 3: case 3:
band1 = reg_chan_to_band(pm_conc_connection_list[0].chan); band1 = wlan_reg_chan_to_band(pm_conc_connection_list[0].chan);
band2 = reg_chan_to_band(pm_conc_connection_list[1].chan); band2 = wlan_reg_chan_to_band(pm_conc_connection_list[1].chan);
band3 = reg_chan_to_band(pm_conc_connection_list[2].chan); band3 = wlan_reg_chan_to_band(pm_conc_connection_list[2].chan);
if ((band1 == BAND_2G) || if ((band1 == BAND_2G) ||
(band2 == BAND_2G) || (band2 == BAND_2G) ||
(band3 == BAND_2G)) { (band3 == BAND_2G)) {
@@ -2912,8 +2912,8 @@ enum policy_mgr_conc_next_action
next_action = PM_NOP; next_action = PM_NOP;
break; break;
case 2: case 2:
band1 = reg_chan_to_band(pm_conc_connection_list[0].chan); band1 = wlan_reg_chan_to_band(pm_conc_connection_list[0].chan);
band2 = reg_chan_to_band(pm_conc_connection_list[1].chan); band2 = wlan_reg_chan_to_band(pm_conc_connection_list[1].chan);
if ((band1 == band2) && (hw_mode.dbs_cap)) if ((band1 == band2) && (hw_mode.dbs_cap))
next_action = PM_SINGLE_MAC_UPGRADE; next_action = PM_SINGLE_MAC_UPGRADE;
else if ((band1 != band2) && (!hw_mode.dbs_cap)) else if ((band1 != band2) && (!hw_mode.dbs_cap))
@@ -2924,9 +2924,9 @@ enum policy_mgr_conc_next_action
break; break;
case 3: case 3:
band1 = reg_chan_to_band(pm_conc_connection_list[0].chan); band1 = wlan_reg_chan_to_band(pm_conc_connection_list[0].chan);
band2 = reg_chan_to_band(pm_conc_connection_list[1].chan); band2 = wlan_reg_chan_to_band(pm_conc_connection_list[1].chan);
band3 = reg_chan_to_band(pm_conc_connection_list[2].chan); band3 = wlan_reg_chan_to_band(pm_conc_connection_list[2].chan);
if (((band1 == band2) && (band2 == band3)) && if (((band1 == band2) && (band2 == band3)) &&
(hw_mode.dbs_cap)) { (hw_mode.dbs_cap)) {
next_action = PM_SINGLE_MAC_UPGRADE; next_action = PM_SINGLE_MAC_UPGRADE;

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -3351,11 +3351,11 @@ void policy_mgr_trim_acs_channel_list(struct wlan_objmgr_psoc *psoc,
org_ch_list[i]; org_ch_list[i];
} }
} else if (band_mask == 2) { } else if (band_mask == 2) {
if ((reg_get_channel_state(pm_ctx->pdev, ch_5g) == if ((wlan_reg_get_channel_state(pm_ctx->pdev, ch_5g) ==
CHANNEL_STATE_DFS) && CHANNEL_STATE_DFS) &&
policy_mgr_is_sta_sap_scc_allowed_on_dfs_chan(psoc)) policy_mgr_is_sta_sap_scc_allowed_on_dfs_chan(psoc))
ch_list[ch_list_count++] = ch_5g; ch_list[ch_list_count++] = ch_5g;
else if (!(reg_get_channel_state(pm_ctx->pdev, ch_5g) == else if (!(wlan_reg_get_channel_state(pm_ctx->pdev, ch_5g) ==
CHANNEL_STATE_DFS)) CHANNEL_STATE_DFS))
ch_list[ch_list_count++] = ch_5g; ch_list[ch_list_count++] = ch_5g;
for (i = 0; i < *org_ch_list_count; i++) { for (i = 0; i < *org_ch_list_count; i++) {
@@ -3530,7 +3530,7 @@ bool policy_mgr_is_valid_for_channel_switch(struct wlan_objmgr_psoc *psoc,
sap_count = policy_mgr_mode_specific_connection_count(psoc, sap_count = policy_mgr_mode_specific_connection_count(psoc,
PM_SAP_MODE, PM_SAP_MODE,
NULL); NULL);
state = reg_get_channel_state(pm_ctx->pdev, channel); state = wlan_reg_get_channel_state(pm_ctx->pdev, channel);
policy_mgr_debug("sta_sap_scc_on_dfs_chan %u, sap_count %u, channel %u, state %u", policy_mgr_debug("sta_sap_scc_on_dfs_chan %u, sap_count %u, channel %u, state %u",
sta_sap_scc_on_dfs_chan, sap_count, channel, state); sta_sap_scc_on_dfs_chan, sap_count, channel, state);

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -21,6 +21,12 @@
* *
* TDLS north bound commands implementation * TDLS north bound commands implementation
*/ */
#include <qdf_types.h>
#include <qdf_status.h>
#include <wlan_cmn.h>
#include <reg_services_public_struct.h>
#include <wlan_objmgr_psoc_obj.h>
#include <wlan_objmgr_pdev_obj.h>
#include <wlan_reg_services_api.h> #include <wlan_reg_services_api.h>
#include <wlan_serialization_api.h> #include <wlan_serialization_api.h>
#include "wlan_tdls_main.h" #include "wlan_tdls_main.h"

View File

@@ -579,6 +579,15 @@ CONFIG_WLAN_WBUFF := y
#Flag to enable set and get disable channel list feature #Flag to enable set and get disable channel list feature
CONFIG_DISABLE_CHANNEL_LIST :=y CONFIG_DISABLE_CHANNEL_LIST :=y
#Flag to enable LTE COEX feature
CONFIG_CONFIG_LTE_COEX := y
#Flag to enable/disable HOST 11d scan
CONFIG_HOST_11D_SCAN :=y
#Flag to enable HOST OPCLASS feature
CONFIG_HOST_OPCLASS := y
#Flag to enable Dynamic Voltage WDCVS (Config Voltage Mode) #Flag to enable Dynamic Voltage WDCVS (Config Voltage Mode)
CONFIG_WLAN_DYNAMIC_CVM := y CONFIG_WLAN_DYNAMIC_CVM := y

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014-2018 The Linux Foundation. All rights reserved. * Copyright (c) 2014-2019 The Linux Foundation. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -36,6 +36,7 @@
#include <qdf_lock.h> #include <qdf_lock.h>
#include "qdf_platform.h" #include "qdf_platform.h"
#include "qdf_cpuhp.h" #include "qdf_cpuhp.h"
#include <wlan_cmn.h>
#include "reg_services_public_struct.h" #include "reg_services_public_struct.h"
#include <cds_reg_service.h> #include <cds_reg_service.h>
#include <cds_packet.h> #include <cds_packet.h>

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2011, 2014-2018 The Linux Foundation. All rights reserved. * Copyright (c) 2011, 2014-2019 The Linux Foundation. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -62,6 +62,7 @@
#ifndef __CDS_REGDOMAIN_H #ifndef __CDS_REGDOMAIN_H
#define __CDS_REGDOMAIN_H #define __CDS_REGDOMAIN_H
#include <wlan_cmn.h>
#include <reg_services_public_struct.h> #include <reg_services_public_struct.h>
#define MIN_TX_PWR_CAP 8 #define MIN_TX_PWR_CAP 8

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014-2018 The Linux Foundation. All rights reserved. * Copyright (c) 2014-2019 The Linux Foundation. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for * Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the * any purpose with or without fee is hereby granted, provided that the
@@ -24,6 +24,7 @@
#include "qdf_types.h" #include "qdf_types.h"
#include "qdf_trace.h" #include "qdf_trace.h"
#include <wlan_objmgr_pdev_obj.h>
#include "wlan_reg_services_api.h" #include "wlan_reg_services_api.h"
#include "cds_reg_service.h" #include "cds_reg_service.h"
#include "cds_ieee80211_common_i.h" #include "cds_ieee80211_common_i.h"

View File

@@ -1033,7 +1033,7 @@ int wlan_hdd_send_hang_reason_event(struct hdd_context *hdd_ctx,
*/ */
int wlan_hdd_get_adjacent_chan(uint8_t chan, bool upper) int wlan_hdd_get_adjacent_chan(uint8_t chan, bool upper)
{ {
enum channel_enum ch_idx = reg_get_chan_enum(chan); enum channel_enum ch_idx = wlan_reg_get_chan_enum(chan);
if (ch_idx == INVALID_CHANNEL) if (ch_idx == INVALID_CHANNEL)
return -EINVAL; return -EINVAL;
@@ -1100,11 +1100,11 @@ int wlan_hdd_send_avoid_freq_for_dnbs(struct hdd_context *hdd_ctx, uint8_t op_ch
} }
if (WLAN_REG_IS_24GHZ_CH(op_chan)) { if (WLAN_REG_IS_24GHZ_CH(op_chan)) {
min_chan = REG_MIN_24GHZ_CH_NUM; min_chan = WLAN_REG_MIN_24GHZ_CH_NUM;
max_chan = REG_MAX_24GHZ_CH_NUM; max_chan = WLAN_REG_MAX_24GHZ_CH_NUM;
} else if WLAN_REG_IS_5GHZ_CH(op_chan) { } else if (WLAN_REG_IS_5GHZ_CH(op_chan)) {
min_chan = REG_MIN_5GHZ_CH_NUM; min_chan = WLAN_REG_MIN_5GHZ_CH_NUM;
max_chan = REG_MAX_5GHZ_CH_NUM; max_chan = WLAN_REG_MAX_5GHZ_CH_NUM;
} else { } else {
hdd_err("invalid channel:%d", op_chan); hdd_err("invalid channel:%d", op_chan);
return -EINVAL; return -EINVAL;
@@ -8603,7 +8603,7 @@ static int hdd_validate_avoid_freq_chanlist(
ch_idx <= channel_list-> ch_idx <= channel_list->
avoid_freq_range[range_idx].end_freq; avoid_freq_range[range_idx].end_freq;
ch_idx++) { ch_idx++) {
if (INVALID_CHANNEL == reg_get_chan_enum(ch_idx)) if (INVALID_CHANNEL == wlan_reg_get_chan_enum(ch_idx))
continue; continue;
for (unsafe_channel_index = 0; for (unsafe_channel_index = 0;
unsafe_channel_index < unsafe_channel_count; unsafe_channel_index < unsafe_channel_count;

View File

@@ -86,6 +86,7 @@
#include "wlan_crypto_global_api.h" #include "wlan_crypto_global_api.h"
#include "wlan_action_oui_ucfg_api.h" #include "wlan_action_oui_ucfg_api.h"
#include "nan_ucfg_api.h" #include "nan_ucfg_api.h"
#include <wlan_reg_services_api.h>
#define ACS_SCAN_EXPIRY_TIMEOUT_S 4 #define ACS_SCAN_EXPIRY_TIMEOUT_S 4
@@ -4508,7 +4509,7 @@ int wlan_hdd_restore_channels(struct hdd_context *hdd_ctx,
} }
for (i = 0; i < cache_chann->num_channels; i++) { for (i = 0; i < cache_chann->num_channels; i++) {
freq = reg_chan_to_freq( freq = wlan_reg_chan_to_freq(
hdd_ctx->pdev, hdd_ctx->pdev,
cache_chann->channel_info[i].channel_num); cache_chann->channel_info[i].channel_num);
if (!freq) if (!freq)
@@ -4580,7 +4581,7 @@ static int wlan_hdd_disable_channels(struct hdd_context *hdd_ctx)
} }
for (i = 0; i < cache_chann->num_channels; i++) { for (i = 0; i < cache_chann->num_channels; i++) {
freq = reg_chan_to_freq(hdd_ctx->pdev, freq = wlan_reg_chan_to_freq(hdd_ctx->pdev,
cache_chann-> cache_chann->
channel_info[i].channel_num); channel_info[i].channel_num);
if (!freq) if (!freq)
@@ -4594,7 +4595,7 @@ static int wlan_hdd_disable_channels(struct hdd_context *hdd_ctx)
* the channels * the channels
*/ */
cache_chann->channel_info[i].reg_status = cache_chann->channel_info[i].reg_status =
reg_get_channel_state( wlan_reg_get_channel_state(
hdd_ctx->pdev, hdd_ctx->pdev,
rf_channel); rf_channel);
cache_chann->channel_info[i].wiphy_status = cache_chann->channel_info[i].wiphy_status =
@@ -5916,13 +5917,13 @@ static int __wlan_hdd_cfg80211_start_ap(struct wiphy *wiphy,
/* if sta_sap_scc_on_dfs_chan ini is set, DFS master capability is /* if sta_sap_scc_on_dfs_chan ini is set, DFS master capability is
* assumed disabled in the driver. * assumed disabled in the driver.
*/ */
if ((reg_get_channel_state(hdd_ctx->pdev, channel) == if ((wlan_reg_get_channel_state(hdd_ctx->pdev, channel) ==
CHANNEL_STATE_DFS) && sta_sap_scc_on_dfs_chan && !sta_cnt) { CHANNEL_STATE_DFS) && sta_sap_scc_on_dfs_chan && !sta_cnt) {
hdd_err("SAP not allowed on DFS channel!!"); hdd_err("SAP not allowed on DFS channel!!");
return -EINVAL; return -EINVAL;
} }
if (!reg_is_etsi13_srd_chan_allowed_master_mode(hdd_ctx->pdev) && if (!wlan_reg_is_etsi13_srd_chan_allowed_master_mode(hdd_ctx->pdev) &&
reg_is_etsi13_srd_chan(hdd_ctx->pdev, channel)) { wlan_reg_is_etsi13_srd_chan(hdd_ctx->pdev, channel)) {
hdd_err("SAP not allowed on SRD channel."); hdd_err("SAP not allowed on SRD channel.");
return -EINVAL; return -EINVAL;
} }

View File

@@ -2493,7 +2493,7 @@ static QDF_STATUS sap_fsm_state_starting(struct sap_context *sap_ctx,
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH, QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
FL("ap_ctx->ch_params.ch_width %d, channel %d"), FL("ap_ctx->ch_params.ch_width %d, channel %d"),
sap_ctx->ch_params.ch_width, sap_ctx->ch_params.ch_width,
reg_get_channel_state(mac_ctx->pdev, wlan_reg_get_channel_state(mac_ctx->pdev,
sap_ctx->channel)); sap_ctx->channel));
/* /*