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