Skip to content

Charging does not resume below ~30% battery without physical unplug/replug (MacBook Pro 16" 2019, A2141) #26

Description

@gnz16

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

  1. Drain battery below ~30% while running Linux with charger connected.
  2. Observe upower -i shows "discharging" despite AC connected.
  3. Unplug/replug charger → charging resumes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions