Pre-flight checklist
Upstream / vanilla kernel check
I have not tested with a vanilla/upstream kernel
Kernel variant
linux-cachyos (EEVDF, Clang)
System information (cachyos-bugreport.sh)
Report for fixed system: https://paste.cachyos.org/p/2fa11d5.log
Before fix:
[ 87.018639] PM: suspend entry (deep)
[ 87.107025] Filesystems sync: 0.089 seconds
[ 92.012970] Freezing user space processes
[ 92.020808] Freezing user space processes completed (elapsed 0.002 seconds)
[ 92.025085] OOM killer disabled.
[ 92.026096] Freezing remaining freezable tasks
[ 92.026118] Freezing remaining freezable tasks completed (elapsed 0.001 seconds)
[ 92.026140] printk: Suspending console(s) (use no_console_suspend to debug)
[ 92.026158] t2bce_audio: suspend exit status=0
[ 92.026171] t2bce_vhci: bus_suspend exit status=0
[ 92.026190] t2bce_core: suspend: exit status=0 stateful_valid=1 no_state_resume=0 no_state_fallback=0
[ 92.026204] ACPI: EC: interrupt blocked
[ 92.026224] ACPI: PM: Preparing to enter system sleep state S3
[ 92.026247] ACPI: EC: event blocked
[ 92.026264] ACPI: EC: EC stopped
[ 92.026277] ACPI: PM: Saving platform NVS memory
[ 92.026290] Disabling non-boot CPUs ...
[ 92.026674] [Firmware Bug]: TSC ADJUST differs: CPU0 0 --> 142086788044. Restoring
[ 92.026706] ACPI: PM: Low-level resume complete
[ 92.026723] ACPI: EC: EC started
[ 92.026739] ACPI: PM: Restoring platform NVS memory
[ 92.026757] ACPI: PM: Waking up from system sleep state S3
[ 92.026776] ACPI: EC: interrupt unblocked
[ 92.026790] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io,decodes=io:owns=io+mem
[ 92.027394] t2bce_core: resume: exit status=0 path=stateful stateful_valid=0 no_state_resume=0 no_state_fallback=0
[ 92.027411] ACPI: EC: event unblocked
[ 92.027424] nvme nvme0: 1/0/0 default/read/poll queues
[ 92.027632] t2bce_vhci: stateful resume exit status=0
[ 92.027647] t2bce_vhci: bus_resume exit status=0 no_state_resume=0
[ 92.027668] leds apple::kbd_backlight: Setting an LED's brightness failed (-19)
[ 92.028799] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-a552-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
[ 92.028907] OOM killer enabled.
[ 92.028923] Restarting tasks: Starting
[ 92.028939] usb 3-5: USB disconnect, device number 6
[ 92.028988] [drm] Initialized appletbdrm 1.0.0 for 3-6:2.1 on minor 2
[ 92.029805] leds apple::kbd_backlight: Setting an LED's brightness failed (-19)
[ 92.029890] t2bce_audio: resume deferred path complete
[ 92.056934] Restarting tasks: Done
[ 92.137834] usb 3-5: new high-speed USB device number 9 using t2bce_core
[ 92.276294] usb 3-5: New USB device found, idVendor=05ac, idProduct=027d, bcdDevice= 9.28
[ 92.286006] usb 3-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 92.286212] usb 3-5: Product: Apple Internal Keyboard / Trackpad
[ 92.286376] usb 3-5: Manufacturer: Apple Inc.
[ 92.286539] usb 3-5: SerialNumber: <redacted>
[ 92.303011] apple 0003:05AC:027D.000B: hiddev97,hidraw2: USB HID v1.01 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-t2bce_vhci-5/input0
[ 92.310707] input: Apple Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:1d.0/0000:02:00.1/t2bce_core/t2bce_core/t2bce_vhci/usb3/3-5/3-5:1.1/0003:05AC:027D.000C/input/input16
[ 92.366049] apple 0003:05AC:027D.000C: input,hiddev98,hidraw3: USB HID v1.01 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-t2bce_vhci-5/input1
[ 92.380010] input: Apple Inc. Apple Internal Keyboard / Trackpad as /devices/pci0000:00/0000:00:1d.0/0000:02:00.1/t2bce_core/t2bce_core/t2bce_vhci/usb3/3-5/3-5:1.2/0003:05AC:027D.000D/input/input17
[ 92.380049] magicmouse 0003:05AC:027D.000D: input,hiddev99,hidraw4: USB HID v1.01 Mouse [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-t2bce_vhci-5/input2
[ 92.394010] apple 0003:05AC:027D.000E: hiddev100,hidraw5: USB HID v1.01 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-t2bce_vhci-5/input3
[ 92.402049] apple 0003:05AC:027D.000F: hiddev101,hidraw6: USB HID v1.01 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-t2bce_vhci-5/input4
[ 92.438014] t2bce_vhci: Unhandled system event: 50 s=0 p1=0 p2=0
[ 92.913051] random: crng reseeded on system resumption
[ 93.418012] PM: suspend exit
[ 93.629012] usbcore: registered new interface driver brcmfmac
[ 93.733015] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4377b3-pcie for chip BCM4377/4
[ 93.776014] hci_bcm4377 0000:01:00.1: can't disable ASPM; OS doesn't have ASPM control
[ 93.776278] hci_bcm4377 0000:01:00.1: resetting
[ 93.886052] hci_bcm4377 0000:01:00.1: reset done
[ 94.341018] brcmfmac: brcmf_c_process_txcap_blob: TxCap blob found, loading
[ 94.342035] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4377/4 wl0: Jul 8 2023 00:34:19 version 16.20.371.0.3.6.125 FWID 01-52f5532e
[ 94.619454] Bluetooth: MGMT ver 1.23
[ 95.112092] ieee80211 phy1: brcmf_p2p_set_firmware: failed to update device address ret -52
[ 95.112985] ieee80211 phy1: brcmf_p2p_create_p2pdev: set p2p_disc error
[ 95.113814] ieee80211 phy1: brcmf_cfg80211_add_iface: add iface p2p-dev-wlan0 type 10 failed: err=-52
[ 95.596107] t2bce_vhci: Possible desync, cmd cancel timed out
Manual system information (if cachyos-bugreport.sh is unavailable)
7.2.2-1-cachyos
# dmidecode 3.7
Getting SMBIOS data from sysfs.
SMBIOS 3.3.0 present.
Handle 0x0005, DMI type 1, 27 bytes
System Information
Manufacturer: Apple Inc.
Product Name: MacBookPro15,4
Version: 1.0
Serial Number: C02YWFTQL40Y
UUID: b913a08f-e523-5b9f-a209-989f3f2a1dad
Wake-up Type: Power Switch
SKU Number:
Family: MacBook Pro
lspci
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Coffee Lake-U GT3 [Iris Plus Graphics 645] (rev 01)
00:12.0 Signal processing controller: Intel Corporation Cannon Point-LP Thermal Controller (rev 30)
00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller (rev 30)
00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 30)
00:16.0 Communication controller: Intel Corporation Cannon Point-LP MEI Controller #1 (rev 30)
00:1c.0 PCI bridge: Intel Corporation Device 9dba (rev f0)
00:1c.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #5 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #13 (rev f0)
00:1e.0 Communication controller: Intel Corporation Cannon Point-LP Serial IO UART Controller #2 (rev 30)
00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 30)
00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 30)
00:1f.5 Serial bus controller: Intel Corporation Cannon Point-LP SPI Controller (rev 30)
01:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4377b Wireless Network Adapter (rev 04)
01:00.1 Network controller: Broadcom Inc. and subsidiaries BRCM4377 Bluetooth Controller (rev 04)
02:00.0 Mass storage controller: Apple Inc. ANS2 NVMe Controller (rev 01)
02:00.1 Non-VGA unclassified device: Apple Inc. T2 Bridge Controller (rev 01)
02:00.2 Non-VGA unclassified device: Apple Inc. T2 Secure Enclave Processor (rev 01)
02:00.3 Multimedia audio controller: Apple Inc. Apple Audio Device (rev 01)
Bug description
Pre-flight note on the "reproduce on Arch Linux's linux kernel" checkbox:
This check is not applicable and I could not perform it literally. Mainline
Linux has no drivers/staging/t2bce — neither t2bce nor the older apple-bce
exists upstream — so Arch's vanilla linux kernel does not contain the driver
this report is about. Verified with:
pacman -Fl linux | grep -i t2bce # no matches
On a T2 Mac, booting a kernel without the BCE stack also means no internal
keyboard, trackpad, audio or Touch Bar, and with LUKS the passphrase prompt is
unusable without an external USB keyboard. More importantly, t2bce_vhci cannot
desync on a kernel where it does not exist, so the test would be meaningless.
What I did instead is the equivalent comparison at the level that matters for
this driver, where "upstream" means https://github.com/deqrocks/t2bce rather
than mainline:
- CachyOS in-tree t2bce_vhci (snapshot 2026-08-03): desync reproduces
- Upstream t2bce_vhci from main (contains a973d53): does not reproduce
Same kernel, same machine, one file changed, six lines. I ticked the checkbox
only because the form cannot be submitted otherwise.
On Apple T2 Macs, t2bce_vhci enters a permanent command desync a few seconds
after resuming from S3. The VHCI bus then degrades until the internal keyboard
and trackpad stop responding, which looks to the user like a total system
freeze on the lock screen.
Root cause: the t2bce stack vendored into drivers/staging/t2bce/ was snapshotted
from upstream (https://github.com/deqrocks/t2bce) on 2026-08-03 (commit
17f0e0f97a6c "Add t2bce driver stack"). Upstream commit a973d53
("t2bce_vhci: resume endpoint before cancelled URB giveback"), dated 2026-08-10,
is therefore missing. The 7.2/t2 branch has not been refreshed since; the
7.2.1-1 -> 7.2.2-1 release only rebased 7.2.1 -> 7.2.2.
In bce_vhci_transfer_queue_cancel_w(), the URB is given back to usbcore before
the endpoint is resumed. usbcore can then resubmit to a still-paused endpoint,
the command times out, the cancel times out, and the command queue desyncs.
Diff between upstream main and cachyos-7.2.2-1
(drivers/staging/t2bce/t2bce_vhci/transfer.c):
urb->hcpriv = NULL;
spin_unlock_irqrestore(&q->urb_lock, flags);
-
usb_hcd_giveback_urb(q->vhci->hcd, urb, status);
-
if (was_active)
bce_vhci_transfer_queue_resume(q, BCE_VHCI_PAUSE_INTERNAL_WQ);
-
usb_hcd_giveback_urb(q->vhci->hcd, urb, status);
-
I verified that this is the ONLY difference in the entire t2bce stack between
upstream main and cachyos-7.2.2-1. t2bce_core, t2bce_dma and every other file
in t2bce_vhci are byte-identical, so refreshing the snapshot carries no ABI risk.
Note that a973d53 did not bump MODULE_VERSION, so both variants report
version 0.02. srcversion distinguishes them:
in-tree (cachyos-7.2.2-1): B8FCE43DDFBFB6770941DC0
upstream main: E7CB9FD625CB298DDB14E78
Request: please refresh the 7.2/t2 branch in CachyOS/linux to include a973d53.
Steps to reproduce
- On T2 Macs, install ChacyOS
- Try to suspend
Expected behavior
I've struggled with suspend not working om my MacBook some month ago, without been able to fix. After kernel update I noticed changes of drivers and gave it a new try and were able to get it working (finally).
Actual behavior
Freezes on resume.
Logs / stack traces
Resume itself is clean:
kernel: PM: suspend entry (deep)
kernel: PM: suspend of devices complete after 403.899 msecs
kernel: ACPI: PM: Waking up from system sleep state S3
kernel: t2bce_core: resume: exit status=0 path=stateful
kernel: t2bce_vhci: stateful resume exit status=0
kernel: Restarting tasks: Done
systemd-sleep: System returned from sleep operation 'suspend'.
systemd: Finished System Suspend.
Then, starting ~2 s later and repeating roughly every 3 s:
kernel: t2bce_vhci: Possible desync, cmd cancel timed out
kernel: t2bce_vhci: Possible desync, cmd cancel timed out
systemd-udevd: 3-5: Worker [5223] processing SEQNUM=4453 is taking a long time.
systemd-udevd: 3-6: Worker [5200] processing SEQNUM=4552 is taking a long time.
kernel: leds apple::kbd_backlight: Setting an LED's brightness failed (-110)
kernel: magicmouse 0003:05AC:027D.000D: unable to request touch data (-110)
With the DKMS-built t2bce_vhci from upstream main, no desync lines appear at all.
Additional system information
Model: MacBookPro15,4 (13-inch 2019, T2) / Mac-53FDB3D8DB8CA971
CPU: Intel Core i5-8257U
GPU: Intel Iris Plus 645 (i915), no dGPU
Wi-Fi/BT: BCM4377b (brcmfmac + hci_bcm4377)
Kernel: 7.2.2-1-cachyos (clang 22.1.8, LLD 22.1.8)
Desktop: Hyprland (Wayland), SDDM
Storage: LUKS + btrfs
Bootloader: Limine + limine-mkinitcpio-hook
Note on the pre-flight checklist: I could not test Arch's vanilla linux
kernel. T2 Macs have no functioning internal keyboard, trackpad or USB without
the t2bce (or apple-bce) stack, which does not exist in mainline — mainline
drivers/staging/ contains no t2bce directory. This is not a CachyOS-authored
bug; it is a vendored snapshot that predates a one-commit upstream fix.
Pre-flight checklist
linuxkernel.Upstream / vanilla kernel check
I have not tested with a vanilla/upstream kernel
Kernel variant
linux-cachyos (EEVDF, Clang)
System information (cachyos-bugreport.sh)
Manual system information (if cachyos-bugreport.sh is unavailable)
Bug description
Pre-flight note on the "reproduce on Arch Linux's linux kernel" checkbox:
This check is not applicable and I could not perform it literally. Mainline
Linux has no drivers/staging/t2bce — neither t2bce nor the older apple-bce
exists upstream — so Arch's vanilla
linuxkernel does not contain the driverthis report is about. Verified with:
On a T2 Mac, booting a kernel without the BCE stack also means no internal
keyboard, trackpad, audio or Touch Bar, and with LUKS the passphrase prompt is
unusable without an external USB keyboard. More importantly, t2bce_vhci cannot
desync on a kernel where it does not exist, so the test would be meaningless.
What I did instead is the equivalent comparison at the level that matters for
this driver, where "upstream" means https://github.com/deqrocks/t2bce rather
than mainline:
Same kernel, same machine, one file changed, six lines. I ticked the checkbox
only because the form cannot be submitted otherwise.
On Apple T2 Macs, t2bce_vhci enters a permanent command desync a few seconds
after resuming from S3. The VHCI bus then degrades until the internal keyboard
and trackpad stop responding, which looks to the user like a total system
freeze on the lock screen.
Root cause: the t2bce stack vendored into drivers/staging/t2bce/ was snapshotted
from upstream (https://github.com/deqrocks/t2bce) on 2026-08-03 (commit
17f0e0f97a6c "Add t2bce driver stack"). Upstream commit a973d53
("t2bce_vhci: resume endpoint before cancelled URB giveback"), dated 2026-08-10,
is therefore missing. The 7.2/t2 branch has not been refreshed since; the
7.2.1-1 -> 7.2.2-1 release only rebased 7.2.1 -> 7.2.2.
In bce_vhci_transfer_queue_cancel_w(), the URB is given back to usbcore before
the endpoint is resumed. usbcore can then resubmit to a still-paused endpoint,
the command times out, the cancel times out, and the command queue desyncs.
Diff between upstream main and cachyos-7.2.2-1
(drivers/staging/t2bce/t2bce_vhci/transfer.c):
I verified that this is the ONLY difference in the entire t2bce stack between
upstream main and cachyos-7.2.2-1. t2bce_core, t2bce_dma and every other file
in t2bce_vhci are byte-identical, so refreshing the snapshot carries no ABI risk.
Note that a973d53 did not bump MODULE_VERSION, so both variants report
version 0.02. srcversion distinguishes them:
in-tree (cachyos-7.2.2-1): B8FCE43DDFBFB6770941DC0
upstream main: E7CB9FD625CB298DDB14E78
Request: please refresh the 7.2/t2 branch in CachyOS/linux to include a973d53.
Steps to reproduce
Expected behavior
I've struggled with suspend not working om my MacBook some month ago, without been able to fix. After kernel update I noticed changes of drivers and gave it a new try and were able to get it working (finally).
Actual behavior
Freezes on resume.
Logs / stack traces
Additional system information
Model: MacBookPro15,4 (13-inch 2019, T2) / Mac-53FDB3D8DB8CA971
CPU: Intel Core i5-8257U
GPU: Intel Iris Plus 645 (i915), no dGPU
Wi-Fi/BT: BCM4377b (brcmfmac + hci_bcm4377)
Kernel: 7.2.2-1-cachyos (clang 22.1.8, LLD 22.1.8)
Desktop: Hyprland (Wayland), SDDM
Storage: LUKS + btrfs
Bootloader: Limine + limine-mkinitcpio-hook
Note on the pre-flight checklist: I could not test Arch's vanilla
linuxkernel. T2 Macs have no functioning internal keyboard, trackpad or USB without
the t2bce (or apple-bce) stack, which does not exist in mainline — mainline
drivers/staging/ contains no t2bce directory. This is not a CachyOS-authored
bug; it is a vendored snapshot that predates a one-commit upstream fix.