File tree Expand file tree Collapse file tree 2 files changed +20
-4
lines changed Expand file tree Collapse file tree 2 files changed +20
-4
lines changed Original file line number Diff line number Diff line change @@ -300,6 +300,20 @@ enum {
300
300
*/
301
301
HCI_QUIRK_BROKEN_SET_RPA_TIMEOUT ,
302
302
303
+ /*
304
+ * When this quirk is set, the HCI_OP_LE_EXT_CREATE_CONN command is
305
+ * disabled. This is required for the Actions Semiconductor ATS2851
306
+ * based controllers, which erroneously claims to support it.
307
+ */
308
+ HCI_QUIRK_BROKEN_EXT_CREATE_CONN ,
309
+
310
+ /*
311
+ * When this quirk is set, the command WRITE_AUTH_PAYLOAD_TIMEOUT is
312
+ * skipped. This is required for the Actions Semiconductor ATS2851
313
+ * based controllers, due to a race condition in pairing process.
314
+ */
315
+ HCI_QUIRK_BROKEN_WRITE_AUTH_PAYLOAD_TIMEOUT ,
316
+
303
317
/* When this quirk is set, MSFT extension monitor tracking by
304
318
* address filter is supported. Since tracking quantity of each
305
319
* pattern is limited, this feature supports tracking multiple
Original file line number Diff line number Diff line change @@ -1871,8 +1871,8 @@ void hci_conn_del_sysfs(struct hci_conn *conn);
1871
1871
!test_bit(HCI_QUIRK_BROKEN_EXT_SCAN, &(dev)->quirks))
1872
1872
1873
1873
/* Use ext create connection if command is supported */
1874
- #define use_ext_conn (dev ) ((dev)->commands[37] & 0x80)
1875
-
1874
+ #define use_ext_conn (dev ) ((( dev)->commands[37] & 0x80) && \
1875
+ !test_bit(HCI_QUIRK_BROKEN_EXT_CREATE_CONN, &(dev)->quirks))
1876
1876
/* Extended advertising support */
1877
1877
#define ext_adv_capable (dev ) (((dev)->le_features[1] & HCI_LE_EXT_ADV))
1878
1878
@@ -1885,8 +1885,10 @@ void hci_conn_del_sysfs(struct hci_conn *conn);
1885
1885
* C24: Mandatory if the LE Controller supports Connection State and either
1886
1886
* LE Feature (LL Privacy) or LE Feature (Extended Advertising) is supported
1887
1887
*/
1888
- #define use_enhanced_conn_complete (dev ) (ll_privacy_capable(dev) || \
1889
- ext_adv_capable(dev))
1888
+ #define use_enhanced_conn_complete (dev ) ((ll_privacy_capable(dev) || \
1889
+ ext_adv_capable(dev)) && \
1890
+ !test_bit(HCI_QUIRK_BROKEN_EXT_CREATE_CONN, \
1891
+ &(dev)->quirks))
1890
1892
1891
1893
/* Periodic advertising support */
1892
1894
#define per_adv_capable (dev ) (((dev)->le_features[1] & HCI_LE_PERIODIC_ADV))
You can’t perform that action at this time.
0 commit comments