Re: [PATCH v2] bluetooth:Adding driver and quirk defs for multi-role LE

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

 



Hi Alain,

> This change adds the relevant driver and quirk to allow drivers to
> report the le_states as being trustworthy.
> 
> This has historically been disabled as controllers did not reliably
> support this. In particular, this will be used to relax this condition
> for controllers that have been well tested and reliable.
> 
> 	/* Most controller will fail if we try to create new connections
> 	 * while we have an existing one in slave role.
> 	 */
> 	if (hdev->conn_hash.le_num_slave > 0)
> 		return NULL;
> 
> Signed-off-by: Alain Michaud <alainm@xxxxxxxxxxxx>
> ---
> 
> drivers/bluetooth/btusb.c   | 2 +-
> include/net/bluetooth/hci.h | 9 +++++++++
> 2 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 3bdec42c9612..dd27e28d4601 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -58,7 +58,7 @@ static struct usb_driver btusb_driver;
> #define BTUSB_CW6622		0x100000
> #define BTUSB_MEDIATEK		0x200000
> #define BTUSB_WIDEBAND_SPEECH	0x400000
> -
> +#define BTUSB_VALID_LE_STATES   0x800000
> static const struct usb_device_id btusb_table[] = {
> 	/* Generic Bluetooth USB device */
> 	{ USB_DEVICE_INFO(0xe0, 0x01, 0x01) },
> diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
> index 5f60e135aeb6..25c2e5ee81dc 100644
> --- a/include/net/bluetooth/hci.h
> +++ b/include/net/bluetooth/hci.h
> @@ -214,6 +214,15 @@ enum {
> 	 * This quirk must be set before hci_register_dev is called.
> 	 */
> 	HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED,
> +
> +	/* When this quirk is set, the controller has validated that
> +	 * LE states reported through the HCI_LE_READ_SUPPORTED_STATES are
> +	 * valid.  This mechanism is necessary as many controllers have
> +	 * been seen has having trouble initiating a connectable
> +	 * advertisement despite the state combination being reported as
> +	 * supported.
> +	 */
> +	HCI_QUIRK_VALID_LE_STATES,
> };

So far so good, but I wait until I see this patch in a broader context that also lifts some of the restrictions and checks the supported LE states.

Regards

Marcel




[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