mirror of
https://github.com/t2linux/apple-bce-drv.git
synced 2026-08-15 20:18:35 -07:00
aur
PLAYBACK used dev_timestamp from the T2 coprocessor clock domain, which drifts from the host's ktime_get_boottime() after module reload. This produced wild position values in aaudio_pcm_pointer, triggering XRUN and a scheduling-while-atomic panic when snd_pcm_do_stop ran from DMA IRQ context. Switch PLAYBACK to os_timestamp (host boottime at message receipt), matching what CAPTURE already does. The mailbox transit delay (~100 microseconds at most) is negligible in a 347 ms ALSA buffer and eliminates the crash entirely.
MacBook Bridge/T2 Linux Driver
A driver for MacBook models 2018 and newer, implementing the VHCI (required for mouse/keyboard/etc.) and audio functionality.
The project is divided into 3 main components:
- BCE (Buffer Copy Engine) - this is what the files in the root directory are for. This estabilishes a basic communication channel with the T2. VHCI and Audio both require this component.
- VHCI - this is a virtual USB host controller; keyboard, mouse and other system components are provided by this component (other drivers use this host controller to provide more functionality, however USB drivers are not in this project's scope).
- Audio - a driver for the T2 audio interface, currently only audio output is supported.
Please note that the master branch does not currently support system suspend and resume.
If you want to support me, you can do so by donating to me on PayPal: https://paypal.me/mcmrarm
Languages
C
99.7%
Makefile
0.3%