Skip to content

media: port OV13858 and VD55G0 research with explicit stop retries (draft) - #73

Merged
ooaklee merged 1 commit into
sp11/ubuntu-qcom-x1e-7.3.yfrom
x/sp11-v25-native-camera-20261016
Nov 12, 2026
Merged

ooaklee merged 1 commit into
sp11/ubuntu-qcom-x1e-7.3.yfrom
x/sp11-v25-native-camera-20261016

Conversation

@ooaklee

@ooaklee ooaklee commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Port the native OV13858 / VD55G0 camera research series onto the current sp11/ubuntu-qcom-x1e-7.3.y default. Remain draft: failed-start/remove ownership and broader qualification gates remain.

The 26 existing camera author commits are preserved on the new base, with one focused follow-up: opt the modified VD55 driver into the retained-stop API merged by #80. Its failed stop retains the stream PM reference and grabbed controls; the legacy wrapper now returns that error and retains enabled state for a later explicit retry. Other helper users keep their existing behavior. This resolves the prior wrapper/resource-retention mismatch.

Scope remains five camera-only files: OV13858 implementation/binding, VD55 family implementation/binding, and MAINTAINERS. No board graph, illumination, configuration or activation change is included.

Validation: the standalone core change passed independent review, GitHub CI, 192 assertions/five negative controls and AArch64 compilation before merging. The private source-derived VD55/core integration fixture covers 1,612 assertions in 101 scenarios and four expected-failing controls; both complete AArch64 sensor objects (ov13858.o, vd55g1.o) build at final head d0ad6e1fd427 with W=1, GCC 15.2 / GNU ld 2.46, without warnings. The final composed VD55/core fixture also passes; these checks do not establish physical capture or power-state behavior.

Remaining blockers:

  • A late start error can release PM without independently establishing transmitter quiescence.
  • Remove does not locally release a retained failed-stop PM reference; power-off ignores regulator-disable errors. Define a coherent teardown/fault ownership contract, including optional reset and provider failures.
  • CAMSS currently logs stop failure and continues. The explicit retry API does not add automatic retry or terminal recovery orchestration.
  • Current schema/full kernel-package composition, sensor identity/capture, suspend/recovery and optical/illumination qualification remain separate gates.

The source findings are not claims of an observed runtime leak or physical power failure. The original pre-update head 2e03812da559 is preserved at archive/pr73-pre-stop-retry-20261112.

ooaklee added a commit that referenced this pull request Nov 10, 2026
Preserve the original tools and historical validation commits, with scoped documentation and Linux Node 22 parser CI. Camera kernel foundations remain in PR #73.
@ooaklee ooaklee changed the title [TRACKING] Native OV13858 and VD55 camera foundations [DRAFT] Port native OV13858 and VD55 camera foundations to 7.3 Nov 10, 2026
@ooaklee
ooaklee changed the base branch from x/sp11-sam-qualification-20261015 to sp11/ubuntu-qcom-x1e-7.3.y November 10, 2026 14:47
@ooaklee
ooaklee force-pushed the x/sp11-v25-native-camera-20261016 branch from 3cfa1bf to 2e03812 Compare November 10, 2026 14:47
@ooaklee
ooaklee force-pushed the x/sp11-v25-native-camera-20261016 branch from 2e03812 to d0ad6e1 Compare November 12, 2026 03:25
@ooaklee ooaklee changed the title [DRAFT] Port native OV13858 and VD55 camera foundations to 7.3 media: port OV13858 and VD55G0 research with explicit stop retries (draft) Nov 12, 2026
@ooaklee
ooaklee force-pushed the x/sp11-v25-native-camera-20261016 branch from 2dc0f03 to c3999d5 Compare November 12, 2026 19:18
Port the SP11 camera research from the v25 native camera branch onto
the current 7.3 lifetime.

Add the OmniVision OV13858 device-tree binding and native OF power
management. Extend the ST VD55G1 driver for the VD55G0 global-shutter
sensor: indirect hardware register addressing, model/revision feature
abstraction, unified frame timing, corrected register access widths,
bounded optional LED configuration with illumination gated pending
qualification, GPIO inputs established after firmware boot, native
exposure and HDR limit retention, stream ownership preserved until
stop succeeds, legacy retries after retained stop errors, and safe
line lengths with sensor-style asynchronous registration. Narrow the
st,vd55g1 binding to avoid a family-wide fixed-address claim and
track both bindings in MAINTAINERS.

Validated with strict checkpatch, hermetic AArch64 W=1 builds, and
behavioral fixtures for the stop/retry ownership (see
sp11-driver-parity-artifacts/20261015/private/camera-v3*). The
v4l2-subdev retained-stop opt-in this series depends on merged
earlier as PR #80.

Assisted-by: Codex:gpt-5.6
Assisted-by: OpenCode:omni-route/zai/glm-5.3

Signed-off-by: Leon Silcott <lnsilcott@gmail.com>
@ooaklee
ooaklee force-pushed the x/sp11-v25-native-camera-20261016 branch from c3999d5 to 7d134a4 Compare November 12, 2026 20:06
@ooaklee
ooaklee marked this pull request as ready for review November 12, 2026 20:07
@ooaklee
ooaklee merged commit c6836ff into sp11/ubuntu-qcom-x1e-7.3.y Nov 12, 2026
ooaklee added a commit that referenced this pull request Nov 12, 2026
…config (#76)

Port the Qualcomm USB4 host-router research frontend from PR #76
(head b888847) onto the current sp11/ubuntu-qcom-x1e-7.3.y head,
which already carries the PHY prerequisite from #24 (squash-merged as
30d6b18) with its tunnel-clock ownership fix.

Carried from the PR head, byte-identical:

- drivers/thunderbolt/Kconfig: default-off CONFIG_USB4_QCOM_EXPERIMENTAL
  research scaffold option (depends on ARCH_QCOM && OF).
- drivers/thunderbolt/Makefile: conditional qcom_usb4_hr.o linkage into
  the thunderbolt composite.
- drivers/thunderbolt/pci.c: registration in domain -> PCI -> Qualcomm
  order with reverse error unwind and unload; disabled builds use no-op
  private stubs.
- drivers/thunderbolt/qcom_usb4_hr.c/.h: the research backend with the
  whole-container firmware validator derived from the REA evidence
  against QcUsb4Filter8380.sys (FUN_140005530 consuming the 40816-byte
  embedded container at 0x14004d1c0), full pre-map MMIO bounds
  validation of all named regions, and serialised stop/restart
  ownership.

One deliberate change on top of the PR blobs: the UCS0 mailbox mapping
now first tries a named optional "ucsb" platform resource and only then
falls back to the fixed ACPI-declared window (QCOM0CA4, USBC
0x81F20040/0x40). The mapping error path unwinds through the prepare
devres group instead of being ignored. This addresses the review gate
on the previously unconditional hardcoded devm_ioremap.

Not carried: the PR's PHY blobs (superseded by #24's merged tunnel-clock
fix; its com_init/com_exit would revert that fix), camera blobs (already
merged through #73) and its changelog entry (replaced below).

debian.qcom-x1e/changelog: new 7.3.0-jg-1sp11v5 entry.

This remains a source-review scaffold: no DT activation, firmware upload
still gated behind fw_load_allow=0, and no hardware qualification
claimed. MMIO/firmware/activation semantics are unchanged from the
reviewed PR apart from the UCSB mapping fix above.
ooaklee added a commit that referenced this pull request Nov 14, 2026
…earch

Port the DP cluster rework from the 7.2 overlay (507356d) to the
current 7.3 tree: explicit AUX transfer ownership with fault draining,
state-lock-serialized ctrl transitions, audio restart/stop entrypoints,
and the rewritten dp_display host lifecycle.

Adaptations for the 7.3 base:
- config_ctrl keeps the RMW clear of stream-specific fields from the
  #73 stream split (commit 7de83c2), layered under the overlay
  rework.
- bridge ops switch from .atomic_reset to .atomic_create_state
  (base commit 65dc3b4 removed atomic_reset support).
- container_of and long-line wraps to keep checkpatch line-length
  clean.

Build-verified on the Surface Pro 11 (native arm64 gcc 15.2, shipped
7.3.0-jg-1sp11v4 source + Ubuntu config): all eight dp/*.o plus the
full msm/ directory compile with zero warnings or errors.

Signed-off-by: Leon Silcott <lnsilcott@gmail.com>
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