Re: [RFC BlueZ PATCH] Bluetooth: Use driver status and experiment value for central-peripheral support.

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

 



Hi Jesse,

On Mon, Dec 20, 2021 at 5:59 PM Jesse Melhuish <melhuishj@xxxxxxxxxxxx> wrote:
>
> ---
> The observed behavior without any change is that support for the
> central-peripheral role can be enabled through an experiment flag in
> BlueZ regardless of whether the controller can actually support it.
> Additionally, if the controller has enabled this feature but the
> experiment flag has not been set the central-peripheral role is not
> listed as supported. I'm not certain what the expected behavior should
> be, but enabling if either source says to enable (this patch) or only
> when both enable the feature both seem like reasonable options to start
> with.
>
>  src/adapter.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/adapter.c b/src/adapter.c
> index 9fc6853c9..60325015b 100644
> --- a/src/adapter.c
> +++ b/src/adapter.c
> @@ -10434,7 +10434,8 @@ static void read_exp_features_complete(uint8_t status, uint16_t length,
>                         }
>
>                         if (feat->func)
> -                               feat->func(adapter, action);
> +                               feat->func(adapter, action ||
> +                                       (rp->features[i].flags & BIT(0)));

Feature being supported doesn't mean the system wants it to be enabled
since this is experimental after all there could be side effects, the
proper way to enable it is via main.conf:

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/src/main.conf#n115

>                 }
>         }
>  }
> --
> 2.31.0

-- 
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