qcacld-3.0: Enable/Disable SRD support for vdev

Currently the driver enables the SRD channels
support for both P2P_GO and SAP if the SRD master
mode is enabled.

Have individual ini values to enable/disable
the SRD channel for each op-mode as required.

Change-Id: If6e66996ed19dacbde7f71a6702f378a7e9a273c
CRs-Fixed: 2748446
This commit is contained in:
gaurank kathpalia
2020-08-02 13:34:51 +05:30
کامیت شده توسط snandini
والد b79fd0c6ec
کامیت f955b44a6d
13فایلهای تغییر یافته به همراه176 افزوده شده و 59 حذف شده

مشاهده پرونده

@@ -73,14 +73,20 @@
/*
* <ini>
* etsi13_srd_chan_in_master_mode - Enable/disable ETSI SRD channels in
* etsi_srd_chan_in_master_mode - Enable/disable ETSI SRD channels in
* master mode PCL and ACS functionality
* @Min: 0
* @Max: 1
* @Default: 0
* @Max: 0xFF
* @Default: 6
*
* etsi13_srd_chan_in_master_mode is to enable/disable ETSI SRD channels in
* etsi_srd_chan_in_master_mode is to enable/disable ETSI SRD channels in
* master mode PCL and ACS functionality
* Bit map for enabling the SRD mode in various modes are as follows:-
* BIT 0:- Enable/Disable SRD channels for SAP.
* BIT 1:- Enable/Disable SRD channels for P2P-GO.
* BIT 2:- Enable/Disable SRD channels for NAN.
* Rest of the bits are currently reserved for future SRD channel support for
* other vdevs.
*
* Related: None
*
@@ -90,9 +96,12 @@
*
* </ini>
*/
#define CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE CFG_INI_BOOL( \
#define CFG_ETSI_SRD_CHAN_IN_MASTER_MODE CFG_INI_UINT( \
"etsi13_srd_chan_in_master_mode", \
0, \
0xff, \
6, \
CFG_VALUE_OR_DEFAULT, \
"enable/disable ETSI SRD channels in master mode")
/*
@@ -323,7 +332,7 @@
CFG(CFG_SELF_GEN_FRM_PWR) \
CFG(CFG_ENABLE_PENDING_CHAN_LIST_REQ) \
CFG(CFG_ENABLE_11D_IN_WORLD_MODE) \
CFG(CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE) \
CFG(CFG_ETSI_SRD_CHAN_IN_MASTER_MODE) \
CFG(CFG_FCC_5DOT9_GHZ_CHAN_IN_MASTER_MODE) \
CFG(CFG_RESTART_BEACONING_ON_CH_AVOID) \
CFG(CFG_INDOOR_CHANNEL_SUPPORT) \

مشاهده پرونده

@@ -1941,6 +1941,19 @@ QDF_STATUS wlan_mlme_get_vht_tx_mcs_2x2(struct wlan_objmgr_psoc *psoc,
QDF_STATUS
wlan_mlme_get_vht20_mcs9(struct wlan_objmgr_psoc *psoc, bool *value);
/**
* wlan_mlme_get_srd_master_mode_for_vdev - Get SRD master mode for vdev
* @psoc: pointer to psoc object
* @vdev_opmode: vdev operating mode
* @value: pointer to the value which will be filled for the caller
*
* Return: QDF Status
*/
QDF_STATUS
wlan_mlme_get_srd_master_mode_for_vdev(struct wlan_objmgr_psoc *psoc,
enum QDF_OPMODE vdev_opmode,
bool *value);
/**
* wlan_mlme_get_force_sap_enabled() - Get the value of force SAP enabled
* @psoc: psoc context

مشاهده پرونده

@@ -2243,11 +2243,23 @@ struct wlan_mlme_mwc {
};
#endif
/**
* enum mlme_reg_srd_master_modes - Bitmap of SRD master modes supported
* @MLME_SRD_MASTER_MODE_SAP: SRD master mode for SAP
* @MLME_SRD_MASTER_MODE_P2P_GO: SRD master mode for P2P-GO
* @MLME_SRD_MASTER_MODE_NAN: SRD master mode for NAN
*/
enum mlme_reg_srd_master_modes {
MLME_SRD_MASTER_MODE_SAP = 1,
MLME_SRD_MASTER_MODE_P2P_GO = 2,
MLME_SRD_MASTER_MODE_NAN = 4,
};
/**
* struct wlan_mlme_reg - REG related configs
* @self_gen_frm_pwr: self-generated frame power in tx chain mask
* for CCK rates
* @etsi13_srd_chan_in_master_mode: etsi13 srd chan in master mode
* @etsi_srd_chan_in_master_mode: etsi srd chan in master mode
* @fcc_5dot9_ghz_chan_in_master_mode: fcc 5.9 GHz chan in master mode
* @restart_beaconing_on_ch_avoid: restart beaconing on ch avoid
* @indoor_channel_support: indoor channel support
@@ -2265,7 +2277,7 @@ struct wlan_mlme_mwc {
*/
struct wlan_mlme_reg {
uint32_t self_gen_frm_pwr;
bool etsi13_srd_chan_in_master_mode;
uint8_t etsi_srd_chan_in_master_mode;
bool fcc_5dot9_ghz_chan_in_master_mode;
enum restart_beaconing_on_ch_avoid_rule
restart_beaconing_on_ch_avoid;

مشاهده پرونده

@@ -3777,7 +3777,7 @@ ucfg_mlme_get_mws_coex_scc_channel_avoid_delay(struct wlan_objmgr_psoc *psoc,
#endif
/**
* ucfg_mlme_get_etsi13_srd_chan_in_master_mode - get etsi13 srd chan
* ucfg_mlme_get_etsi_srd_chan_in_master_mode - get etsi srd chan
* in master mode
* @psoc: pointer to psoc object
* @value: pointer to the value which will be filled for the caller
@@ -3785,8 +3785,8 @@ ucfg_mlme_get_mws_coex_scc_channel_avoid_delay(struct wlan_objmgr_psoc *psoc,
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_etsi13_srd_chan_in_master_mode(struct wlan_objmgr_psoc *psoc,
bool *value);
ucfg_mlme_get_etsi_srd_chan_in_master_mode(struct wlan_objmgr_psoc *psoc,
uint8_t *value);
/**
* ucfg_mlme_get_5dot9_ghz_chan_in_master_mode - get fcc 5.9 GHz chan
@@ -3800,6 +3800,19 @@ QDF_STATUS
ucfg_mlme_get_5dot9_ghz_chan_in_master_mode(struct wlan_objmgr_psoc *psoc,
bool *value);
/**
* ucfg_mlme_get_srd_master_mode_for_vdev() - Get SRD master mode for vdev
* @psoc: pointer to psoc object
* @vdev_opmode: vdev opmode
* @value: pointer to the value which will be filled for the caller
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_srd_master_mode_for_vdev(struct wlan_objmgr_psoc *psoc,
enum QDF_OPMODE vdev_opmode,
bool *value);
#ifdef SAP_AVOID_ACS_FREQ_LIST
/**
* ucfg_mlme_get_acs_avoid_freq_list - get acs avoid frequency list