Skip to content

Commit 5c9e997

Browse files
jannaugregkh
authored andcommitted
Bluetooth: hci_bcm4377: Mark bcm4378/bcm4387 as BROKEN_LE_CODED
commit 41e9cde upstream. bcm4378 and bcm4387 claim to support LE Coded PHY but fail to pair (reliably) with BLE devices if it is enabled. On bcm4378 pairing usually succeeds after 2-3 tries. On bcm4387 pairing appears to be completely broken. Cc: stable@vger.kernel.org # 6.4.y+ Link: https://discussion.fedoraproject.org/t/mx-master-3-bluetooth-mouse-doesnt-connect/87072/33 Link: AsahiLinux/linux#177 Fixes: 288c902 ("Bluetooth: Enable all supported LE PHY by default") Signed-off-by: Janne Grunau <j@jannau.net> Reviewed-by: Eric Curtin <ecurtin@redhat.com> Reviewed-by: Neal Gompa <neal@gompa.dev> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 45285db commit 5c9e997

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

drivers/bluetooth/hci_bcm4377.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,7 @@ struct bcm4377_hw {
512512
unsigned long disable_aspm : 1;
513513
unsigned long broken_ext_scan : 1;
514514
unsigned long broken_mws_transport_config : 1;
515+
unsigned long broken_le_coded : 1;
515516

516517
int (*send_calibration)(struct bcm4377_data *bcm4377);
517518
int (*send_ptb)(struct bcm4377_data *bcm4377,
@@ -2372,6 +2373,8 @@ static int bcm4377_probe(struct pci_dev *pdev, const struct pci_device_id *id)
23722373
set_bit(HCI_QUIRK_BROKEN_MWS_TRANSPORT_CONFIG, &hdev->quirks);
23732374
if (bcm4377->hw->broken_ext_scan)
23742375
set_bit(HCI_QUIRK_BROKEN_EXT_SCAN, &hdev->quirks);
2376+
if (bcm4377->hw->broken_le_coded)
2377+
set_bit(HCI_QUIRK_BROKEN_LE_CODED, &hdev->quirks);
23752378

23762379
pci_set_drvdata(pdev, bcm4377);
23772380
hci_set_drvdata(hdev, bcm4377);
@@ -2461,6 +2464,7 @@ static const struct bcm4377_hw bcm4377_hw_variants[] = {
24612464
.bar0_core2_window2 = 0x18107000,
24622465
.has_bar0_core2_window2 = true,
24632466
.broken_mws_transport_config = true,
2467+
.broken_le_coded = true,
24642468
.send_calibration = bcm4378_send_calibration,
24652469
.send_ptb = bcm4378_send_ptb,
24662470
},
@@ -2474,6 +2478,7 @@ static const struct bcm4377_hw bcm4377_hw_variants[] = {
24742478
.has_bar0_core2_window2 = true,
24752479
.clear_pciecfg_subsystem_ctrl_bit19 = true,
24762480
.broken_mws_transport_config = true,
2481+
.broken_le_coded = true,
24772482
.send_calibration = bcm4387_send_calibration,
24782483
.send_ptb = bcm4378_send_ptb,
24792484
},

0 commit comments

Comments
 (0)