System
- Model: MacBook Pro 16" 2019 (A2141)
- Distro: Omarchy 4.0.2 (Arch-based)
- Kernel: 7.1.8-arch1-Watanare-T2-3-t2 (linux-t2 7.1.8.arch1-3)
- T2 driver stack: t2bce (t2bce_core 0.06), apple_bce not loaded/blacklisted
- Charger: genuine/compatible 90-93W USB-C PD (stock is 96W)
Symptom
Charging works normally above ~30% battery. Below that, with the charger
physically connected the whole time, the battery keeps discharging instead
of charging — confirmed via upower -i (state: discharging) and
/sys/class/power_supply/ADP1/online reporting 1 (AC present) while
BAT0 status stays "Discharging". Reducing system load (CPU governor
already powersave, closed apps) did not change this — power draw dropped
from ~38W to ~26W and it was still discharging, so it isn't a
draw-exceeds-charger-wattage issue.
The laptop charges normally in macOS at the same battery levels with the
same charger, so this is Linux/T2-driver-specific, not a hardware fault.
Workaround found
Physically unplugging and replugging the USB-C charger cable while below
30% forces a fresh negotiation and charging resumes immediately
(confirmed via upower -i flipping to "charging" right after replug).
A cold boot with the charger already connected also appears to work.
Hypothesis
Looks like a USB-PD renegotiation issue: whatever contract is negotiated
at boot/initial plug-in isn't renegotiated when the battery drops into
the range where a different (bulk-charge) current profile would be
needed, so the existing contract effectively stops delivering usable
charge current. Filing here since apple-bce-drv/t2bce issues/discussions
are disabled on GitHub — tagging t2bce (t2bce_core 0.06) as the current
BCE driver in use in case charging/PD negotiation touches that mailbox
path.
To reproduce
- Drain battery below ~30% while running Linux with charger connected.
- Observe
upower -i shows "discharging" despite AC connected.
- Unplug/replug charger → charging resumes.
System
Symptom
Charging works normally above ~30% battery. Below that, with the charger
physically connected the whole time, the battery keeps discharging instead
of charging — confirmed via
upower -i(state: discharging) and/sys/class/power_supply/ADP1/onlinereporting 1 (AC present) whileBAT0status stays "Discharging". Reducing system load (CPU governoralready powersave, closed apps) did not change this — power draw dropped
from ~38W to ~26W and it was still discharging, so it isn't a
draw-exceeds-charger-wattage issue.
The laptop charges normally in macOS at the same battery levels with the
same charger, so this is Linux/T2-driver-specific, not a hardware fault.
Workaround found
Physically unplugging and replugging the USB-C charger cable while below
30% forces a fresh negotiation and charging resumes immediately
(confirmed via
upower -iflipping to "charging" right after replug).A cold boot with the charger already connected also appears to work.
Hypothesis
Looks like a USB-PD renegotiation issue: whatever contract is negotiated
at boot/initial plug-in isn't renegotiated when the battery drops into
the range where a different (bulk-charge) current profile would be
needed, so the existing contract effectively stops delivering usable
charge current. Filing here since apple-bce-drv/t2bce issues/discussions
are disabled on GitHub — tagging t2bce (t2bce_core 0.06) as the current
BCE driver in use in case charging/PD negotiation touches that mailbox
path.
To reproduce
upower -ishows "discharging" despite AC connected.