qcacld-3.0: Enhance coex_unsafe_chan_nb_user_prefer for P2P mode
Currently, firmware-reported unsafe channels are ignored and userspace configured channels are honored when coex_unsafe_chan_nb_user_prefer ini is set. This is supported for SAP mode only. But some platforms may want driver to ignore the firmware- reported coex channels for P2P-GO also. Enhance the ini to allow user to configure mode specific bit as mentioned below, BIT 0: Don't honor fw coex/unsafe channel info for SAP mode BIT 1: Don't honor fw coex/unsafe channel info for P2P-GO mode Change-Id: I91a2c6b2da9aba411d081f6ae3b23d374fe53159 CRs-Fixed: 3766393
This commit is contained in:

committed by
Ravindra Konda

parent
4d305e8621
commit
6472be5eda
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -413,23 +413,50 @@
|
||||
"Retain NOL even if the regdomain changes")
|
||||
|
||||
#ifdef FEATURE_WLAN_CH_AVOID_EXT
|
||||
|
||||
/**
|
||||
* enum ignore_fw_coex_info_modes - Represents modes
|
||||
* @IGNORE_FW_COEX_INFO_ON_SAP_MODE: Set this bit to ignore fw coex info on
|
||||
* SAP mode
|
||||
* @IGNORE_FW_COEX_INFO_ON_P2P_GO_MODE: Set this bit to ignore fw coex info
|
||||
* on P2P-GO mode
|
||||
*/
|
||||
enum ignore_fw_coex_info_modes {
|
||||
IGNORE_FW_COEX_INFO_ON_SAP_MODE = 1 << 0,
|
||||
IGNORE_FW_COEX_INFO_ON_P2P_GO_MODE = 1 << 1
|
||||
};
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* coex_unsafe_chan_nb_user_prefer- Used to handle coex unsafe freq
|
||||
* event
|
||||
*
|
||||
* @Min: 0 (Honor Firmware event)
|
||||
* @Max: 1 (Don't honor Firmware event)
|
||||
* Default: 0
|
||||
* @Min: 0
|
||||
* @Max: 0xFF
|
||||
* @Default: 0
|
||||
*
|
||||
* Bit map of the modes to consider/ignore firmware provided coex/unsafe
|
||||
* channels.
|
||||
* Firmware provided coex/unsafe channel info is ignored if the corresponding
|
||||
* bit is set to 1.
|
||||
* Firmware provided coex/unsafe channel info is honored if the corresponding
|
||||
* bit is set to 0.
|
||||
*
|
||||
* BIT 0: Don't honor firmware coex info for SAP mode
|
||||
* BIT 1: Don't honor firmware coex info for P2P-GO mode
|
||||
* Rest of the bits are currently reserved
|
||||
*
|
||||
* This ini is used to handle coex unsafe freq event
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_COEX_UNSAFE_CHAN_NB_USER_PREFER CFG_INI_BOOL( \
|
||||
#define CFG_COEX_UNSAFE_CHAN_NB_USER_PREFER CFG_INI_UINT( \
|
||||
"coex_unsafe_chan_nb_user_prefer", \
|
||||
0, \
|
||||
0xff, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"Honor coex unsafe freq event from firmware")
|
||||
/*
|
||||
* <ini>
|
||||
|
@@ -355,11 +355,29 @@ wlan_mlme_get_wlm_multi_client_ll_caps(struct wlan_objmgr_psoc *psoc)
|
||||
*
|
||||
* Return: coex_unsafe_chan_nb_user_prefer
|
||||
*/
|
||||
bool wlan_mlme_get_coex_unsafe_chan_nb_user_prefer(
|
||||
uint32_t wlan_mlme_get_coex_unsafe_chan_nb_user_prefer(
|
||||
struct wlan_objmgr_psoc *psoc);
|
||||
bool wlan_mlme_get_coex_unsafe_chan_nb_user_prefer_for_p2p_go(
|
||||
struct wlan_objmgr_psoc *psoc);
|
||||
bool wlan_mlme_get_coex_unsafe_chan_nb_user_prefer_for_sap(
|
||||
struct wlan_objmgr_psoc *psoc);
|
||||
#else
|
||||
static inline
|
||||
bool wlan_mlme_get_coex_unsafe_chan_nb_user_prefer(
|
||||
uint32_t wlan_mlme_get_coex_unsafe_chan_nb_user_prefer(
|
||||
struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline
|
||||
bool wlan_mlme_get_coex_unsafe_chan_nb_user_prefer_for_sap(
|
||||
struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline
|
||||
bool wlan_mlme_get_coex_unsafe_chan_nb_user_prefer_for_p2p_go(
|
||||
struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return false;
|
||||
|
@@ -2768,7 +2768,7 @@ struct wlan_mlme_reg {
|
||||
bool is_afc_reg_noaction;
|
||||
#endif
|
||||
#ifdef FEATURE_WLAN_CH_AVOID_EXT
|
||||
bool coex_unsafe_chan_nb_user_prefer;
|
||||
uint32_t coex_unsafe_chan_nb_user_prefer;
|
||||
bool coex_unsafe_chan_reg_disable;
|
||||
#endif
|
||||
};
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -5076,6 +5076,9 @@ ucfg_mlme_cfg_get_ht_smps(struct wlan_objmgr_psoc *psoc,
|
||||
bool ucfg_mlme_get_coex_unsafe_chan_nb_user_prefer(
|
||||
struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
bool ucfg_mlme_get_coex_unsafe_chan_nb_user_prefer_for_sap(
|
||||
struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* ucfg_mlme_get_coex_unsafe_chan_reg_disable() - get reg disable cap for
|
||||
* coex unsafe channels support
|
||||
@@ -5093,6 +5096,13 @@ bool ucfg_mlme_get_coex_unsafe_chan_nb_user_prefer(
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline
|
||||
bool ucfg_mlme_get_coex_unsafe_chan_nb_user_prefer_for_sap(
|
||||
struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline
|
||||
bool ucfg_mlme_get_coex_unsafe_chan_reg_disable(
|
||||
struct wlan_objmgr_psoc *psoc)
|
||||
|
Reference in New Issue
Block a user