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

From: Hector Martin
Date: Tue Nov 14 2023 - 04:44:59 EST


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