Repository navigation
Conversation
Add embedded controller node for Hamoa/Purwa CRDs which adds fan control, temperature sensors, access to EC internal state changes and suspend entry/exit notifications to the EC. link: https://lore.kernel.org/all/20260327-add-driver-for-ec-v7-0-7684c915e42c@oss.qualcomm.com/ Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
It is apparently not available, use eusb5 until we find out which is which also cleanup on i2c9 (keyboard) and i2c19, touchpad is no wakeup-source Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
to avoid oddities during boot Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
…nd DAIs Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
…tate The MSM DP bridge implements dp_audio_prepare and dp_audio_shutdown but not dp_audio_startup. drm_bridge_connector_audio_startup() treats a missing dp_audio_startup as success and allows the DPCM layer to proceed to dp_audio_prepare even when no display is connected. msm_dp_audio_prepare() then returns -EINVAL because power_on is false, producing continuous dmesg spam at boot and on every PipeWire re-probe: ASoC error (-22): at snd_soc_dai_hw_params() on i2s-hifi DisplayPort2 Playback: ASoC error (-22): at __soc_pcm_hw_params() Add a dp_audio_startup implementation that checks power_on and returns -ENOTSUPP when no display is connected, gating the entire audio setup sequence at startup so prepare is never reached when the DP link is not active. -ENOTSUPP is used deliberately as snd_soc_ret() in soc-utils.c treats it as an expected non-error condition and suppresses the log output, avoiding unnecessary noise when no display is attached. Signed-off-by: Steev Klimaszewski <threeway@gmail.com>
…llers Enable the gpi_dma0..gpi_dma2 controllers currently no clients yet Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Reference the reserved memory region for audio PD dynamic loading and remote heap requirements. Add the required VMID list for memory ownership transfers. Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
…me PM Convert the LPASS WSA macro codec driver to use the PM clock framework for runtime power management. The driver now relies on pm_clk helpers and runtime PM instead of manually enabling and disabling macro, dcodec, mclk, npl, and fsgen clocks. Runtime suspend and resume handling is delegated to the PM core via pm_clk_suspend() and pm_clk_resume(), while existing runtime PM callbacks continue to manage regcache state. This ensures clocks are enabled only when the WSA macro is active, improves power efficiency on LPASS platforms supporting LPI/island modes, and aligns the driver with common ASoC runtime PM patterns used across Qualcomm LPASS codec drivers. Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
…e PM Convert the LPASS VA macro codec driver to use the PM clock framework for runtime power management. The driver now relies on pm_clk helpers and runtime PM instead of manually enabling and disabling macro, dcodec, mclk, and npl clocks. All clock control during runtime suspend and resume is delegated to the PM core via pm_clk_suspend() and pm_clk_resume(). This change ensures clocks are only enabled when the VA macro is active, improves power efficiency on LPASS platforms supporting LPI/island modes, and aligns the driver with common ASoC runtime PM patterns used across Qualcomm LPASS codec drivers. Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
The NPL clock is only present on some platforms. When it is absent, wsa->npl remains NULL, but the driver unconditionally programs its rate. Guard clk_set_rate() for the NPL clock so platforms without NPL do not attempt to access it. No functional change on platforms that provide the NPL clock. Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
- remove codec - remove codec, dmic, speaker related DAIs - remove swr config, lpass, wsa macro, va macro - add DisplayPort related DAIs - add DisplaPort sound names Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
and follow-up changes re thermal zones in dell xps13 9345 Thermal zones definition on sgerhold's branch was different (newer) Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
required for the ufs_mem_hc node. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Add status = "disabled" to ice@1d88000, cryptobam and general crypto nodes in hamoa.dtsi to avoid probe failures on platforms that don't use them. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
ICE is used by the UFS controller. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Add the dp altmode wiring from Denali. This consists of pmic-glink, ps883x retimers, and accompanying vregs and gpios. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
- re-enable scm compatible for obvious reasons - some sorting - pcie4 pinctrl - MAC hack Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
preliminary hack Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
To support sound over DisplayPort on the type-c ports, add the necessary DAI links and port naming. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
remove standalone _dwc3 statements, integrate in the usb_ block Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Commit 47c88db ("arm64: dts: qcom: hamoa: Add remoteproc IOMMUS in EL2 device trees") added IOMMU stream configuration for the ADSP and CDSP remote processors directly into x1-el2.dtso. This configuration is only needed when Linux at EL2 is responsible for fully managing remote processor loading and IOMMU setup via PAS (Peripheral Authentication Service). Other EL2 configurations do not require these properties in the same way. Introduce a small dedicated overlay (x1-el2-pas.dtso) that includes the base EL2 overlay and provides the remoteproc IOMMU configuration. This keeps the generic x1-el2.dtso suitable for the configurations it was originally intended for. Fixes: 47c88db ("arm64: dts: qcom: hamoa: Add remoteproc IOMMUS in EL2 device trees") Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Checked against dsdt.dsl and AeoB file: its PMICGPIO 3 3, which translates to pmc8380_3 gpio3. Go figure. pmc8380_3 gpio3 is protected, though, and can't be claimed by backlight. And surprise: without it defined backlight adjustment works after suspend, too. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Match the qualified position-map token and send the soft-pause parameter over the APM service port used by the captured SP11 transaction. The exact protected-topology predicate still prevents either path from serving another graph. Keep pull-ring setup and event registration on the graph client, matching their qualified routes and preserving graph-scoped command correlation. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit c575f95)
Clear the retained-map uncertainty only when the DSP definitively rejects the matching graph-owned position mapping. This lets the synchronous failure path release coherent DMA without treating a confirmed NACK like an unknown DSP outcome. Reject a second position allocation on the same graph as a defensive backstop against overwriting retained mapping state. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 4f41d24)
A persistent Denali pull graph may reach prepare while it is still DSP soft-paused. Resume it and require the matching completion before reporting the reused graph as running. Keep the stream uncertain on a missing completion so a later prepare cannot silently reuse a potentially paused graph. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 7dd3578)
The graph-owned position mapping uses the qualified fixed BIT(30) token. Reserve that sequence value from generated mapping tokens and classify graph-position responses by the complete non-graph-id token class. This prevents a generic fixed-region mapping from becoming indistinguishable after the sequence counter reaches the reserved value while preserving the qualified DSP transaction. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit aaa5c46)
Do not let a later STOP overwrite the fail-closed state left by a missing soft-pause completion. Confirm a hard graph stop first, then clear persistent pull state so the next prepare performs the complete setup. Also clear the soft-pause marker after hw_free confirms the same recovery, preventing stale pause state from surviving into a rebuilt graph. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit f0d9f69)
The hardware-qualified SP11 v19 image clears Offset2 while enabling the WSA VI and CPS master ports. The guarded 7.2.2 relift dropped that behavior. Apply the active value automatically only to WSA controller ports 10, 11 and 13 on Microsoft Denali. Keep the inactive transport configuration unchanged and leave generic controllers untouched. This restores the qualified behavior without exposing SP11 policy through a module parameter or making SP11 naming part of the public userspace contract. Link: 537d1ac Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 618b3e1)
The guarded 7.2.2 port kept the 2S 4-ohm final values but dropped the hardware-qualified Denali WSA8845 cold, start and stop transactions. The right amplifier consequently reports PA status 0x6 and remains disabled during playback. Restore the v19 register sequences verbatim and select them only when the machine is Microsoft Denali, protected feedback is described, the speaker load is 4 ohms and the codec reports a 2S supply. Generic WSA884x devices retain the upstream lifecycle. Also restore the bounded PA FSM reset and retry path. Retain the relifted protection-clock accounting and keep a failed recovery as a hard playback error. Link: e72bffc Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit d1edbc8)
The WSA8845 devices remain powered and advertise simple clock-stop support on Microsoft Denali. Treating each transient SoundWire detach as context loss dirties the full register cache and replays the cold transaction on attachment, unlike the hardware-qualified v19 lifecycle. Keep the initialized codec state across the Denali protected 2S 4-ohm detach and sync only writes queued while cache-only. Preserve the existing context-loss path, including full dirty-cache restore, for every other device and profile. Link: e72bffc Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 09a3f4e)
DPCM releases the Denali VI and CPS backends before the front end performs its final protected graph stop. The graph correctly rejects those ready-to-not-ready transitions while start_count is nonzero, but the machine driver then aborts SoundWire hw_free and shutdown. This produces four -EBUSY warnings and can retain the stream runtime on every close. Treat only a busy readiness clear as deferred so SoundWire teardown continues. Complete both deferred clears after a confirmed final protected graph stop, under the existing protection lock. Keep ready transitions into a running graph rejected, and do not clear state after an uncertain or failed stop. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit cceb155)
The Denali cold, start, and stop transactions already carry their own gain, current-limit, and watchdog state. Running the generic speaker post-PMU and PDM watchdog writes afterwards changes that qualified transition and can leave the paired amplifiers asymmetric. Restore the protected-profile bypass used by the qualified v19 path. Non-Denali and unprotected WSA884x users retain the generic programming. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit e0fe0c6)
The hardware-qualified SP11 v19 path materializes TOP_CFG1 after each enabled VI feedback pair. The guarded 7.2.2 relift retained the feedback clocks but dropped this producer-side write, leaving the physical lane order inconsistent with the qualified V,I,V,I stream. Restore the write at the original lifecycle boundary and gate it with the existing protected-feedback profile. This is equivalent to the original Denali check while preserving upstream defaults and behavior on every other machine. Link: f17a678 Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 156115d)
The device writes event elements into coherent memory before publishing its event ring read pointer. Both gpi_process_events() and gpi_mark_stale_events() read that pointer through readl_relaxed() and then consume the event memory without an ordering guarantee. On architectures such as arm64, this can expose a published event before all its fields are visible. Denali QSPI exposed this as an accepted completion whose length was observed as zero. Use ordered MMIO reads only for the event pointer. Keep all other register accesses relaxed. This follows the ordered ioread32() pattern used by the Qualcomm IPA GSI event-ring consumer. Fixes: 5d0c353 ("dmaengine: qcom: Add GPI dma driver") Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit bd9f5e2) (cherry picked from commit f9c68b9)
Signed-off-by: Leon Silcott <leon@boasi.io>
Derive the softclip control register from the selected codec layout instead of combining the fixed v2.1 base with a version-dependent channel stride. This preserves v2.1 control addresses 0x604/0x644 and selects 0x644/0x664 for v2.5 and later. Keep the existing softclip enable and event policy. This is a register-layout correction, not a claim that softclip caused the Denali audio regression. Signed-off-by: Leon Silcott <leon@boasi.io>
Restore the VBAT/BCL event, widgets and routes from the qualified Denali integration source, together with its HD2 no-op and conditional primary half-dB policy. Retain the geocausa/SP11X1e-audio provenance of that source. Apply the seventeen cache-default differences to a private writable copy only for Denali. These remain cache assumptions, not forced register writes. Extend the v2.5 register access range only for Denali, and install the driver instance before regmap access callbacks can need it. Keep generic routes and defaults unchanged. Use separate Denali and generic route tables because common component routes are registered after probe. Do not change PA, VI or CPS ownership in this commit. This restores nominal source behavior, including the inherited shared-VBAT teardown and ignored event-write errors. Neither those behaviors nor the new guarded composition are hardware-qualified by the source trace tests. Link: 537d1ac Link: geocausa/SP11X1e-audio@31466d6 Signed-off-by: Leon Silcott <leon@boasi.io>
Restore the two SP/SPVI GET transactions in the qualified Denali setup order between the tag configuration and SPVI dynamic configuration. Derive their first-record query shape from the validated topology instead of introducing fixed instance IDs. Zero the request before filling it. Accept the GET response only when a pending command, opcode and token match, and validate response bounds before reporting completion. Preserve the existing protected-profile gate and transport error handling. The source order comes from the geocausa/SP11X1e-audio integration port. This does not decode calibration replies or prove that these queries resolve the speaker regression. Link: 537d1ac Link: geocausa/SP11X1e-audio@31466d6 Signed-off-by: Leon Silcott <leon@boasi.io>
Restore the qualified integration's per-record calibration replay when the aggregate returns EOPNOTSUPP. Validate the entire block's framing before sending it, retaining opaque instance IDs and query-only records. Continue past individual EOPNOTSUPP replies, but stop on hard failures. Serialize replay and retain its result on the persistent topology graph information so reopening a runtime graph cannot accept a partially failed replay. A topology reload resets this state. This intentionally replaces the legacy global once flag with per-topology ownership and sticky errors. The nominal replay is adapted from the geocausa/SP11X1e-audio integration port. Do not restore the legacy hard-aggregate-error diagnostic probes. The state and error-handling deviations still need hardware qualification. Link: 537d1ac Link: geocausa/SP11X1e-audio@31466d6 Signed-off-by: Leon Silcott <leon@boasi.io>
After both protected modules have been successfully disabled for missing VI/CPS feedback, send the qualified gain, filter, mute and channel-mixer tail. Reuse the same sequence for the fully configured protected path. Only confirm bypass after every required transaction succeeds. A failed disable or volume-tail transaction faults the graph and prevents prepare and start from treating partial configuration as success. Leave the unavailable/uncertain guard path's disable-only behavior unchanged. The nominal sequence is adapted from the geocausa/SP11X1e-audio integration port. Preserving it does not qualify bypass acoustics or speaker safety; the guarded error behavior and complete composition remain test candidates. Link: 537d1ac Link: geocausa/SP11X1e-audio@31466d6 Signed-off-by: Leon Silcott <leon@boasi.io>
Keep Denali's macro and dcodec votes for the device lifetime and cycle only mclk, optional npl and fsgen through runtime PM, in that order on resume and in reverse on suspend. This matches its qualified integration clock ownership instead of applying the newer all-clock PM policy. Retain the PM-clock framework path for all other devices. On Denali, propagate clock-enable failures and unwind partial acquisition. Clear cache-only only once the clocks are ready; on regcache-sync failure restore cache-only/dirty and release runtime references before returning the error. That sync-error handling deliberately differs from the legacy ignored error. Register a managed release action before the component and output clock so they are torn down first. Track acquired runtime references independently of PM status and disable PM before cleanup on remove or probe failure. Keep the three-second autosuspend delay and system-sleep policy unchanged. This is a Denali qualification candidate, not proof of physical power collapse or of the speaker regression's cause. The VA fsgen dependency and real PM/CCF/DAPM behavior still need qualification. Link: 537d1ac Link: jglathe@4d49f24 Signed-off-by: Leon Silcott <leon@boasi.io>
The Denali producer repair deliberately mutates a private reg_default copy before passing it to regmap. Its argument cannot be const; the generic CONST_STRUCT heuristic is not applicable to this use. Retain the diagnostic in the log, but accept it only when the complete patch has the reviewed stable patch ID, the resulting source blob matches exactly, and this exact warning is the sole diagnostic. The blob check is necessary because patch IDs also ignore significant whitespace in string literals. Do not ignore CONST_STRUCT globally or waive other findings in the same patch. Any source change requires a renewed review. This is a source-style exception, not a hardware or provenance waiver. All qualification and contributor-attestation gates remain unchanged. Signed-off-by: Leon Silcott <leon@boasi.io>
Allocate 7.2.5-jg-0sp11v3 for the guarded audio repair series. Keep its packages and modules distinct from the failed v2 hardware candidate; the calibration state changes exported AudioReach symbol checksums. Retain the prior v2 entry and existing source DTB/non-Stubble policy. No other packaging, configuration or kernel source is changed here. Compilation and linkage checks are not audio safety or hardware parity qualification. Preserve the known-good recovery kernel and keep this test carrier out of the integration target until its gates are met. Signed-off-by: Leon Silcott <leon@boasi.io>
Restore the DAC BLOCKCTRL3 and COMP/BOOST OFFSETCTRL2 SIMPLE-port capabilities from the qualified SP11 Golden transport originating in geocausa/SP11X1e-audio and carried by the integration source below. SoundWire can then write the existing master-derived banked values. Select the capabilities only for the Denali protected-feedback wiring with a four-ohm speaker description. Copy the sink properties into managed per-instance storage and leave the shared generic table unchanged. Return allocation failure before reset deassertion and component setup. Select transport from board wiring, not the VPHX status first read after attachment. Keep the measured supply and analog protection guards, gain, source ports, master tables, PCM lifecycle and userspace unchanged. This restores nominal source behavior, not proof that retained register values caused static. Require fresh package and hardware qualification before integration; compilation and host tests do not establish safety. Link: 537d1ac Signed-off-by: Leon Silcott <leon@boasi.io>
Allocate 7.2.5-jg-0sp11v4 for the guarded render port extension repair. Keep this candidate's packages and modules separate from the v3 hardware test, which still produced audible static after volume changes. Retain both previous qualification changelog entries, the GPI ordering repair and the existing source DTB/non-Stubble packaging policy. No other source or packaging changes are made by this version-only commit. Offline tests do not establish audible parity or physical speaker safety. Preserve the known-good recovery kernel and hold integration until fresh package, cold-boot audio and broader hardware qualification are complete. Signed-off-by: Leon Silcott <leon@boasi.io>
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> (cherry picked from commit 9074c73) (cherry picked from commit 8ad3a31)
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> (cherry picked from commit 4eadf8d) (cherry picked from commit 53905a9)
Compose the two preserved Denali battery and AC-registry ports on the working v4 audio/input carrier. Keep platform-profile policy and the experimental camera group separate so each dependency has its own qualification path. Allocate a fresh test ABI and retain the prior changelog history and source DTB delivery policy. This source preparation does not establish provider telemetry, AC transitions, power-state behavior or acceptance for beta integration. Signed-off-by: Leon Silcott <leon@boasi.io>
|
Closing this superseded review/qualification vehicle without merging. Current review work is tracked in ooaklee/linux_ms_dev_kit-sp11#59, ooaklee/linux_ms_dev_kit-sp11#68; ooaklee/linux_ms_dev_kit-sp11#68 is the single combined 7.2.5 qualification candidate. This does not discard the original feature intent or close any outstanding acceptance gate. The current combined source is This PR's branch and exact head |
Battery dependency-group candidate — built, installed and booted; qualification ongoing
This draft carries
7.2.5-jg-0sp11v6from the working v4 source in #55(
b9c141a6da73249aecb793b2ce1ac77645e6a00f), separately from the camera-on-v4carrier in #63. Candidate head:
5a08764e1f2fb044a5d96b75cdf8fe8d7599fd83.The exact-head build and complete local artifact checks passed. The human
authorized its installation on one Denali OLED Surface; installation and
boot-file verification passed, retaining
7.2.0-jg-0sp11v23-qcom-x1eas theexplicit default and fallback. The installation observation still showed v5;
subsequently the human selected v6 and reported no audio, microphone, touch or
pen regression and a visible charging indication. Read-only checks confirm a
new v6 boot and the intended battery provider. Active charging and charger
transitions remain unqualified; no automatic reboot or device stimulus was
performed by the diagnostic helpers.
V4's bounded audio, microphone, touch/pen, Wi-Fi, warm/cold-start and ordinary
front-camera results, and v5's bounded camera/regression trial, remain evidence
for those exact candidates only. They do not qualify this battery change.
Keep this PR draft and beta held until the remaining acceptance gates pass.
Exact delta and contribution preservation
Replay exactly the two battery ports from held #59 using
cherry-pick -x,then add a separate qualification changelog commit:
8ad3a3100d695a1357893f61ff099cefa60be4d14856403279ddbc9a5956bc64eff39ed02505c4e653905a94e7352c3ba02af044e4cdba0eae79c4b945ca12b1c02db40a7a411b20f2bad12c8482d7fbOriginal author email/date, messages, existing sign-offs, attribution and
stable patch identities are retained. No contributor sign-off is invented.
The new qualification commit has only the intended Leon sign-off.
Only two paths differ from v4:
drivers/platform/surface/surface_aggregator_registry.c: remove only theDenali/SP11 group's SAM main-battery and AC provider entries. Its final blob
equals held [HELD 7.2.5] platform/surface: preserve SP11 battery providers #59 exactly. Shared AC definitions, other board groups and the
rest of the Denali group remain unchanged; this is not global AC removal.
debian.qcom-x1e/changelog: allocate the fresh v6 version, preserving thecomplete existing v4 changelog tail byte-for-byte.
Every other audio, input, DT, build-flag, camera, platform-profile and CI-policy
blob remains the v4 blob. This carrier does not add the seven camera ports from
#56/#63 or the profile/fan/CPU policy in #60. Those remain separate required
qualification tracks, not discarded features or a claim of final composition.
Source and CI boundary
This draft targets beta to expose the full inherited composition to the
existing workflow, not to request its merge. The battery-only review range
contains three commits after pinned v4; the beta-relative range covers 58
topic commits, including the exact prepared upstream refresh. Held #59/#60 and
all other reviewed source heads remain unchanged.
Checks establish the exact two-path Git delta, held registry-blob equality,
only the two Denali provider removals, contribution/message/patch preservation
and unchanged history. Eight additional out-of-scope path checks exercise the
whitelist predicate synthetically; they are not committed source mutations or
physical tests. Complete-table local validators pass the immediate v4 and beta
ranges (3/58 commits).
The inherited hosted workflow still omits two checkpatch tables. Its green
result has limited style coverage and does not replace complete local checks.
The hosted run 36929019524
passes its 58-topic-commit checks. Its inspected synthetic merge
e9ac1bb4d8ce99e0a48c200ceeaf5a11076cbc03has the pinned beta/candidate parentsand exact candidate tree; the log confirms both table omissions. The separate
CI-only correction in #64 has an exact hosted synthetic-merge pass for its own
two commits, not this composition, and is not rolled into this carrier.
Actual build and local artifact evidence — October 3, 2026 UTC
A distinct retry completed with actual exit zero at 01:26:15 UTC, exact head
5a08764e1f2fb044a5d96b75cdf8fe8d7599fd83and tree82bc21ece534f079bdcdde8f98f39b43d86c89e3. An earlier attempt failed its normalcapacity gate before compilation and remains a separately retained failure;
the retry did not bypass the gate or reuse its output.
Lexr
0.5.0-rc.5atb74247d08f7cproduced five packages with eight jobs.Source flags remain
do_dtbs=true,do_stubble=false; the observed package ABIis
7.2.5-jg-0sp11v6-qcom-x1e, with external-required DTB delivery and theboot-support package. Independent capture from the actual running producer
matched the complete 416-package reviewed v5 inventory policy. That is not
identical full v4 inputs, image/signature bytes or hardware equivalence.
All finished local gates passed without changing their expected source pins:
boot-support registry, helper/hooks and exact-ABI image triggers/postinst pass.
temporary-Equivs diagnostic normalizations; no blanket warning waiver.
The extraction checks did not execute package maintainer scripts or install
anything. Metadata/capture association controls remain controls, not runtime
tests. The earlier failed-attempt receipts and completed v1-v5 gates remain
intact. OpenCode challenged the actual local evidence; its advisory review is
not hardware qualification or authority to merge.
Authorized installation evidence — October 3, 2026 UTC
The complete bundle was transferred and checksum/provenance verified. Surface
Lexr's version/commit matched the producer; its Linux binary was verified
separately from the build host's binary. Root GNU-screen preflight confirmed
an absent/eligible target, clean package state, passed storage thresholds and a valid
v23 default/fallback needing no repair. The exact five-package simulation
removed nothing.
--forceallowed only the running-v5 versus verified-v23fallback mismatch, not overwrite or unverified-package acceptance.
The authorized Lexr transaction completed at 01:53:15 UTC; post-install checks
and the independent receipt audit passed. Only the four new v6 kernel/header
packages and the boot-support version update from v5 to v6 changed in the full
package database. All five packages are configured; dpkg audit is clean.
The installed image/config and both packaged DTBs match the local artifact
pins. Both exact-ABI OLED boot copies match the packaged OLED digest, and all
three v6 GRUB entries bind that matching external DTB. The generated initramfs
and System.map are nonempty and recorded; initramfs equality to a build-time
artifact is not asserted.
All 39 pre-existing top-level boot payloads and 20,453 other captured
config/audio/userspace/current/fallback-tree file hashes were verified, with
unchanged preserved path/link inventories. The explicitly configured/effective
v23 default and GRUB environment settings/text are unchanged. The full GRUB
diff was verified by a manual read and deterministic revert-transform: only
two v6 submenu entries were added and the three generic
latest-kernel image/initrd/DTB paths advanced from v5 to v6; every other GRUB
byte is preserved. The generic Ubuntu entry therefore now points at v6, while
the explicit default remains v23. No one-shot selection was scheduled.
Those installation receipts establish installation/boot-file readiness only;
the later runtime observations are recorded separately below. No userspace or
topology swap, power transition, automatic reboot or beta merge was performed
by the installer. Private qualification helpers are not shipped in this carrier.
Bounded v6 runtime observations — October 3, 2026 UTC
The human reports no audio, microphone, touch or pen regression and a visible
charging indication. Test duration and warm/cold restart counts were not
specified; this is not a complete lifecycle or sustained-charging pass.
The human subsequently confirmed that the power indicator updates as expected
after briefly unplugging and reconnecting the charger. No disconnected/
reconnected raw-provider phase captures or active-charging time series were
collected; UI transitions alone do not qualify charging/discharging behavior.
Actual read-only root GNU-screen captures confirm the v6 ABI on a new boot,
with the same boot identity across both captures. The installed image,
generated initramfs, packaged OLED DTB and both exact-ABI boot DTB copies still
match the installation pins. All 21 capture-stage commands completed with exit
zero; individual property errors remain recorded and assessed, not hidden by
the collector's exit status. Property reads may issue firmware GET requests.
The primary supply binds to the
qcom_battmgr.pmic_glink_power_supplyauxiliarydriver and
qcom_battmgrmodule. The two intended primary SAM battery/mainsnodes are absent. Energy, voltage, temperature and status reads succeeded.
Four charge-family reads return ENODATA; successful energy-family readings and
the unchanged driver's source are consistent with mWh-unit operation. This
does not waive transport errors, malformed replies or inconsistent future
readings. X1E's unadvertised capacity/current fields are not required here.
The snapshot has USB online, AC/wireless offline, remaining energy equal to
reported full energy and battery status
Not charging. That establishesdetected USB power and readable telemetry, not an active charging cycle or a
physical charger transition. A registered wireless supply does not establish
physical wireless-charging capability.
The installed power-profile daemon is active and offers only placeholder
balanced/power-saver profiles; performance is not listed. The platform-profile
class and SP11 profile/fan nodes are absent, while SCMI CPU-frequency policies
and
schedutilremain present. This matches the carrier's scope: it omits thethree held profile/fan/CPU-policy ports in #60, including the class interface
for disabled-ACPI operation. The runtime reports ACPI disabled, and this
carrier's unchanged platform-profile class initialization rejects that state.
No daemon restart, userspace replacement or profile switch was performed.
The bounded kernel journal contains no matched crash/hung-task or battmgr-error
patterns, and the task snapshot contains no D-state task. Six PMIC GLINK
supplier-device-link creation failures remain recorded as unresolved
USB/ordering observations, not silently treated as harmless. Neither these
snapshots nor the human smoke report qualify resume, teardown, other-machine
behavior or the final combined candidate.
Remaining acceptance gates
contributor requirements and accepted deviations before final integration.
Provider checks must identify the actual driver/auxiliary binding and the two
removed primary SAM nodes, not demand global power-supply counts or global
module absence. Charge/energy-unit-conditional ENODATA must be assessed against
the driver's source and successful peer-family telemetry; transport failures,
unknown/inconsistent units and timeouts are not automatically waived. USB-C
power may report through the USB supply rather than AC; a registered wireless
supply is not a claim of physical wireless charging support.
Publishing this evidence authorizes no additional Surface operation, reboot,
suspend, provider stimulus or merge. Keep beta and all reviewed hardware heads
held until the full qualification and final exact-composition gates pass.