qcacld-3.0: Add ini to set init chain mode for BTC
Add ini to set init chain mode for BTC, default value should be set to the same as macro WLAN_COEX_BTC_CHAIN_MODE_UNSETTLED that means no need to send init chain mode for BTC to firmware in wma_vdev_pre_start() process. Change-Id: I3051a7f8a0c708c7df40d1b95b46e0bfa6892f6c CRs-Fixed: 2837173
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
#include <wlan_coex_main.h>
|
#include <wlan_coex_main.h>
|
||||||
#include <wlan_objmgr_global_obj.h>
|
#include <wlan_objmgr_global_obj.h>
|
||||||
#include <wlan_coex_utils_api.h>
|
#include <wlan_coex_utils_api.h>
|
||||||
|
#include "cfg_ucfg_api.h"
|
||||||
|
|
||||||
QDF_STATUS wlan_coex_init(void)
|
QDF_STATUS wlan_coex_init(void)
|
||||||
{
|
{
|
||||||
@@ -75,9 +76,55 @@ QDF_STATUS wlan_coex_deinit(void)
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef FEATURE_BTC_CHAIN_MODE
|
||||||
|
/**
|
||||||
|
* wlan_coex_set_btc_chain_mode_with_ini() - set BTC init chain mode
|
||||||
|
* with ini
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
*
|
||||||
|
* This function is used to set BTC init chain mode with ini
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
wlan_coex_set_btc_chain_mode_with_ini(struct wlan_objmgr_psoc *psoc)
|
||||||
|
{
|
||||||
|
uint8_t btc_chain_mode;
|
||||||
|
QDF_STATUS status;
|
||||||
|
|
||||||
|
status = wlan_coex_psoc_get_btc_chain_mode(psoc, &btc_chain_mode);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status)) {
|
||||||
|
coex_err("error for getting btc chain mode");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (btc_chain_mode == WLAN_COEX_BTC_CHAIN_MODE_UNSETTLED) {
|
||||||
|
btc_chain_mode = cfg_get(psoc, CFG_SET_INIT_CHAIN_MODE_FOR_BTC);
|
||||||
|
if (btc_chain_mode != WLAN_COEX_BTC_CHAIN_MODE_SHARED &&
|
||||||
|
btc_chain_mode != WLAN_COEX_BTC_CHAIN_MODE_SEPARATED &&
|
||||||
|
btc_chain_mode != WLAN_COEX_BTC_CHAIN_MODE_UNSETTLED) {
|
||||||
|
coex_err("invalid ini config %d for btc chain mode",
|
||||||
|
btc_chain_mode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
status = wlan_coex_psoc_set_btc_chain_mode(psoc,
|
||||||
|
btc_chain_mode);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
|
coex_err("error for setting btc init chain mode from ini");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static void
|
||||||
|
wlan_coex_set_btc_chain_mode_with_ini(struct wlan_objmgr_psoc *psoc)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
wlan_coex_psoc_open(struct wlan_objmgr_psoc *psoc)
|
wlan_coex_psoc_open(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
|
wlan_coex_set_btc_chain_mode_with_ini(psoc);
|
||||||
return wlan_coex_psoc_init(psoc);
|
return wlan_coex_psoc_init(psoc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012 - 2019 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012 - 2020 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
|
||||||
@@ -313,6 +313,41 @@
|
|||||||
#define THREE_WAY_COEX_CONFIG_LEGACY_CFG
|
#define THREE_WAY_COEX_CONFIG_LEGACY_CFG
|
||||||
#endif
|
#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.
|
||||||
|
* 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
|
||||||
|
|
||||||
#define CFG_COEX_ALL \
|
#define CFG_COEX_ALL \
|
||||||
CFG(CFG_BTC_MODE) \
|
CFG(CFG_BTC_MODE) \
|
||||||
CFG(CFG_ANTENNA_ISOLATION) \
|
CFG(CFG_ANTENNA_ISOLATION) \
|
||||||
@@ -327,5 +362,6 @@
|
|||||||
CFG(CFG_BT_INTERFERENCE_HIGH_UL) \
|
CFG(CFG_BT_INTERFERENCE_HIGH_UL) \
|
||||||
COEX_MPTA_HELPER_CFG \
|
COEX_MPTA_HELPER_CFG \
|
||||||
CFG(CFG_BT_SCO_ALLOW_WLAN_2G_SCAN) \
|
CFG(CFG_BT_SCO_ALLOW_WLAN_2G_SCAN) \
|
||||||
THREE_WAY_COEX_CONFIG_LEGACY_CFG
|
THREE_WAY_COEX_CONFIG_LEGACY_CFG \
|
||||||
|
SET_INIT_CHAIN_MODE_FOR_BTC_CFG
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user