Skip to content

Qualify camera ports on native-profile/battery/audio 7.2.5 v8 - #68

Closed
ooaklee wants to merge 2150 commits into
sp11/ubuntu-qcom-x1e-7.2.y-betafrom
x/qualification-7.2.5-combined-v8
Closed

ooaklee wants to merge 2150 commits into
sp11/ubuntu-qcom-x1e-7.2.y-betafrom
x/qualification-7.2.5-combined-v8

Conversation

@ooaklee

@ooaklee ooaklee commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Combined v8 dependency trial

This draft combines the seven guarded camera ports tested separately in #63
with the audio, input, battery and native-profile stack in #67. It is a combined
dependency trial, not an accepted final beta candidate or a request to merge
all topics. Keep beta held and retain the focused topic PRs.

Candidate ABI: 7.2.5-jg-0sp11v8-qcom-x1e. Source head:
8ba2b75713feb5c72bbc11dd8cce4048e23cdeea; tree:
7a2c8655035c1f78774d114f294c3db67b2c9c62. The meaningful new review range is
the eight commits after v7, cb0c9895020f7b18ae54196cc4ec7924e5141ff6.
The beta-relative diff also includes the already-held upstream refresh and
earlier dependency groups; publication does not accept that whole composition.

Changes and contribution preservation

The seven camera ports restore receiver crop, CSID680 keep-all state, VFE680
MIPI RAW mode, partial-start unwind, stop diagnostics and receiver-specific
containment. Their original author identities, author dates, messages,
existing attribution, sign-offs and stable patch identities are preserved,
with cherry-pick -x replay provenance. The version-only changelog commit is
separate and uses the single Leon leon@boasi.io sign-off.

Only these six paths differ from v7:

  • drivers/media/platform/qcom/camss/camss-csid-680.c
  • drivers/media/platform/qcom/camss/camss-csid.c
  • drivers/media/platform/qcom/camss/camss-csid.h
  • drivers/media/platform/qcom/camss/camss-vfe-680.c
  • drivers/media/platform/qcom/camss/camss-video.c
  • debian.qcom-x1e/changelog

All five final CAMSS blobs match the v5 carrier exactly. Every other tree entry
matches v7 except the changelog; its complete v7 tail is retained. No new
qualification telemetry, compatibility parameter, userspace replacement,
topology swap or CI-policy change is added by this increment. Existing camera
diagnostics in the preserved ports are not a newly shipped test harness.

Evidence boundary

The complete-input immediate eight-commit source validator exits zero, with
four WARNING and four CHECK diagnostics retained. This is not a zero-findings
style claim.
The earlier beta-relative full-stack run used #64's independent complete-input
validator, which lacks this carrier's existing source/patch-pinned exception;
that failed result on the writable-defaults CONST_STRUCT warning is retained.
The policy-specific comparison below distinguishes it from this candidate's
own validator. Aggregate refresh diagnostics are retained, not called a clean
style pass. CI-only #64
and the bounded finding-disposition proposal #66 remain separate; neither is
rolled into this carrier or implicitly accepted by its publication.

The exact-source build uses Lexr 0.5.0-rc.5 at b74247d08f7c, a pinned Ubuntu
image and the unchanged recipe. Independent capture from that actual producer
confirms the source, configuration and 416-package toolchain inventory. Source
policy remains do_dtbs=true, do_stubble=false, do_skip_checks=false and
do_zfs=true: external-required DTB delivery, not an embedded Stubble image.
The finished local checks below inspect the actual completed bundle;
compilation and input capture alone are not that proof.

The human's bounded v5 camera preview/reopen/indicator results and v7 profile,
audio, microphone, touch/pen, charger, Wi-Fi and USB results apply to those
separate heads, not automatically to v8. The probable AFFiNE mixed-pointer
panning fault remains an application-side lead with explicit unresolved
runtime/input-lifetime limits, not a reason for a speculative kernel workaround.

Finished local build and package checks on October 3

The same exact-source producer completed with exit zero at 13:17:20 UTC;
the observer and supervisor also recorded zero. The screen server disappeared
after an interrupted observation, but the original supervisor, launcher, Lexr
and Docker client continued with their original log bindings. Their actual
terminal receipts are intact. No replacement producer was started.

The five packages are image, modules, architecture headers, common headers
and generic boot support. The extraction inspector exited zero without an
OOM or container error, using six read-only mounts and no network. It checked
maintainer scripts without executing them or installing packages.

The fresh cache-independent local audit passes:

  • Exact source/manifest/provenance, independently captured input fingerprints
    and every native and copied package byte.
  • Internal ARM64 image/header ABI, packaged configuration and complete module
    vermagic/order/symbol closure, including CAMSS and native profile/power modules.
  • All 7,816 module paths and 32,012 export rows byte-identical to v7. This is
    inventory/export equality, not binary or runtime equivalence of changed drivers.
  • Both required same-build Denali OLED/LCD DTBs, external boot-support metadata,
    hook syntax and exact-ABI image post-install/trigger contract.
  • Native, fully copied and runtime-only Lexr inspection.
  • All 73 warnings match v7 after only the exact candidate-version and six
    defined temporary Equivs email normalizations; no warning waiver was added.

No unresolved export/module/warning delta remains in these comparisons. These
are local artifact checks; they do not qualify runtime behavior.

Authorized Surface installation on October 3

The human separately authorized copying and installing v8 while preserving
v23 as the default and fallback, without reboot, suspend, userspace replacement
or hardware stimulus. The complete bundle transferred successfully. Root GNU
screen preflight and installation both exited zero; Lexr's actual installation
ran from 13:36:58 to 13:39:05 UTC.

The copied-receipt audit checks exactly five package changes: the four v8
kernel/header packages and the generic boot-support upgrade. It verifies the
installed image/configuration, generated initramfs, three owned v8 GRUB
entries and the same-build OLED DTB's digest and boot binding. V23 remains the
exact configured and effective default and verified fallback. Existing boot
payloads, running/fallback module and firmware trees, audio userspace and GRUB
default configuration are unchanged; package audit is clean. No package was
removed, and no unverified bundle or existing-ABI overwrite was accepted.

The forced fallback mismatch only acknowledges that v7 is running while v23
is the verified fallback. The boot ID and running v7 ABI are unchanged. This
closed installation checks at that time, not a v8 boot or combined hardware trial.

Hosted coverage and complete-input policy comparison

Hosted run 37127588370 completed successfully on synthetic
merge 6b02eebee6e6a6999830b6b21fb106c96e2ba34b, with the exact held beta and v8 parents and
the same tree as v8. It enumerated 70 topic commits, but its sparse checkout
omitted both checker support tables. Spelling and const-struct checking were
each disabled in 62 invocations. This is limited inherited-workflow coverage,
not complete-input source validation or a final qualification gate.

A separate local comparison uses the unchanged exact v8 history, real tracked
checker and both tables, and isolated fixture refs/worktrees/indexes. Each policy receives the same 70-commit review range: 61 kernel-source patches,
eight non-kernel deltas and the one exact approved upstream refresh. The
inputs-only validator stops at the finding; its failure is not coverage of all
later per-commit patches.

These are separate local policy results, not a hosted rollout of #64/#66 into
v8. No source, branch ref, kernel package, userspace or Surface state changed.
The initial comparison harness had an incorrect expected exit for the candidate;
its assertion failure is retained, and the corrected three-policy comparison
is a separate execution. Proposed-policy review/acceptance remains open; no
kernel behavior or broader warning policy is changed by this evidence update.

Combined hardware trial and remaining gates

The human reports the following ordinary-use checks passed on the combined v8
candidate:

  • Camera preview, reopen cycles and indicator behavior.
  • Power profiles and battery/charger indication.
  • Speakers, volume buttons, notifications and microphones.
  • Touch/pen, Wi-Fi and USB.

A read-only GNU-screen capture on October 3 independently confirms the running
v8 ABI on Denali OLED, configured v8 packages, v23 still selected as the
configured/effective default, and matching readable configuration/boot-DTB
digests. Lexr remains 0.5.0-rc.5. Native power-profile choices are present,
with performance selected and no reported degradation in that snapshot.

The initial unprivileged image hash read was denied, and Boot Doctor retained
inaccessible-image/initramfs warnings. A separate authorized root GNU-screen
readback then reverified the installed image/configuration and both boot-side
OLED DTBs against the bundle, matched the current initramfs to the actual
installation receipt, and verified all five owned v8/v23 boot entries and the
v23 default. Package audit is empty. This resolves the inaccessible-payload
limitation, not all boot/runtime reliability. The narrow journal query does
not establish a fault-free kernel.

This is one device's human-reported ordinary-use trial, not measured battery
endurance, all power/lifecycle cases or every supported device. The October 3
report did not specify duration, cold-boot repeatability or camera/audio
coexistence. The coordinated October 4 observation below now closes the bounded
Power Saver camera/reopen/quiet-playback check, not cold-boot or every lifecycle.
No unattended reboot, suspend, stress or camera capture was performed by the
readback; no boot configuration or userspace was changed.

  • Exact eight-commit scope, preserved camera-port provenance and unchanged inherited inputs.
  • Complete-input immediate source checks and independent actual producer-input capture.
  • Successful producer completion and finished payload, header, module, DTB and boot-support checks.
  • Native, relocated and runtime-only Lexr inspection plus explicit v7 export/module/warning comparisons.
  • Separately authorized Surface transfer, preflight, installation and boot-binding receipt checks.
  • Human-reported v8 ordinary-use checklist pass; running v8 ABI independently read back.
  • Bounded three-cycle camera preview/reopen/indicator with concurrent quiet playback in Power Saver, observed October 4.
  • Instrumented battery phases, profile/fan/error/hotplug/teardown and supervised power-state coverage.
  • Camera layout/crop controls, protection/errors/lifetime and shared/non-Denali behavior.
  • Contributor clarification, accepted intentional deviations and applicable complete CI policy.
  • Full topic parity and accepted exact final composition before any beta/stable promotion.

OpenCode Zai-Codex / GLM 5.1 reviews are advisory assessments of supplied
evidence, not contributor sign-offs, independent hardware access or acceptance
authority. Diagnostic helpers are not shipped. Beta remains unmerged. V8 now has the bounded ordinary-use report above;
publication does not accept or merge the combined carrier or close the remaining
qualification gates.

October 4: coordinated camera/audio check passed (bounded)

On unchanged combined source 8ba2b75713feb5c72bbc11dd8cce4048e23cdeea, ABI
7.2.5-jg-0sp11v8-qcom-x1e, the tester confirms stable preview and quiet
built-in-speaker sound with expected indicator behavior. Metadata records three
camera active-to-suspended cycles in Power Saver; playback was running in all
47 sensor-active samples. All three stop snapshots have ECC=0, CRC=0 and zero
VFE violation/overflow/image-violation values. The sensor ended suspended and
PCM closed. No frames, audio content or microphone samples were collected.

The exact CSID680 definitions identify the final completion bits; frame-drop
information flags and undecoded RX=0x17 remain explicit limitations. These are
stop snapshots, not per-stream counter deltas or loss-free-frame proof. The
preceding owned audio trace observed successful configure/nested true-enable/
same-graph start returns with no recorded trace loss; only about 33.263 seconds
after startup were traced. This is software-path evidence, not physical PA/
calibration health or proof of a fresh DSP start command.

Actual OpenCode Zai-Codex / GLM 5.1 reviewed the supplied exact-source evidence
and agreed with the bounded pass. No repeat is needed for this check.
Durable qualification report.

No source/userspace/default changes or new shipping diagnostic harness were
made. V23 stays the default/fallback. This does not qualify every camera mode,
recording/playback coexistence, suspend/fault lifecycles or other devices; CI,
contributor provenance, deviation acceptance and final composition remain
separate. Draft/beta/stable state is unchanged.

Ajay Kumar Nandam and others added 30 commits September 16, 2026 22:34
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>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
enable HDMI connector like in TB16
enable DP sound-DAIs
enable fingerprint reader, too
correct usb-sbu gpios (same as TB16)

Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Userspace can probe all HDMI/DP PCM devices exposed by an ALSA card while
building its profile set. For example, UCM-aware servers may try to open
every DP PCM even when only one connector is currently plugged in.

msm_dp_audio_prepare() currently returns -EINVAL when the DP controller is
not powered. This protects against unclocked register access, but it also
makes the inactive DP PCM fail during probing. If one such PCM is part of
a UCM profile, the whole profile can be discarded even though jack and ELD
state already mark the inactive connector as unavailable.

Keep the clock-safety check, but treat an inactive controller as a no-op:
skip the DP audio register programming and return success. Active streams
still program the hardware as before, while unplugged or disabled outputs
remain discoverable and report their availability through the usual jack
and ELD controls.

Fixes: 158b9aa ("drm/msm/dp: wait for audio notification before disabling clocks")
Signed-off-by: Xilin Wu <sophon@radxa.com>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
amend for 7.0 syntax, too

Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
correct the power supplies to what the CRD says, got confirmed by Xilin Wu <sophon@radxa.com>

link: https://lore.kernel.org/all/ec4d11b5-7a82-4e7f-bab6-290d1055f1d8@oldschoolsolutions.biz/

Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Iris depends on patchsets for Pirwa that are not yet in the tree, therefore
disable firmware loading.

Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
The cluster_cl5 idle state triggers DC ZVA misbehaviour that resets
X1 SoCs. Remove it from cluster_pd0/1/2 domain-idle-states for now.

Suggested-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Currently only CTM changes force a modeset. Extend the same logic
to gamma_lut so that adding, removing or changing the gamma LUT
triggers a full modeset and resource reallocation.

This fixes cases where gamma_lut updates were silently ignored
by the DPU.
color_mgmt_changed is now also set when gamma_lut changes (see
previous commit). Reallocating resources in that case is unnecessary
and can cause problems.

Only reallocate when mode_changed or connectors_changed is set.
@ooaklee

ooaklee commented Oct 4, 2026

Copy link
Copy Markdown
Owner Author

October 4: consolidated review queue and next steps

Administrative cleanup is retiring 16 superseded fork review/test PRs and nine older upstream submission versions, without merging or deleting their source branches. All authored history, discussions, positive/negative trial evidence and recovery history remain available. The old v1 head in #52 and camera-v5 head in #63 are not exact v8 ancestors; the source replay/closure checks are distinct from commit-ancestry claims.

The necessary fork queue remains:

Purpose PRs
Current combined candidate #68
Upstream refresh and inherited prerequisites #51
Camera, TX, playback, battery, profiles, GPI #56, #57, #58, #59, #60, #61
Fork-only CI dependency stack #62, #64, #66
Unfinished USB4 work #24

Superseded fork vehicles: #36, #37, #38, #40, #45, #46, #47, #48, #50, #52, #53, #54, #55, #63, #65 and #67. Their closure notes identify the current review context. Older upstream #83–jglathe#91 are being withdrawn as submission versions; upstream #79 remains open for coordination. No refreshed fork topic is described as upstream-ready.

Exact combined source remains 8ba2b75713feb5c72bbc11dd8cce4048e23cdeea, ABI 7.2.5-jg-0sp11v8-qcom-x1e, now available as the experimental v8 release. V23 remains Latest/recovery. Experimental publication and PR cleanup do not waive this PR's remaining checklist.

Next steps, in order:

  1. Finish the specific outstanding acceptance evidence: camera Power Saver plus simultaneous quiet audio, camera layout/crop/error/lifetime checks, battery/profile/fan/error/hotplug/teardown coverage, and documented feature/deviation acceptance. Retain already-passed ordinary-use tests without repeating them needlessly. No unattended suspend: the known deep-resume limitation remains. Any temporary owned trace or new hardware stimulus requires separate approval; no diagnostic telemetry is added to the shipping kernel.
  2. Resolve the targeted retained-port provenance questions and the separate width-cast disposition. Existing author sign-offs remain intact; no contributor attestations are invented. The two additional deferred GPI corrections remain deferred with their risks disclosed, preserving tested v8 source.
  3. Obtain workflow-write access and complete the reviewed fork-only CI rollout, including the prepared fail-closed Git-read correction. [HELD CI] Check 7.2.5 topic PRs on explicit dependency bases #62/ci: require complete checkpatch inputs and fail-closed execution #64/ci: disposition one exact writable-defaults checkpatch finding #66 remain open until that rollout exists; earlier limited hosted checks are not retroactively upgraded. Never submit the fork integration workflow/script or repository-only policy upstream.
  4. Recheck the maintainer's latest tip immediately before accepting one combined candidate (Qualify camera ports on native-profile/battery/audio 7.2.5 v8 #68 or a reviewed successor) into beta. Do not merge every cumulative test carrier or replay audio fixes already present. Then create sp11/ubuntu-qcom-x1e-7.2.y from accepted beta, protect stable and beta before switching the default, and update documentation/build references.
  5. Reconstruct focused upstream submissions with preserved authorship and inherited source prerequisites: Denali DT, touch/QSPI, opt-in pen ABI, sensor/C-PHY/graph/CAMSS, TX before playback, and battery before native profiles. The maintainer's non-SP11 X1E boot check remains required before shared audio reaches their release line.

The X1P/LCD camera/video-decode question from old #40 remains an unqualified device-support follow-up; OLED preview success does not close it. Source, beta/default refs, builds and the Surface are unchanged by this administrative work.

@ooaklee

ooaklee commented Oct 20, 2026

Copy link
Copy Markdown
Owner Author

Closed as an inactive/consolidated review vehicle during the 20 October kernel queue cleanup—not merged, newly hardware-qualified or accepted for upstream by this closure.

Previously recorded v8 acceptance evidence stands unchanged; this closure only retires the review vehicle.

The original source head and contributor history remain retained. Where a closed topic branch is removed, its verified archive/pr-68-20261020 tag preserves the exact head for recovery. Released/recovery/dependency branches remain untouched.

The separate tested-source staging route and all outstanding upstream reconstruction, provenance, fork-CI and deviation/promotion gates are tracked in OE #33. Experimental reverse-engineering PRs remain separate and unmerged. Beta/default branches and installed kernels are unchanged.

Retained exact source: 8ba2b75713feb5c72bbc11dd8cce4048e23cdeea.
Dated consolidation record: ooaklee/linux-surface-pro-11-oe#33 (comment)

The published v8 source branch and its exact 8ba2b75 head are retained. Previously passed v8 checks remain valid within their recorded scope; the stale beta-promotion route is retired, not retroactively rejected.

@ooaklee ooaklee closed this Oct 20, 2026
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.