From: Felix Zhang <mrman@mrman314.tech>
To: Aditya Garg <gargaditya08@live.com>
Cc: Hector Martin <marcan@marcan.st>, Sven Peter <sven@svenpeter.dev>,
Alyssa Rosenzweig <alyssa@rosenzweig.io>,
marcel@holtmann.org, johan.hedberg@gmail.com,
luiz.dentz@gmail.com,
Orlando Chamberlain <orlandoch.dev@gmail.com>,
Kerem Karabay <kekrby@gmail.com>,
Aun-Ali Zaidi <admin@kodeit.net>,
Asahi Linux <asahi@lists.linux.dev>,
LKML <linux-kernel@vger.kernel.org>,
linux-bluetooth@vger.kernel.org
Subject: Re: [REGRESSION] Bluetooth is not working on Macs with BCM4377 chip starting from kernel 6.5
Date: Sun, 24 Dec 2023 13:04:33 -0500 [thread overview]
Message-ID: <956280a5c2e931b13d784ec5fca38156@mrman314.tech> (raw)
In-Reply-To: <22582194-DE99-45E5-ABEE-C1C7900DA523@live.com>
On 2023-11-13 15: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.
>
> Some relevant bits imo:
>
> • Sep 19 21:24:36 RudyUbuMbp kernel: hci_bcm4377 0000:73:00.1:
> can't disable ASPM; OS doesn't have ASPM control
>
> • Nov 14 01:29:28 RudyUbuMbp kernel: Call Trace:
> • Nov 14 01:29:28 RudyUbuMbp kernel: <TASK>
> • Nov 14 01:29:28 RudyUbuMbp kernel: dump_stack_lvl+0x48/0x70
> • Nov 14 01:29:28 RudyUbuMbp kernel: dump_stack+0x10/0x20
> • Nov 14 01:29:28 RudyUbuMbp kernel:
> __ubsan_handle_shift_out_of_bounds+0x156/0x310
> • Nov 14 01:29:28 RudyUbuMbp kernel: ? ttwu_do_activate+0x80/0x290
> • Nov 14 01:29:28 RudyUbuMbp kernel: ? raw_spin_rq_unlock+0x10/0x40
> • Nov 14 01:29:28 RudyUbuMbp kernel: ? try_to_wake_up+0x292/0x6c0
> • Nov 14 01:29:28 RudyUbuMbp kernel: ? sched_slice+0x76/0x140
> • Nov 14 01:29:28 RudyUbuMbp kernel: ? reweight_entity+0x15c/0x170
> • Nov 14 01:29:28 RudyUbuMbp kernel: __reg_op.cold+0x14/0x38
> • Nov 14 01:29:28 RudyUbuMbp kernel: bitmap_release_region+0xe/0x20
> • Nov 14 01:29:28 RudyUbuMbp kernel: bcm4377_handle_ack+0x8c/0x130
> [hci_bcm4377]
> • Nov 14 01:29:28 RudyUbuMbp kernel:
> bcm4377_poll_completion_ring+0x196/0x330 [hci_bcm4377]
> • Nov 14 01:29:28 RudyUbuMbp kernel: ?
> rcu_gp_kthread_wake+0x57/0x90
> • Nov 14 01:29:28 RudyUbuMbp kernel: bcm4377_irq+0x77/0x140
> [hci_bcm4377]
> • Nov 14 01:29:28 RudyUbuMbp kernel:
> __handle_irq_event_percpu+0x4c/0x1b0
> • Nov 14 01:29:28 RudyUbuMbp kernel: handle_irq_event+0x39/0x80
> • Nov 14 01:29:28 RudyUbuMbp kernel: handle_edge_irq+0x8c/0x250
> • Nov 14 01:29:28 RudyUbuMbp kernel: __common_interrupt+0x4f/0x110
> • Nov 14 01:29:28 RudyUbuMbp kernel: common_interrupt+0x45/0xb0
> • Nov 14 01:29:28 RudyUbuMbp kernel: asm_common_interrupt+0x27/0x40
> • Nov 14 01:29:28 RudyUbuMbp kernel: RIP: 0033:0x7f17b5fd8bca
It seems that the BCM4377 chip stopped working on my MacBookAir9,1 (and
possibly other T2 devices with the BCM4377) after the logic in the
Bluetooth core was changed in this commit:
https://github.com/torvalds/linux/commit/6945795bc81ab7be22750ecfb365056688f2fada
Due to the HCI_QUIRK_USE_BDADDR_PROPERTY being always set in
drivers/bluetooth/hci_bcm4377.c, the chip would be left unconfigured, as
per the commit mentioned prior. On the M1 Macs, it seems that the
device would be configured in the devicetree. However, that is not the
case on T2 Macs. In order to circumvent this issue, a flag can be added
to prevent the bit from being set on the BCM4377, while setting it on
the other devices. I have not submitted a patch yet, but you can view
and use the patch with the latest kernel source here:
https://github.com/MrMan314/linux-t2-patches/blob/main/9004-bcm4377-fix-bdaddr-property.patch
I would also like to thank kekrby (https://github.com/kekrby) for
helping me with the patch.
prev parent reply other threads:[~2023-12-24 18:13 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-13 20:57 [REGRESSION] Bluetooth is not working on Macs with BCM4377 chip starting from kernel 6.5 Aditya Garg
2023-11-13 23:31 ` Bagas Sanjaya
2023-11-14 6:23 ` Aditya Garg
2023-11-14 6:59 ` Hector Martin
2023-11-14 7:58 ` Hector Martin
2023-11-14 8:18 ` Aditya Garg
2023-11-14 9:03 ` Aditya Garg
2023-11-14 9:44 ` Hector Martin
2023-11-14 10:05 ` Aditya Garg
2023-11-18 19:31 ` Aditya Garg
2023-11-20 11:07 ` Hector Martin
2023-11-21 11:42 ` Aditya Garg
2023-11-21 12:16 ` Hector Martin
2023-11-14 8:35 ` Janne Grunau
2023-12-24 18:04 ` Felix Zhang [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=956280a5c2e931b13d784ec5fca38156@mrman314.tech \
--to=mrman@mrman314.tech \
--cc=admin@kodeit.net \
--cc=alyssa@rosenzweig.io \
--cc=asahi@lists.linux.dev \
--cc=gargaditya08@live.com \
--cc=johan.hedberg@gmail.com \
--cc=kekrby@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
--cc=marcan@marcan.st \
--cc=marcel@holtmann.org \
--cc=orlandoch.dev@gmail.com \
--cc=sven@svenpeter.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.