Files
android_kernel_samsung_sm86…/components/fw_offload/dispatcher/inc/cfg_coex.h
Krupali Dhanvijay 8a01b9d7ec qcacld-3.0: Add INI support to configure BT Coex traffic Shaping
Add ini support to configure traffic shaping for COEX
i.e. coex_tput_shaping_enable.Host sends this INI to
Firmware via WMI_COEX_CONFIG_ENABLE_TPUT_SHAPING.
Based on this enabled value, FW will do power save with AP
when BT page scan is enabled.

The default behaviour is to do a free run without notifying
a power save to the AP during the BT Page scan.

Change-Id: I4934c98911b66c7c834899ad7cdc72063e9c5153
CRs-Fixed: 3066980
2022-10-27 13:25:11 -07:00

423 lines
8.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* Copyright (c) 2012 - 2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 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
* 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.
*/
/**
* DOC: This file contains centralized definitions of converged configuration.
*/
#ifndef __CFG_COEX_H
#define __CFG_COEX_H
/*
* <ini>
* gSetBTCMode - Config BTC mode
* @Min: 0
* @Max: 2
* @Default: 0
*
* 0 - TDD
* 1 - FDD
* 2 - Hybrid
*
* Usage: External
*
* </ini>
*/
#define CFG_BTC_MODE CFG_INI_UINT( \
"gSetBTCMode", \
0, \
2, \
0, \
CFG_VALUE_OR_DEFAULT, \
"BTC mode")
/*
* <ini>
* gSetAntennaIsolation - Set Antenna Isolation
* @Min: 0
* @Max: 255
* @Default: 25
*
* Usage: External
*
* </ini>
*/
#define CFG_ANTENNA_ISOLATION CFG_INI_UINT( \
"gSetAntennaIsolation", \
0, \
255, \
25, \
CFG_VALUE_OR_DEFAULT, \
"Antenna Isolation")
/*
* <ini>
* gSetMaxTxPowerForBTC - Set Max WLAN Tx power in COEX scenario
* @Min: 0
* @Max: 100
* @Default: 100
*
* Usage: External
*
* </ini>
*/
#define CFG_MAX_TX_POWER_FOR_BTC CFG_INI_UINT( \
"gSetMaxTxPowerForBTC", \
0, \
100, \
100, \
CFG_VALUE_OR_DEFAULT, \
"Max Tx Power for BTC")
/*
* <ini>
* gSetWlanLowRssiThreshold - Set WLAN low RSSI threshold for BTC mode switching
* @Min: -100
* @Max: 0
* @Default: -80
*
* Usage: External
*
* </ini>
*/
#define CFG_WLAN_LOW_RSSI_THRESHOLD CFG_INI_INT( \
"gSetWlanLowRssiThreshold", \
-100, \
0, \
-80, \
CFG_VALUE_OR_DEFAULT, \
"WLAN Low RSSI Threshold")
/*
* <ini>
* gSetBtLowRssiThreshold - Set BT low RSSI threshold for BTC mode switching
* @Min: -100
* @Max: 0
* @Default: -80
*
* Usage: External
*
* </ini>
*/
#define CFG_BT_LOW_RSSI_THRESHOLD CFG_INI_INT( \
"gSetBtLowRssiThreshold", \
-100, \
0, \
-80, \
CFG_VALUE_OR_DEFAULT, \
"BT Low RSSI Threshold")
/*
* <ini>
* gSetBtInterferenceLowLL - Set lower limit of low level BT interference
* @Min: -100
* @Max: 100
* @Default: -25
*
* Usage: External
*
* </ini>
*/
#define CFG_BT_INTERFERENCE_LOW_LL CFG_INI_INT( \
"gSetBtInterferenceLowLL", \
-100, \
100, \
-25, \
CFG_VALUE_OR_DEFAULT, \
"BT Interference Low LL")
/*
* <ini>
* gSetBtInterferenceLowUL - Set upper limit of low level BT interference
* @Min: -100
* @Max: 100
* @Default: -21
*
* Usage: External
*
* </ini>
*/
#define CFG_BT_INTERFERENCE_LOW_UL CFG_INI_INT( \
"gSetBtInterferenceLowUL", \
-100, \
100, \
-21, \
CFG_VALUE_OR_DEFAULT, \
"BT Interference Low UL")
/*
* <ini>
* gSetBtInterferenceMediumLL - Set lower limit of medium level BT interference
* @Min: -100
* @Max: 100
* @Default: -20
*
* Usage: External
*
* </ini>
*/
#define CFG_BT_INTERFERENCE_MEDIUM_LL CFG_INI_INT( \
"gSetBtInterferenceMediumLL", \
-100, \
100, \
-20, \
CFG_VALUE_OR_DEFAULT, \
"BT Interference Medium LL")
/*
* <ini>
* gSetBtInterferenceMediumUL - Set upper limit of medium level BT interference
* @Min: -100
* @Max: 100
* @Default: -16
*
* Usage: External
*
* </ini>
*/
#define CFG_BT_INTERFERENCE_MEDIUM_UL CFG_INI_INT( \
"gSetBtInterferenceMediumUL", \
-100, \
100, \
-16, \
CFG_VALUE_OR_DEFAULT, \
"BT Interference Medium UL")
/*
* <ini>
* gSetBtInterferenceHighLL - Set lower limit of high level BT interference
* @Min: -100
* @Max: 100
* @Default: -15
*
* Usage: External
*
* </ini>
*/
#define CFG_BT_INTERFERENCE_HIGH_LL CFG_INI_INT( \
"gSetBtInterferenceHighLL", \
-100, \
100, \
-15, \
CFG_VALUE_OR_DEFAULT, \
"BT Interference High LL")
/*
* <ini>
* gSetBtInterferenceHighUL - Set upper limit of high level BT interference
* @Min: -100
* @Max: 100
* @Default: -11
*
* Usage: External
*
* </ini>
*/
#define CFG_BT_INTERFERENCE_HIGH_UL CFG_INI_INT( \
"gSetBtInterferenceHighUL", \
-100, \
100, \
-11, \
CFG_VALUE_OR_DEFAULT, \
"BT Interference High UL")
#ifdef FEATURE_MPTA_HELPER
/*
* <ini>
* gMPTAHelperEnable - Enable MPTA Helper
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to enable or disable coex MPTA Helper.
*
* Usage: External
*
* </ini>
*/
#define CFG_COEX_MPTA_HELPER CFG_INI_BOOL( \
"gMPTAHelperEnable", \
0, \
"Enable/Disable MPTA Helper")
#define COEX_MPTA_HELPER_CFG CFG(CFG_COEX_MPTA_HELPER)
#else
#define COEX_MPTA_HELPER_CFG
#endif
/*
* <ini>
* gBtScoAllowWlan2GScan - Allow wlan 2g scan when BT SCO connection is on
* @Min: 0
* @Max: 1
* @Default: 1
*
* 0 - Disable
* 1 - Enable
*
* This ini is used to enable or disable wlan 2g scan
* when BT SCO connection is on.
*
* Usage: External
*
* </ini>
*/
#define CFG_BT_SCO_ALLOW_WLAN_2G_SCAN CFG_INI_BOOL( \
"gBtScoAllowWlan2GScan", \
1, \
"Bt Sco Allow Wlan 2G Scan")
/*
* <ini>
* ble_scan_coex_policy - Ini to configure coex policy
* @Min: 0
* @Max: 1
* @Default: 0
*
* 0 - Better BLE Advertiser reception performance
* 1 - Better WLAN performance
*
* This ini is used to control the performance of ble scan case,0 to place
* more emphasis on BLE Scan results , 1 to place more emphasis on WLAN
* performance
*
* Usage: External
*
* </ini>
*/
#define CFG_BLE_SCAN_COEX_POLICY CFG_INI_BOOL( \
"ble_scan_coex_policy", \
0, \
"BLE scan Coex policy")
#ifdef FEATURE_COEX_CONFIG
/*
* <ini>
* gThreeWayCoexConfigLegacyEnable - Enable coex config legacy feature
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to enable or disable three way coex config legacy feature.
* This feature is designed only for non-mobile solution.
* When the feature is disabled, Firmware use the default configuration to
* set the coex priority of three antenna(WLAN, BT, ZIGBEE).
* when enable this feature, customer can use the vendor command to set antenna
* coex priority dynamically.
*
* Supported Feature: three way coex config
*
* Usage: External
*
* </ini>
*/
#define CFG_THREE_WAY_COEX_CONFIG_LEGACY CFG_INI_BOOL( \
"gThreeWayCoexConfigLegacyEnable", \
0, \
"Enable/Disable COEX Config Legacy")
#define THREE_WAY_COEX_CONFIG_LEGACY_CFG CFG(CFG_THREE_WAY_COEX_CONFIG_LEGACY)
#else
#define THREE_WAY_COEX_CONFIG_LEGACY_CFG
#endif
#ifdef FEATURE_BTC_CHAIN_MODE
/*
* <ini>
* gSetInitChainModeForBTC - Used to set init chain mode for BTC
* @Min: 0
* @Max: 0xFF
* @Default: 0xFF
*
* This ini is used to set init chain mode for BTC, default value
* should be set to the same as macro WLAN_COEX_BTC_CHAIN_MODE_UNSETTLED(0xFF),
* only below values can be set:
* 0 - init WLAN 2.4G to support 2x2.
* It means chains of BT and WLAN 2.4G are shared, or BT is OFF.
* 1 - init WLAN 2.4G as 1x1, chains of BT and WLAN 2.4G are separated,
* fixed FDD.
* 2 - init WLAN 2.4G as 1x1, chains of BT and WLAN 2.4G are separated,
* hybrid mode
* 0xFF - no need to send init chain mode for BTC to firmware.
*
* Supported Feature: init chain mode for BTC
*
* Usage: External
*
* </ini>
*/
#define CFG_SET_INIT_CHAIN_MODE_FOR_BTC CFG_INI_UINT( \
"gSetInitChainModeForBTC", \
0, \
0xFF, \
0xFF, \
CFG_VALUE_OR_DEFAULT, \
"Init Chain Mode For BTC")
#define SET_INIT_CHAIN_MODE_FOR_BTC_CFG CFG(CFG_SET_INIT_CHAIN_MODE_FOR_BTC)
#else
#define SET_INIT_CHAIN_MODE_FOR_BTC_CFG
#endif
#ifdef FEATURE_COEX_TPUT_SHAPING_CONFIG
/*
* <ini>
* coex_tput_shaping_enable - Ini to enable wifi configure traffic shaping
* @Min: 0
* @Max: 1
* @Default: 0
*
* 0 - traffic shaping is disable
* 1 - traffic shaping is enable
*
* This ini is used to enable and disable wifi traffic shaping
*
* Usage: External
*
* </ini>
*/
#define CFG_TPUT_SHAPING_ENABLE CFG_INI_BOOL( \
"coex_tput_shaping_enable", \
0, \
"coex_tput_shaping_enable")
#define TPUT_SHAPING_ENABLE_CFG CFG(CFG_TPUT_SHAPING_ENABLE)
#else
#define TPUT_SHAPING_ENABLE_CFG
#endif
#define CFG_COEX_ALL \
CFG(CFG_BTC_MODE) \
CFG(CFG_ANTENNA_ISOLATION) \
CFG(CFG_MAX_TX_POWER_FOR_BTC) \
CFG(CFG_WLAN_LOW_RSSI_THRESHOLD) \
CFG(CFG_BT_LOW_RSSI_THRESHOLD) \
CFG(CFG_BT_INTERFERENCE_LOW_LL) \
CFG(CFG_BT_INTERFERENCE_LOW_UL) \
CFG(CFG_BT_INTERFERENCE_MEDIUM_LL) \
CFG(CFG_BT_INTERFERENCE_MEDIUM_UL) \
CFG(CFG_BT_INTERFERENCE_HIGH_LL) \
CFG(CFG_BT_INTERFERENCE_HIGH_UL) \
COEX_MPTA_HELPER_CFG \
CFG(CFG_BT_SCO_ALLOW_WLAN_2G_SCAN) \
THREE_WAY_COEX_CONFIG_LEGACY_CFG \
SET_INIT_CHAIN_MODE_FOR_BTC_CFG \
CFG(CFG_BLE_SCAN_COEX_POLICY) \
TPUT_SHAPING_ENABLE_CFG
#endif