Re: [REGRESSION] Bluetooth is not working on Macs with BCM4377 chip starting from kernel 6.5

From: Janne Grunau
Date: Tue Nov 14 2023 - 03:36:03 EST


Hej,

On Mon, Nov 13, 2023, at 21:57, Aditya Garg wrote:
> Starting from kernel 6.5, a regression in the kernel is causing
> Bluetooth to not work on T2 Macs with BCM4377 chip.
>
> Journalctl of kernel 6.4.8 which has Bluetooth working is given here:
> https://pastebin.com/u9U3kbFJ
>
> Journalctl of kernel 6.5.2, which has Bluetooth broken is given here:
> https://pastebin.com/aVHNFMRs
>
> Also, the bug hasn’t been fixed even in 6.6.1, as reported by users.

There could be a possible regression in kernel 6.4 and later affecting Bluetooth low energy on bcm4377 devices specifically. 288c90224eec ("Bluetooth: Enable all supported LE PHY by default") broke BLE connections on bcm4378 and bcm4387. I did not find any reports about broken BLE on bcm4377 so I marked only bcm4378 and bcm4387 as broken with Coded Phy in 41e9cdea9c4a ("Bluetooth: hci_bcm4377: Mark bcm4378/bcm4387 as BROKEN_LE_CODED")

If BLE devices like Logitech keyboards/mice are affected (mostly during pairing) it would be worth testing the change below (against v6.7-rc or stable releases):

diff --git a/drivers/bluetooth/hci_bcm4377.c b/drivers/bluetooth/hci_bcm4377.c
index a61757835695..bc8398cde3c3 100644
--- a/drivers/bluetooth/hci_bcm4377.c
+++ b/drivers/bluetooth/hci_bcm4377.c
@@ -2453,6 +2453,7 @@ static const struct bcm4377_hw bcm4377_hw_variants[] = {
.bar0_window2 = 0x1810c000,
.disable_aspm = true,
.broken_ext_scan = true,
+ .broken_le_coded = true,
.send_ptb = bcm4377_send_ptb,
},

This should affect 6.4.8 as well so might be unrelated to the reported issue.

Janne