Skip to content

[HELD 7.2.5] media: qcom: port guarded SP11 camera parity - #56

Closed
ooaklee wants to merge 7 commits into
x/sync-jg-7.2.5-20260928from
x/sp11-camera-7.2.5-20260928
Closed

ooaklee wants to merge 7 commits into
x/sync-jg-7.2.5-20260928from
x/sp11-camera-7.2.5-20260928

Conversation

@ooaklee

@ooaklee ooaklee commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

Current October 4 checkpoint

The exact combined v8 trial is documented in the
qualification report and combined PR #68.
Its ordinary-use report is joined by a bounded three-cycle camera/reopen/
indicator check in Power Saver with simultaneous quiet playback. This is
combined-candidate evidence, not a standalone installation or hardware
qualification of this topic head. Source, dependency base and draft state stay
unchanged. Earlier preparation text below is historical; old 7.2.2 review/test
vehicles are now closed as superseded, with history/evidence retained.

Earlier source/review checkpoint

Held 7.2.5 topic — do not merge

Review the seven camera parity ports at 7e4c2c58713ed112592e547facf1acb3ef555602
against the refresh branch in #51 (bdae86ee3b4e). This is a separate camera
topic, not an audio or all-feature integration carrier.

Historical review: #40. Its older 7.2.2 head remains unchanged and held;
publication here does not approve, close or discard that review.

Scope and provenance

Restore the IMX681 receiver crop, CSID680 keep-all state, VFE680 MIPI RAW mode,
stream-start unwind and stop diagnostics with the existing receiver-specific
containment. The diff is restricted to five CAMSS source files. Existing sensor,
DT and attribution work in the refresh is inherited, not newly enabled here.

The original seven ports retain author/date/message and cherry-pick source
trailers. Source attribution remains in those commits; no contributor sign-off
has been invented. This preserves the previously reviewed ports, not a proof
that their guarded adaptations match the hardware-qualified integration.

Evidence and open gates

  • Exact immediate-base ancestry and seven-commit review range checked.
  • Local integration/per-commit source validator for that exact range.
  • Historical full ARM64 W=1 Image/modules/DTBs build of this unchanged head.
  • RAW format/layout, controls, sustained capture, LED and userspace testing.
  • Teardown, error recovery, resume and shared-CAMSS/non-Denali qualification.
  • All intentional deviations and contributor requirements accepted.
  • Final beta-relative composition and integration CI before merge.

The current workflow automatically runs only for beta-targeted PRs; this stacked
draft does not receive that automatic CI. Local source/build results are not
physical camera qualification. Keep v23 as the qualified recovery reference.

The eventual integration target is sp11/ubuntu-qcom-x1e-7.2.y-beta. This base
exposes the prerequisite for review only: do not merge into the staging branch.
Qualify #51 and this topic, then prepare and revalidate the exact beta-relative
composition. Do not merge all topics merely because they compile.

Combined v8 source and ordinary use evidence

An October 3 source-closure audit maps all 7 commits in this focused
series to combined qualification PR #68, head
8ba2b75713feb5c72bbc11dd8cce4048e23cdeea, ABI 7.2.5-jg-0sp11v8-qcom-x1e.
Author identity/date, subject, message text and stable patch identity match;
actual replay trailers are checked in either recorded direction and through
intermediate qualification replays.

Every composed final file entry matches its owning topic's blob, mode and type.
Across all six held groups, the complete refresh-to-v8 tree delta is the 36
owned file entries and the qualification changelog. Six additional commits
touch only that changelog; no unattributed source change was found. This is traceability to the trial, not a fresh standalone
build or installation of this PR, or proof of every integration-to-port behavior.

Camera preview, reopen cycles and indicator behavior are human-reported working. The running v8 ABI was independently read back. Authorized root
readback verifies the installed v8 image/configuration/boot DTBs, current
initramfs against the installation receipt, and owned v8/v23 boot entries;
v23 remains the default/fallback. No userspace or boot configuration was changed
for that readback.

The October 4 coordinated three-cycle preview/reopen/indicator check in Power Saver with concurrent quiet playback passed on combined v8; it is no longer unspecified. RAW/layout/crop controls, failed-start/privacy/error/lifetime and shared-CAMSS/non-Denali qualification remain separate and open.

This advances bounded combined ordinary-use evidence only. Existing deeper
checks, documented-deviation/contributor/complete-CI-policy acceptance and exact
final-composition gates remain open. Do not test the known deep-resume failure
without a separate supervised plan. Source heads, dependency bases and draft
status remain unchanged; do not merge into staging or infer beta integration.
OpenCode Zai-Codex reviews are advisory, not human contributor or maintainer tags.

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.

The CSID680 RDI path enables horizontal and vertical crop/drop without
programming the corresponding configuration. Leave these optional
operations disabled while retaining the timestamp, packing and interrupt
setup. Do not add drop-pattern writes or sensor-specific crop geometry.

Adapt the enable-bit correction from Jeroen Karsies' SP11 camera bring-up
snapshot b08f76f40b8d7b715bd4da6aef484f86142cc147. This guarded
adaptation is based on Jeroen's original CAMSS implementation in commit
ae8ce1d84841a526644991ceb9b0e98c0bab36d3. Limit the change to receiver
setup.

This remains experimental groundwork: stream counters, capture layout
and repeated starts still need validation on the target hardware.

Link: karsies-wq/sp11-imx681-linux@ae8ce1d
Link: https://github.com/karsies-wq/sp11-imx681-linux/blob/b08f76f40b8d7b715bd4da6aef484f86142cc147/camss/camss-csid-680.c
Link: b910f68
Signed-off-by: Leon Silcott <leon@boasi.io>
(cherry picked from commit 72184c5)
Select the MIPI_RAW write-client mode used in Jeroen Karsies' SP11 camera
bring-up snapshot b08f76f40b8d7b715bd4da6aef484f86142cc147. Name the mode
bit and set it together with the existing write-client enable bit.

Keep stride, image configuration, packing, frame increment, interrupts
and stream lifecycle unchanged. This does not establish alignment padding
for unaligned packed RAW widths and does not enable any sensor.

This guarded adaptation is based on Jeroen's original CAMSS implementation
in the first linked commit. It remains experimental
until VFE680 stream status and capture layout are validated on the target
hardware.

Link: karsies-wq/sp11-imx681-linux@ae8ce1d
Link: https://github.com/karsies-wq/sp11-imx681-linux/blob/b08f76f40b8d7b715bd4da6aef484f86142cc147/camss/camss-vfe-680.c
Link: 651e711
Signed-off-by: Leon Silcott <leon@boasi.io>
(cherry picked from commit bdda2ab)
Restore the CSID-specific part of the qualified camera path: detect the
one-trio C-PHY RAW10 3844x2640 sink format, decode it for the receiver
crop,
program a 3840-pixel horizontal crop, and expose 3840 pixels on the CSID
source pad.

Keep the final source branch's exact 3840-or-3844 IMX681 signature helper
so the standalone 3840x2640 driver can use the same guarded diagnostics.
C-PHY routing itself is already carried by the preceding beta camera
topic, so it is intentionally not duplicated here.

This extracts the remaining receiver-crop and standalone-signature
behavior from the two linked hardware-qualified source commits while
preserving their author.

Link: 73960c7
Link: 6621d73
Signed-off-by: Leon Silcott <leon@boasi.io>
(cherry picked from commit ed5610b)
Program period 1 and pattern 0 for the frame, pixel, and line drop
engines.
This preserves every RDI sample explicitly instead of relying on reset
values, while the independently configured IMX681 horizontal crop remains
enabled only for its exact C-PHY RAW10 geometry.

Extract the CSID portion of the hardware-qualified source commit and
preserve its author. Sensor, PHY, device-tree, and packaging changes from
that original multi-area commit are already represented by the preceding
beta camera topic.

Link: 1592ec3
Signed-off-by: Leon Silcott <leon@boasi.io>
(cherry picked from commit 3760fbf)
Track the last subdevice that accepted stream start. If a later subdevice
fails, stop only the subdevices that were successfully started before
tearing down the media pipeline. Reuse the same helper for normal stream
stop and keep teardown going after nonfatal stop errors.

This preserves the CAMSS portion of the hardware-qualified source commit.
Its sensor, CCS, and packaging changes are not copied because the beta
already uses the validated standalone IMX681 driver and focused packaging.

Link: 0097c12
Signed-off-by: Leon Silcott <leon@boasi.io>
(cherry picked from commit b8bcbfa)
Sample read-only CSID680 receiver, packet, error, IRQ, crop, and linked-
RDI state while its clocks are still running. Sample matching VFE680
write-master and IRQ state before disabling the writer.

Keep the source branch's narrow activation signature: X1E80100,
one-trio C-PHY RAW10, 3840x2640 or its 3844-pixel pre-crop form, and the
exact packed VFE output geometry. Other SoCs, D-PHY routes, formats, and
VFE Lite remain unchanged.

This extracts the active CAMSS diagnostics from the hardware-qualified
source commit and preserves its author. The old CCS sensor diagnostics are
not copied: the qualified final tree replaced that unbound path with the
standalone IMX681 driver.

Link: 4d190bc
Signed-off-by: Leon Silcott <leon@boasi.io>
(cherry picked from commit 11ae21d)
The qualified integration source applied its CSID680 keep-all state and
VFE680 MIPI RAW write mode to every user of those shared blocks. Preserve
the observed behavior for the X1E80100 C-PHY RAW10 IMX681 route while
restoring the existing programming for all other formats and SoCs.

Use the already exact transport and geometry signature for containment.
For that route, keep crop/drop disabled unless the 3844-to-3840 horizontal
crop is selected, explicitly program all drop engines to keep every
sample, and select the MIPI RAW VFE write-client mode. Other routes retain
their prior RDI flags, reset-value drop state, and VFE mode.

This is an intentional guardrail relative to the qualified source, not a
claim of cross-device equivalence. The SP11 path and a non-SP11 VFE680 RDI
path both require hardware qualification before integration.

Signed-off-by: Leon Silcott <leon@boasi.io>
(cherry picked from commit f1ee66a)
@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-56-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: 7e4c2c58713ed112592e547facf1acb3ef555602.
Dated consolidation record: ooaklee/linux-surface-pro-11-oe#33 (comment)

@ooaklee ooaklee closed this Oct 20, 2026
@ooaklee
ooaklee deleted the x/sp11-camera-7.2.5-20260928 branch October 20, 2026 19:58
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.

1 participant