Repository navigation
Conversation
Add support for ADC_TM part of PMIC5 Gen3. This is an auxiliary driver under the Gen3 ADC driver, which implements the threshold setting and interrupt generating functionalities of QCOM ADC_TM drivers, used to support thermal trip points. Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com> Signed-off-by: Jishnu Prakash <jishnu.prakash@oss.qualcomm.com>
as found in the pcie3 node of the dsdt, using pmc8380_3 gpio 5 Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Add embedded controller node for Glymur CRDs which adds fan control, temperature sensors, access to EC state changes through SCI events and suspend entry/exit notifications to the EC. Signed-off-by: Sibi Sankar <sibi.sankar@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Co-developed-by: Anvesh Jain P <anvesh.p@oss.qualcomm.com> Signed-off-by: Anvesh Jain P <anvesh.p@oss.qualcomm.com>
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. Signed-off-by: Sibi Sankar <sibi.sankar@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Co-developed-by: Anvesh Jain P <anvesh.p@oss.qualcomm.com> Signed-off-by: Anvesh Jain P <anvesh.p@oss.qualcomm.com>
Add embedded controller node for Hamoa IOT EVK boards which adds fan control, temperature sensors, access to EC internal state changes and suspend entry/exit notifications to the EC. Signed-off-by: Sibi Sankar <sibi.sankar@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Gaurav Kohli <gaurav.kohli@oss.qualcomm.com> Tested-by: Gaurav Kohli <gaurav.kohli@oss.qualcomm.com> Co-developed-by: Anvesh Jain P <anvesh.p@oss.qualcomm.com> Signed-off-by: Anvesh Jain P <anvesh.p@oss.qualcomm.com>
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>
Restore the qualified protected graph's own uncached position page and use its DSP address for the fixed pull ring. Read the live counter with DMA barriers and reject zero, torn, and out-of-range indices before updating the ALSA pointer. Identify this lifecycle only when the protected topology contains pull instance 0x4660 and soft-pause instance 0x466b. Preserve the generic ALSA-owned position buffer for every other push/pull graph, and retain uncertain mappings under the existing fail-closed teardown policy. Use the captured SP11 subgraph order for graph-client run-state commands. Treat a lost soft-pause completion as uncertain so the next teardown or prepare performs a confirmed graph stop instead of claiming that playback resumed. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 6bdbee1)
The hardware-qualified FullIO pull transaction proceeds from its protected configuration directly to the ordered graph-client START. Do not insert the generic APM GRAPH_PREPARE command for the exact SP11 topology. Advance the existing fail-closed prepared state locally so start still requires successful protection configuration or confirmed bypass. All other protected and generic graphs retain the existing PREPARE command. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 4dc8837)
The qualified integrated transaction configures the pull endpoint media format before walking the protected PCM converter and MFC chain. Restore that order for the exact SP11 topology. Keep the existing PCM-then-shared-memory order for every ordinary and non-SP11 graph. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit a2f2c71)
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>
|
Closing this superseded review/qualification vehicle without merging. Current review work is tracked in ooaklee/linux_ms_dev_kit-sp11#58, 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 |
Qualification only — do not merge or install unattended
This carries the guarded audio parity repairs for a new, isolated test of the
TX DMIC/Golden dependency group. It is not a full-feature integration PR or a
proven static fix. V2 in #53 failed audio qualification with prolonged unwanted
speaker static; the known-good 7.2.0/v23 kernel remains the recovery reference.
Desktop mute is not established speaker isolation.
Exact source and scope
e57ec2987d4540fa89280d349f79c4d9bcd7cf27(7.2.5), through [QUALIFICATION - DO NOT MERGE] Refresh SP11 beta onto rebased 7.2.5 #51.91917314b7fd14498e527fcdcb511f1c1817a2c5([QUALIFICATION - DO NOT MERGE] SP11 7.2.5-v2 TX/Golden audio group #53), retainedunchanged as failed-v2 evidence.
c1cd582ea42b9767a0f81087dc78016c7963ccee.44c44eb3fb982cdbe1695f70c8765e3a45292adc.7.2.5-jg-0sp11v3.7.2.5-jg-0sp11v3-qcom-x1e.The eight commits after v2 contain six source repairs, one narrowly pinned CI
exception, and a changelog-only version allocation:
validating framing first and retaining hard failures in per-topology state.
retain the existing PM-clock path for other devices.
Original TX/Golden history remains an ancestor. The new adaptations preserve
source links to the qualified integration and geocausa audio work; they do not
manufacture contributor sign-offs or resolve the existing Golden attestation gate.
The held camera repair, battery-provider and platform-profile topics remain
separate, not discarded from the final parity objective.
Software evidence and current build status
current beta pass. The CI exception permits only the sole mutable-defaults
diagnostic for an exact patch ID and resulting source blob; ten positive
and negative cases cover that rule. No blanket warning or hardware waiver.
tests pass, including sanitizer-backed error cases. These mock transport,
regmap or clock boundaries; they do not establish DSP, DAPM, PM or acoustic behavior.
increment also compiled; its wrapper exited 1 because an assertion overlooked
regenerated
kheaders.ko. Independent inspection passes, and a 6,963-headercontent comparison isolates the changed build hostname. The failure receipt
is retained rather than reported as a successful wrapper run.
AudioReach export CRCs were independently reproduced and traced to the added
calibration-state fields. No export was added or removed by these repairs.
A fresh ABI and matched rebuilt modules are mandatory.
to its control; existing whole-tree warnings remain. This is not warning-free.
do_dtbs=trueanddo_stubble=false. No configuration or packaging-policy change accompaniesthe version bump. External per-ABI DTB support is expected.
b74247d08f7ccf90110a291c62c5fb56d895c55f(exactlyv0.5.0-rc.5), normalclean-build policy and the same resolved toolchain inventory as v2.
provenance and bytes, exact configuration, both Denali DTBs, all 7,816 modules,
ABI/vermagic, image format and exact-ABI boot-support lifecycle hooks. Every
packaged module passes the symbol-version check against the matching packaged
headers; the checker rejects diagnostics even when
depmodexits zero.metadata, with exactly the expected 38-symbol changed set. This comparison does
not equate CRC values across the differently configured source-only builds or
claim an independent type trace under the package compiler.
correctly retains image, modules and boot support. The 73 warning lines
match both package controls after exact version and temporary-container email
normalization; existing warnings remain, with none directly naming a changed
source file in this comparison. This is not a warning-free build.
OpenCode reviewed the source/packaging gates, not hardware. Local artifact
acceptance is not evidence that the static regression is fixed.
Deliberate deviations and remaining gates
The calibration replay state is per-topology and serialized rather than a global
once flag; individual hard errors stop and remain latched. Legacy hard-error
diagnostic side effects remain excluded. Bypass bookkeeping, correlated replies,
clock failure cleanup and propagated regcache-sync errors retain stronger guards.
Inherited shared-VBAT teardown and ignored event-register errors remain explicit
risks. Nominal trace parity does not qualify any of those behaviors on hardware.
configuration, DTB, module-set/vermagic, export and lifecycle-hook checks.
v23 as the default/fallback and its boot payloads. No automatic reboot.
path; no unattended playback, volume/notification stimulus or suspend loop.
graph/error recovery and PM/suspend behavior without recurrence of static.
Keep TX-only qualification distinct from this combined diagnostic carrier.
on their respective dependency groups before final integration.
This test carrier must not be merged into beta. Qualified source changes can
later be integrated through their reviewed topics; the temporary packaging
version and a green build must not bypass those gates.