Repository navigation
media: v4l2-subdev: opt into retaining failed stop state - #80
Merged
ooaklee merged 3 commits intoNov 12, 2026
Merged
Conversation
Drivers using the legacy stream helper can explicitly retain stream resources after disable_streams fails. Preserve the legacy enabled state and return the error only for those drivers, allowing a later explicit stop retry. Unopted helper users and custom legacy callbacks retain their existing behavior. Document the full resource retention and retry contract. No production driver opts in in this preparatory change.
ooaklee
marked this pull request as ready for review
November 12, 2026 03:17
ooaklee
added a commit
that referenced
this pull request
Nov 12, 2026
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
added a commit
that referenced
this pull request
Nov 12, 2026
media: port OV13858 and VD55G0 research with explicit stop retries (#73) 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The legacy V4L2 stream wrapper masks every stop error and clears its enabled state. A helper-based driver that retains its stream resources after
disable_streams()fails then cannot receive a later legacy stop retry.Add an explicit
V4L2_SUBDEV_FL_STOP_RETRYcontract for drivers using the standard stream helper. For an opted-in driver, return the failed-stop error and retain enabled state. The driver must retain all streaming resources on failure and support a later retry. Unopted helper users and custom legacy callbacks keep their current behavior. This preparatory change opts in no production driver; the retaining VD55 implementation in #73 will opt in separately.Independent review rejected an earlier helper-identity-only approach: IMX219/IMX335 can release PM resources before returning a stop error, so allowing a retry for all helper users could release twice. The explicit opt-in and compatibility regression cover that distinction.
Validation:
drivers/media/v4l2-core/v4l2-subdev.oKbuild withW=1, GCC 15.2 / GNU ld 2.46: passed without warnings.e912a865eb9a. The final CI-only follow-up rejects any unexpected diagnostics, including sanitizer output; source blobs match the AArch64-built revision.This makes a stop failure observable and a subsequent explicit retry possible. CAMSS currently logs the error and continues; this change does not add automatic retry or establish physical quiescence. The broader camera draft still needs start/remove ownership, schema/full-composition and hardware qualification.