diff options
| author | Danil Pylaev <danstiv404@gmail.com> | 2024-10-21 12:22:45 +0000 | 
|---|---|---|
| committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2024-11-14 15:33:57 -0500 | 
| commit | 5bd3135924b4570dcecc8793f7771cb8d42d8b19 (patch) | |
| tree | d4f4b9a8728e6f78a90b8f5e9b96e1683785c3f4 /net/bluetooth | |
| parent | 94464a7b71634037b13d54021e0dfd0fb0d8c1f0 (diff) | |
Bluetooth: Support new quirks for ATS2851
This adds support for quirks for broken extended create connection,
and write auth payload timeout.
Signed-off-by: Danil Pylaev <danstiv404@gmail.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Diffstat (limited to 'net/bluetooth')
| -rw-r--r-- | net/bluetooth/hci_event.c | 7 | ||||
| -rw-r--r-- | net/bluetooth/hci_sync.c | 9 | 
2 files changed, 15 insertions, 1 deletions
| diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index 0bbad90ddd6f..65f5ed2ded70 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -3626,6 +3626,13 @@ static void hci_encrypt_change_evt(struct hci_dev *hdev, void *data,  		goto unlock;  	} +	/* We skip the WRITE_AUTH_PAYLOAD_TIMEOUT for ATS2851 based controllers +	 * to avoid unexpected SMP command errors when pairing. +	 */ +	if (test_bit(HCI_QUIRK_BROKEN_WRITE_AUTH_PAYLOAD_TIMEOUT, +		     &hdev->quirks)) +		goto notify; +  	/* Set the default Authenticated Payload Timeout after  	 * an LE Link is established. As per Core Spec v5.0, Vol 2, Part B  	 * Section 3.3, the HCI command WRITE_AUTH_PAYLOAD_TIMEOUT should be diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c index c0203a2b5107..c86f4e42e69c 100644 --- a/net/bluetooth/hci_sync.c +++ b/net/bluetooth/hci_sync.c @@ -4842,6 +4842,13 @@ static const struct {  	HCI_QUIRK_BROKEN(SET_RPA_TIMEOUT,  			 "HCI LE Set Random Private Address Timeout command is "  			 "advertised, but not supported."), +	HCI_QUIRK_BROKEN(EXT_CREATE_CONN, +			 "HCI LE Extended Create Connection command is " +			 "advertised, but not supported."), +	HCI_QUIRK_BROKEN(WRITE_AUTH_PAYLOAD_TIMEOUT, +			 "HCI WRITE AUTH PAYLOAD TIMEOUT command leads " +			 "to unexpected SMP errors when pairing " +			 "and will not be used."),  	HCI_QUIRK_BROKEN(LE_CODED,  			 "HCI LE Coded PHY feature bit is set, "  			 "but its usage is not supported.") @@ -6477,7 +6484,7 @@ static int hci_le_create_conn_sync(struct hci_dev *hdev, void *data)  					     &own_addr_type);  	if (err)  		goto done; - +	/* Send command LE Extended Create Connection if supported */  	if (use_ext_conn(hdev)) {  		err = hci_le_ext_create_conn_sync(hdev, conn, own_addr_type);  		goto done; | 
