Re: [BlueZ PATCH v2 2/2] core: Add param to disable interleave scan

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Howard,

On Thu, Sep 17, 2020 at 9:14 PM Howard Chung <howardchung@xxxxxxxxxx> wrote:
>
> This patch adds parameter to enable/disable the interleave scan feature.
> ---
>
> (no changes since v1)
>
>  src/adapter.c | 9 +++++++++
>  src/hcid.h    | 1 +
>  src/main.c    | 6 ++++++
>  src/main.conf | 6 ++++++
>  4 files changed, 22 insertions(+)
>
> diff --git a/src/adapter.c b/src/adapter.c
> index c0e95b48a1c4..a2c782e308bb 100644
> --- a/src/adapter.c
> +++ b/src/adapter.c
> @@ -4449,6 +4449,15 @@ static void load_default_system_params(struct btd_adapter *adapter)
>                 len += sizeof(params[i].u16);
>         }
>
> +       if (main_opts.default_params.enable_advmon_interleave_scan != 0xFFFF) {
> +               params[i].entry.type = 0x001f;
> +               params[i].entry.length = sizeof(params[i].u16);
> +               params[i].u16 =
> +                       main_opts.default_params.enable_advmon_interleave_scan;
> +               ++i;
> +               len += sizeof(params[i].u16);
> +       }
> +
>         err = mgmt_send(adapter->mgmt, MGMT_OP_SET_DEF_SYSTEM_CONFIG,
>                         adapter->dev_id, len, params, NULL, NULL, NULL);
>         if (!err)
> diff --git a/src/hcid.h b/src/hcid.h
> index c3e5fe803543..c6717be62c48 100644
> --- a/src/hcid.h
> +++ b/src/hcid.h
> @@ -96,6 +96,7 @@ struct main_opts {
>
>                 uint16_t        advmon_allowlist_scan_duration;
>                 uint16_t        advmon_no_filter_scan_duration;
> +               uint16_t        enable_advmon_interleave_scan;
>         } default_params;
>
>
> diff --git a/src/main.c b/src/main.c
> index e222ed3bf855..3433130bc419 100644
> --- a/src/main.c
> +++ b/src/main.c
> @@ -125,6 +125,7 @@ static const char *controller_options[] = {
>         "LEAutoconnecttimeout",
>         "AdvMonAllowlistScanDuration",
>         "AdvMonNoFilterScanDuration",
> +       "EnableAdvMonInterleaveScan",
>         NULL
>  };
>
> @@ -444,6 +445,10 @@ static void parse_controller_config(GKeyFile *config)
>                   &main_opts.default_params.advmon_no_filter_scan_duration,
>                   1,
>                   10000},
> +               { "EnableAdvMonInterleaveScan",
> +                 &main_opts.default_params.enable_advmon_interleave_scan,
> +                 0,
> +                 1},
>         };
>         uint16_t i;
>
> @@ -711,6 +716,7 @@ static void init_defaults(void)
>         main_opts.default_params.num_entries = 0;
>         main_opts.default_params.br_page_scan_type = 0xFFFF;
>         main_opts.default_params.br_scan_type = 0xFFFF;
> +       main_opts.default_params.enable_advmon_interleave_scan = 0xFFFF;
>
>         if (sscanf(VERSION, "%hhu.%hhu", &major, &minor) != 2)
>                 return;
> diff --git a/src/main.conf b/src/main.conf
> index 3b341f44c9cf..c300a3b81086 100644
> --- a/src/main.conf
> +++ b/src/main.conf
> @@ -159,6 +159,12 @@
>  # Default: 500
>  #AdvMonNoFilterScanDuration=
>
> +# Enable/Disable Advertisement Monitor interleave scan for power saving.
> +# 0: disable
> +# 1: enable
> +# Defaults to 1
> +#EnableAdvMonInterleaveScan=

This should probably ve defaulting to false until we consider the
interface stable and document how this feature works.

>  [GATT]
>  # GATT attribute cache.
>  # Possible values:
> --
> 2.28.0.681.g6f77f65b4e-goog
>


-- 
Luiz Augusto von Dentz



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux