Skip to content

platform/surface: re-lift SP11 battery-provider containment - #37

Draft
ooaklee wants to merge 2 commits into
sp11/ubuntu-qcom-x1e-7.2.y-betafrom
sp11/beta-battery-provider
Draft

platform/surface: re-lift SP11 battery-provider containment#37
ooaklee wants to merge 2 commits into
sp11/ubuntu-qcom-x1e-7.2.y-betafrom
sp11/beta-battery-provider

Conversation

@ooaklee

@ooaklee ooaklee commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Summary

Keep Qualcomm battmgr as the authoritative battery and mains provider on Surface Pro 11 by omitting duplicate SAM battery and AC nodes.

Containment and provenance

Historical pre-sync focused software evidence

At 9cc0b14b6ed7:

  • beta integration validator: pass
  • strict checkpatch: 0 errors
  • git diff --check: pass
  • clean case-sensitive ARM64 ubuntu_x1e_defconfig W=1 build of surface_aggregator_registry.o: pass

Current re-lift verification

The two-commit series was re-lifted unchanged onto current beta bf631f9, producing head 4eadf8d. Ordered stable patch IDs, author identities, and subjects match the pre-sync series, and git range-diff pairs both commits exactly. GitHub CI and a local detached-head rerun of the exact-current-head integration check pass. A fresh case-sensitive ARM64 W=1 build of surface_aggregator_registry.o passes at exact head 4eadf8d and tree e970d92e3744.

Blocking hardware gates

Both SP11 variants must expose only Qualcomm battery/AC providers with live telemetry across plug/unplug, suspend/resume, and reboot. A non-SP11 Surface must retain SAM battery and AC providers.

This PR intentionally remains draft.

Qualified-source replacement note

The hardware-qualified source achieved the same provider outcome with an of_machine_is_compatible("microsoft,denali") early return inside the shared surface_battery probe. This relift deliberately does not carry that shared-driver change: removing only the SP11 registry nodes prevents those SAM devices from being created while leaving every other Surface probe path untouched. The final-tree coverage audit therefore classifies drivers/power/supply/surface_battery.c as a guarded replacement, not a lost behavior.

@ooaklee

ooaklee commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

WITHDRAWN: aggregate qualification candidate

Do not install or hardware-test 7.2.2-sp11beta1 or candidate
80ecee88b749d7324e1274c0a1cf6dfd752fddfa.

A final-tree comparison against the hardware-qualified
sp11/integration-7.2.x source found active camera behavior missing from that
candidate: VFE680 MIPI RAW write-client mode, CSID680 crop/drop-engine
containment, and CAMSS partial stream-start unwind. Compile, schema, and package
success did not detect this runtime-semantic gap. A focused repair and a new,
uniquely named candidate are required before hardware testing.

This correction supersedes the build notice below; the old results are retained
only as reproducibility evidence.


Historical aggregate build record (withdrawn)

The held qualification branch sp11/ubuntu-qcom-x1e-7.2.y-beta-qualification
at 80ecee88b749 combined the provisional beta with draft PRs #36#39 in
dependency order.

  • clean full ARM64 ubuntu_x1e_defconfig build: passed through modules,
    MODPOST, vmlinux, Image, vmlinuz, and vmlinuz.efi
  • aggregate touched-object W=1 build: passed
  • X1E/OLED, X1P/LCD, and representative non-SP11 DTBs: passed
  • all six changed binding families: passed; only two unrelated pre-existing
    schema warnings remained
  • complete bindeb-pkg: passed with unique kernel release
    7.2.2-sp11beta1
  • image package SHA-256:
    acc6368a15b5fcb4e0eb2059e5c401b14e87a5c2b3178fea73acdeed11f75ee4

The #37/#38 registry overlap was combined without simplifying either feature:
SP11 SAM battery/AC nodes remained omitted, and only the SP11 profile/fan nodes
were added.

These are historical composition and packaging results, not hardware
acceptance. They do not change any PR's draft status or waive any listed device,
non-SP11, userspace, provenance, or contributor-attestation gate.

@ooaklee

ooaklee commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

Aggregate hardware qualification is tracked in #41 at exact candidate
08249986a3f4efd7e0826c29e830601bfde928ed (tree
da7479fbffe997cdc980a147b4cb929d71253185).

This topic remains draft. A green aggregate build or CI result does not satisfy
its topic-specific hardware, dependency, provenance, or non-SP11 gates. Record
full-system evidence in #41 and link the relevant result back here before this
topic leaves draft state.

PR #41 is a test-only aggregate and must close without merge.

kyjus25 and others added 2 commits September 4, 2026 02:34
Qualcomm battmgr is the authoritative battery provider on the Surface
Pro 11. Do not instantiate the primary Surface Aggregator Module battery
device in the Denali-specific software-node group, avoiding a duplicate
battery provider without adding a machine quirk to the shared driver.

Keep the separate SAM AC-adapter node registered. This extracts and
narrows the Denali battery fix from the original combined touchscreen and
battery commit.

Link: 3fc7c52
Signed-off-by: Justin White <kyjus25@gmail.com>
Signed-off-by: Leon Silcott <leon@boasi.io>
The X1E Qualcomm battery manager registers qcom-battmgr-ac as the
authoritative mains supply. Retaining the Surface Aggregator ADP1 node
creates a second mains interface for the same Denali power source.

Follow the upstream Surface Laptop 7 precedent and omit the SAM AC node
from the Denali-only registry group. Keep this correction separate from
the Justin White battery-node extraction so its original authorship and
sign-off remain intact.

Link: torvalds@0488073
Signed-off-by: Leon Silcott <leon@boasi.io>
@ooaklee
ooaklee force-pushed the sp11/beta-battery-provider branch from efbd715 to 4eadf8d Compare September 4, 2026 01:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants