From d56e5f350bfddd40d78dd51640a1e477bd4def82 Mon Sep 17 00:00:00 2001 From: Utkarsh Bhatnagar Date: Mon, 7 Jun 2021 18:35:37 +0530 Subject: [PATCH] qcacld-3.0: Add ini to configure BLE scan policy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add gConfigBleScanCoexPolicy which can be used to control performance of ble scan case. ’0’ to place more emphasis on BLE Scan results ‘1’ to place more emphasis on WLAN performance Change-Id: I46c735d8695523d14f6372bc5e47d1d1f51589ae CRs-Fixed: 2935051 --- .../core/inc/wlan_fw_offload_main.h | 5 +++- .../core/src/wlan_fw_offload_main.c | 2 ++ .../fw_offload/dispatcher/inc/cfg_coex.h | 28 +++++++++++++++++-- core/hdd/src/wlan_hdd_main.c | 10 +++++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/components/fw_offload/core/inc/wlan_fw_offload_main.h b/components/fw_offload/core/inc/wlan_fw_offload_main.h index 4fbfec092ea6..756c0cff1c22 100644 --- a/components/fw_offload/core/inc/wlan_fw_offload_main.h +++ b/components/fw_offload/core/inc/wlan_fw_offload_main.h @@ -60,7 +60,7 @@ enum wlan_fwol_southbound_event { }; /** - * struct wlan_fwol_three_antenna_btc - Three antenna BTC config items + * struct wlan_fwol_coex_config - BTC config items * @btc_mode: Config BTC mode * @antenna_isolation: Antenna isolation * @max_tx_power_for_btc: Max wlan tx power in co-ex scenario @@ -77,6 +77,8 @@ enum wlan_fwol_southbound_event { * BT SCO connection is on * @btc_three_way_coex_config_legacy_enable: Enable/Disable tri-radio coex * config legacy feature + * @ble_scan_coex_policy: BLE Scan policy, true - better BLE scan result, false + * better wlan throughput */ struct wlan_fwol_coex_config { uint8_t btc_mode; @@ -97,6 +99,7 @@ struct wlan_fwol_coex_config { #ifdef FEATURE_COEX_CONFIG bool btc_three_way_coex_config_legacy_enable; #endif + bool ble_scan_coex_policy; }; #define FWOL_THERMAL_LEVEL_MAX 4 diff --git a/components/fw_offload/core/src/wlan_fw_offload_main.c b/components/fw_offload/core/src/wlan_fw_offload_main.c index d4f51b0472fc..88539722502a 100644 --- a/components/fw_offload/core/src/wlan_fw_offload_main.c +++ b/components/fw_offload/core/src/wlan_fw_offload_main.c @@ -107,6 +107,8 @@ fwol_init_coex_config_in_cfg(struct wlan_objmgr_psoc *psoc, coex_config->bt_sco_allow_wlan_2g_scan = cfg_get(psoc, CFG_BT_SCO_ALLOW_WLAN_2G_SCAN); fwol_three_way_coex_config_legacy_config_get(psoc, coex_config); + coex_config->ble_scan_coex_policy = cfg_get(psoc, + CFG_BLE_SCAN_COEX_POLICY); } static void diff --git a/components/fw_offload/dispatcher/inc/cfg_coex.h b/components/fw_offload/dispatcher/inc/cfg_coex.h index c3b665b3f06a..a184533804b3 100644 --- a/components/fw_offload/dispatcher/inc/cfg_coex.h +++ b/components/fw_offload/dispatcher/inc/cfg_coex.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012 - 2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2012 - 2019, 2021 The Linux Foundation. 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 @@ -282,6 +282,29 @@ 1, \ "Bt Sco Allow Wlan 2G Scan") +/* + * + * 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 + * + * + */ +#define CFG_BLE_SCAN_COEX_POLICY CFG_INI_BOOL( \ + "ble_scan_coex_policy", \ + 0, \ + "BLE scan Coex policy") + #ifdef FEATURE_COEX_CONFIG /* * @@ -327,5 +350,6 @@ CFG(CFG_BT_INTERFERENCE_HIGH_UL) \ COEX_MPTA_HELPER_CFG \ CFG(CFG_BT_SCO_ALLOW_WLAN_2G_SCAN) \ - THREE_WAY_COEX_CONFIG_LEGACY_CFG + THREE_WAY_COEX_CONFIG_LEGACY_CFG \ + CFG(CFG_BLE_SCAN_COEX_POLICY) #endif diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 4335eaa2beb0..587c85f569c2 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -6353,6 +6353,16 @@ static int hdd_send_coex_config_params(struct hdd_context *hdd_ctx, WMI_COEX_CONFIG_BT_SCO_ALLOW_WLAN_2G_SCAN; coex_cfg_params.config_arg1 = config.bt_sco_allow_wlan_2g_scan; + status = sme_send_coex_config_cmd(&coex_cfg_params); + if (QDF_IS_STATUS_ERROR(status)) { + hdd_err("Failed to send coex BLE scan policy"); + goto err; + } + + coex_cfg_params.config_type = + WMI_COEX_CONFIG_LE_SCAN_POLICY; + coex_cfg_params.config_arg1 = config.ble_scan_coex_policy; + status = sme_send_coex_config_cmd(&coex_cfg_params); if (QDF_IS_STATUS_ERROR(status)) { hdd_err("Failed to send coex BT sco allow wlan 2g scan");