core: Add param to disable interleave scan
authorHoward Chung <howardchung@google.com>
Fri, 30 Oct 2020 09:11:01 +0000 (17:11 +0800)
committerAyush Garg <ayush.garg@samsung.com>
Fri, 11 Mar 2022 13:38:33 +0000 (19:08 +0530)
This patch adds parameter to enable/disable the interleave scan feature.

Signed-off-by: Anuj Jain <anuj01.jain@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
src/adapter.c
src/btd.h
src/main.c
src/main.conf

index f8b42dc..c6fe866 100644 (file)
@@ -9141,6 +9141,12 @@ static void load_default_system_params(struct btd_adapter *adapter)
                        goto done;
        }
 
+       if (btd_opts.defaults.le.enable_advmon_interleave_scan != 0xFF) {
+               if (!mgmt_tlv_add_fixed(tlv_list, 0x001f,
+                       &btd_opts.defaults.le.enable_advmon_interleave_scan))
+                       goto done;
+       }
+
        err = mgmt_send_tlv(adapter->mgmt, MGMT_OP_SET_DEF_SYSTEM_CONFIG,
                        adapter->dev_id, tlv_list, NULL, NULL, NULL);
 
index da7fca4..f4bb839 100755 (executable)
--- a/src/btd.h
+++ b/src/btd.h
@@ -74,6 +74,7 @@ struct btd_le_defaults {
 
        uint16_t        advmon_allowlist_scan_duration;
        uint16_t        advmon_no_filter_scan_duration;
+       uint8_t         enable_advmon_interleave_scan;
 };
 
 struct btd_defaults {
index ce71b1b..6b66eaf 100755 (executable)
@@ -121,6 +121,7 @@ static const char *le_options[] = {
        "Autoconnecttimeout",
        "AdvMonAllowlistScanDuration",
        "AdvMonNoFilterScanDuration",
+       "EnableAdvMonInterleaveScan",
        NULL
 };
 
@@ -514,6 +515,11 @@ static void parse_le_config(GKeyFile *config)
                  sizeof(btd_opts.defaults.le.advmon_no_filter_scan_duration),
                  1,
                  10000},
+               { "EnableAdvMonInterleaveScan",
+                 &btd_opts.defaults.le.enable_advmon_interleave_scan,
+                 sizeof(btd_opts.defaults.le.enable_advmon_interleave_scan),
+                 0,
+                 1},
        };
        if (btd_opts.mode == BT_MODE_BREDR)
                return;
@@ -792,6 +798,7 @@ static void init_defaults(void)
        btd_opts.defaults.num_entries = 0;
        btd_opts.defaults.br.page_scan_type = 0xFFFF;
        btd_opts.defaults.br.scan_type = 0xFFFF;
+       btd_opts.defaults.le.enable_advmon_interleave_scan = 0xFF;
 #ifdef TIZEN_FEATURE_BLUEZ_MODIFY
        btd_opts.le_privacy = FALSE;
        btd_opts.pin_code = NULL;
index a896220..b6f0876 100755 (executable)
 # Default: 500
 #AdvMonNoFilterScanDuration=
 
+# Enable/Disable Advertisement Monitor interleave scan for power saving.
+# 0: disable
+# 1: enable
+# Defaults to 1
+#EnableAdvMonInterleaveScan=
+
 [GATT]
 # GATT attribute cache.
 # Possible values: