Dateien
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 Zeilen
8.9 KiB
C
Originalformat Blame Verlauf

Diese Datei enthält mehrdeutige Unicode-Zeichen
Diese Datei enthält Unicode-Zeichen, die mit anderen Zeichen verwechselt werden können. Wenn du glaubst, dass das absichtlich so ist, kannst du diese Warnung ignorieren. Benutze den „Escape“-Button, um versteckte Zeichen anzuzeigen.
/*
* 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