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

From: Aditya Garg
Date: Tue Nov 14 2023 - 05:05:49 EST




> On 14-Nov-2023, at 3:15 PM, Hector Martin <marcan@xxxxxxxxx> wrote:
>
> On 14/11/2023 18.03, Aditya Garg wrote:
>>
>>
>>>> On 14-Nov-2023, at 1:28 PM, Hector Martin <marcan@xxxxxxxxx> wrote:
>>>
>>> On 14/11/2023 15.59, Hector Martin wrote:
>>>> On 14/11/2023 15.23, Aditya Garg wrote:
>>>>>
>>>>>
>>>>>> On 14-Nov-2023, at 5:01 AM, Bagas Sanjaya <bagasdotme@xxxxxxxxx> wrote:
>>>>>>
>>>>>> On Mon, Nov 13, 2023 at 08:57:35PM +0000, 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.
>>>>>>
>>>>>> Can you bisect this regression please?
>>>>>
>>>>> Since I don't have access to this hardware, it's not possible for me to bisect this regression. Let's hope someone is able to do so though.
>>>>
>>>> It's not a regression, it was always broken. I'm sending a patch.
>>>>
>>>> - Hector
>>>
>>> You are quite likely conflating two problems. The ubsan issue you quoted
>>> was always there and the patch I just sent fixes it, but it almost
>>> certainly always worked fine in practice without ubsan.
>>>
>>> The Bluetooth problem you are referring to is likely *specific to
>>> Bluetooth LE devices* and the regression was introduced by 288c90224e
>>> and fixed by 41e9cdea9c, which is also in 6.5.11 and 6.6.1.
>>>
>>> If Bluetooth is broken in *some other way* in 6.6.1 then we need a
>>> proper report or a bisect. Your logs don't show any issues other than
>>> the ubsan noise, which is not a regression.
>>>
>>> - Hector
>>>
>>
>> UBSAN noise seems to be fixed, Bluetooth not working though
>>
>> https://pastebin.com/HeVvMVk4
>>
>> Ill try setting .broken_le_coded = true,
>
> Now you have a probe timeout, which you didn't have before. That's a
> different problem.
>
> Please try this commit and see if it helps:
>
> https://github.com/AsahiLinux/linux/commit/8ec770b4f78fc14629705206e2db54d9d6439686
>
> If it's this then it's still not a regression, it's probably just random
> chance since I think the old timeout value was borderline for the older
> chips.
>
> - Hector
>

Alright, I'll get it tested.