Skip to content

Enable OPE driver support for Agatti and Shikra - #1120

Open
Nihal Kumar Gupta (nihal231998) wants to merge 8 commits into
qualcomm-linux:qcom-6.18.yfrom
nihal231998:shikra_ope_enable
Open

Nihal Kumar Gupta (nihal231998) wants to merge 8 commits into
qualcomm-linux:qcom-6.18.yfrom
nihal231998:shikra_ope_enable

Conversation

@nihal231998

@nihal231998 Nihal Kumar Gupta (nihal231998) commented Sep 15, 2026

Copy link
Copy Markdown

This series enable OPE driver support for Agatti and Shikra

FROMLIST: media: qcom: camss: Add V4L2 meta format for CAMSS ISP parameters
FROMLIST: dt-bindings: media: qcom: Add CAMSS Offline Processing Engine (OPE)
FROMLIST: media: uapi: Add CAMSS OPE ISP configuration definition
FROMLIST: media: qcom: camss: Add CAMSS Offline Processing Engine driver
FROMTLIST: dt-bindings: media: qcom,qcm2290-camss-ope: Document shikra compatible
FROMLIST: arm64: dts: qcom: agatti: Add OPE node
FROMLIST: arm64: dts: qcom: shikra: Add OPE node
FROMLIST: arm64: defconfig: Enable CAMSS OPE driver

CRs-Fixed: 4677262

Loic Poulain and others added 8 commits September 15, 2026 15:41
…meters

Add a V4L2 meta format code (V4L2_META_FMT_QCOM_ISP_PARAMS) for the
Qualcomm CAMSS ISP parameter buffer. This format is used by the params
video node exposed by CAMSS offline ISP drivers (e.g. OPE) to carry
ISP tuning data such as white balance, color correction and chroma
enhancement settings.

Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-1-e70ad4fa39ce@oss.qualcomm.com/]
…ne (OPE)

Add Devicetree binding documentation for the Qualcomm Camera Subsystem
Offline Processing Engine (OPE) found on platforms such as Agatti.
The OPE is a memory-to-memory image processing block which operates
on frames read from and written back to system memory.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-2-e70ad4fa39ce@oss.qualcomm.com/]
… compatible

Shikra uses the same Offline Processing Engine hardware as QCM2290,
add qcom,shikra-camss-ope compatible string with qcom,qcm2290-camss-ope
as the fallback.

Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
Upstream-Status: Submitted [https://lore.kernel.org/all/20260907-camss-isp-ope-v6-3-6b915b9c5131@oss.qualcomm.com/]
Add the uapi header camss-ope-config.h defining the ISP parameter
structures used by the CAMSS Offline Processing Engine (OPE) driver.
This includes structures for white balance, chroma enhancement and
color correction configuration.

Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-3-e70ad4fa39ce@oss.qualcomm.com/]
Add an image processing driver for the Qualcomm Offline Processing Engine
(OPE). OPE is a memory-to-memory ISP block that converts raw Bayer
frames to YUV, performing white balance, demosaic, chroma enhancement,
color correction and downscaling.

The hardware architecture consists of Fetch Engines and Write Engines,
connected through intermediate pipeline modules for pix processing.

The driver exposes three video nodes per pipeline instance:
  - ope_input: Bayer RAW input (V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
  - ope_disp_output: YUV output     (V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE)
  - ope_params: ISP parameters (V4L2_BUF_TYPE_META_OUTPUT)

Hardware features:
  - Stripe-based processing (up to 336 pixels wide per stripe)
  - White balance (CLC_WB)
  - Demosaic / Bayer-to-RGB (CLC_DEMO)
  - RGB-to-YUV conversion (CLC_CHROMA_ENHAN)
  - Color correction matrix (CLC_CC)
  - MN downscaler for chroma and luma planes

Default configuration values are based on public standards such as BT.601.

Processing Model:
OPE processes frames in stripes of up to 336 pixels. Therefore, frames
must be split into stripes for processing. Each stripe is configured after
the previous one has been acquired (double buffered registers). To minimize
inter-stripe latency, stripe configurations are generated ahead of time.

The driver is split into three source files under the ope/ directory:

  - core.c: the OPE m2m driver itself: probe, power management, V4L2/media
    device setup, format handling, stripe generation and hardware
    programming.

  - pipeline.c/.h: a small declarative media-controller topology builder.
    Drivers describe their entire media graph, entities (video devices,
    subdevs, or base entities), their pads, and the links between them, in
    a static descriptor table. The builder validates the table, allocates
    and registers all entities, and creates all MC pad links. It is kept
    generic but currently only used by OPE.

  - params.c/.h: V4L2 ISP parameter buffer validation and dispatch. It
    wraps the extensible V4L2 ISP parameters buffer format, validating
    the buffer size and each per-block header before forwarding every
    block to its driver-supplied handler.

Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Co-developed-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Signed-off-by: Hans de Goede <johannes.goede@oss.qualcomm.com>
Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-4-e70ad4fa39ce@oss.qualcomm.com/]
Add the Offline Processing Engine (OPE) device tree node for the
Agatti platform (QCM2290). The node describes the five register
regions (top, bus_read, bus_write, pipeline, qos), clocks, interrupt,
interconnects, IOMMU mappings, and OPP table.

Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-5-e70ad4fa39ce@oss.qualcomm.com/]

Note: patch targeted arch/arm64/boot/dts/qcom/agatti.dtsi (upstream
renamed qcm2290.dtsi to agatti.dtsi), applied here to qcm2290.dtsi
since this tree has not picked up that rename.
Add the Offline Processing Engine (OPE) device tree node for the
Shikra platform. The node describes the five register regions (top,
bus_read, bus_write, pipeline, qos), clocks, interrupt, interconnects,
IOMMU mappings, and OPP table.

Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
Signed-off-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-5-e70ad4fa39ce@oss.qualcomm.com/]
Add CONFIG_VIDEO_QCOM_CAMSS_OPE=m to enable the Offline Processing Engine
driver for Agatti and Shikra platform.

Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
Upstream-Status: Submitted [https://lore.kernel.org/all/20260915-camss-isp-ope-v7-9-77b13d131d3d@oss.qualcomm.com/]
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@qlijarvis

Copy link
Copy Markdown

PR #1120 — validate-patch

PR: #1120

Verdict Issues Detailed Report
8 Full report

Final Summary

  1. Lore link present: No - Upstream-Status: tags found instead of standard kernel Link: tags; lore URLs are present but in wrong format
  2. Lore link matches PR commits: Cannot verify - non-standard tag format prevents automated validation; manual verification required after fixing commit message format
  3. Upstream patch status: Cannot verify - requires fetching from lore.kernel.org using the URLs in Upstream-Status: tags; likely "In review" based on "Submitted" status and FROMLIST: prefix
  4. PR present in qcom-next/topics: Fail - 1/8 commit(s) are missing from both qcom-next and topics
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1120 - CAMSS OPE (Offline Processing Engine) driver series
Upstream commit: Multiple lore.kernel.org URLs (see details below)
Verdict: ❌ FAIL

Commit Message

Check Status Note
Subject matches upstream ⚠️ Cannot verify - no standard Link: tags present
Body preserves rationale ⚠️ Cannot verify - no standard Link: tags present
Fixes tag present/correct N/A No Fixes tags expected for new feature
Authorship preserved FROMLIST: commits correctly preserve original author in From: field
Backport note (if applicable) N/A Not backports - FROMLIST: patches

Diff

File Status Notes
All files ⚠️ Cannot verify against lore - non-standard commit message format

Issues

Critical: Non-standard commit message format

All 8 commits in this PR use Upstream-Status: Submitted [lore-url] tags instead of the kernel-standard Link: tag format. This violates kernel commit message conventions.

Issue details:

  • Current format: Upstream-Status: Submitted [https://lore.kernel.org/all/...]
  • Required format: Link: https://lore.kernel.org/all/...

The Upstream-Status: tag is a Yocto/OpenEmbedded convention used in embedded Linux build systems, not a standard kernel commit message tag. Kernel commits submitted with FROMLIST: prefix must include a Link: tag pointing to the lore.kernel.org posting.

Affected commits:

  1. Commit 1/8: Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-1-e70ad4fa39ce@oss.qualcomm.com/]
  2. Commit 2/8: Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-2-e70ad4fa39ce@oss.qualcomm.com/]
  3. Commit 3/8: Upstream-Status: Submitted [https://lore.kernel.org/all/20260907-camss-isp-ope-v6-3-6b915b9c5131@oss.qualcomm.com/]
  4. Commit 4/8: Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-3-e70ad4fa39ce@oss.qualcomm.com/]
  5. Commit 5/8: Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-4-e70ad4fa39ce@oss.qualcomm.com/]
  6. Commit 6/8: Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-5-e70ad4fa39ce@oss.qualcomm.com/]
  7. Commit 7/8: Upstream-Status: Submitted [https://lore.kernel.org/all/20260724-camss-isp-ope-v5-5-e70ad4fa39ce@oss.qualcomm.com/]
  8. Commit 8/8: Upstream-Status: Submitted [https://lore.kernel.org/all/20260915-camss-isp-ope-v7-9-77b13d131d3d@oss.qualcomm.com/]

Version mismatch detected:

  • Commits 1, 2, 4, 5, 6, 7 reference v5 of the patch series
  • Commit 3 references v6 of the patch series
  • Commit 8 references v7 of the patch series

This inconsistency suggests the PR may be mixing patches from different upstream revisions, which could lead to integration issues or mismatched functionality.

Integration presence issue:
According to integration_presence_report.md:

  • Commit 6/8 (agatti OPE node): MISSING from both qcom-next and topics
  • Commit 7/8 (shikra OPE node): PARTIAL presence in qcom-next/topics
  • 6 other commits: Present in topics

Verdict

Do not merge - This PR requires the following corrections:

  1. Replace all Upstream-Status: tags with standard Link: tags

    • Change: Upstream-Status: Submitted [URL]
    • To: Link: URL
  2. Resolve version inconsistency

    • Verify all commits are from the same upstream patch series revision
    • Update commit 3 to match v5, or update all commits to v6/v7 as appropriate
    • Ensure the lore URLs point to the correct revision that matches the actual code
  3. Address missing commits in integration

    • Commit 6/8 (agatti OPE node) is completely missing from qcom-next and topics
    • Commit 7/8 (shikra OPE node) has only partial presence
    • These must be present in the integration branch before this PR can be merged

Final Summary

  1. Lore link present: No - Upstream-Status: tags found instead of standard kernel Link: tags; lore URLs are present but in wrong format
  2. Lore link matches PR commits: Cannot verify - non-standard tag format prevents automated validation; manual verification required after fixing commit message format
  3. Upstream patch status: Cannot verify - requires fetching from lore.kernel.org using the URLs in Upstream-Status: tags; likely "In review" based on "Submitted" status and FROMLIST: prefix
  4. PR present in qcom-next/topics: Fail - 1/8 commit(s) are missing from both qcom-next and topics (commit 6/8 completely missing, commit 7/8 partial); per integration_presence_report.md

Deterministic Integration Presence

Integration Presence Report

This report is generated by Jarvis before validate-patch runs.
It is the authoritative source for whether PR changes are already present
in qcom-next or in the kernel topic branches.

Kernel repo: /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
qcom-next ref: d49c33864d06e9672dce57738be8851384578fcf
topics remote: topics -> https://github.com/qualcomm-linux/kernel-topics
topics fetch: fetched

Commit Subject qcom-next topics Final
1/8 [PATCH 1/8] FROMLIST: media: qcom: camss: Add V4L2 meta format for missing - no subject, patch-id, or full tree-content match found present - all checked added lines are present present
2/8 [PATCH 2/8] FROMLIST: dt-bindings: media: qcom: Add CAMSS Offline missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at 501bd5ef9852047e37b831ad93a3663d7176508c present
3/8 [PATCH 3/8] FROMLIST: dt-bindings: media: qcom,qcm2290-camss-ope: missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at c10b7eb199ce773db94d330c374e5c0bdbd22fb0 present
4/8 [PATCH 4/8] FROMLIST: media: uapi: Add CAMSS OPE ISP configuration missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at 9a495bd2f239c7e08cd0d96e591728dffe6f1cd6 present
5/8 [PATCH 5/8] FROMLIST: media: qcom: camss: Add CAMSS Offline missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at ac74a24664a8ecb91707fdd231c20a6300bd214f present
6/8 [PATCH 6/8] FROMLIST: arm64: dts: qcom: agatti: Add OPE node missing - no subject, patch-id, or full tree-content match found missing - no subject, patch-id, or full tree-content match found missing
7/8 [PATCH 7/8] FROMLIST: arm64: dts: qcom: shikra: Add OPE node partial - subject or partial tree evidence found, but full change was not verified missing - no subject, patch-id, or full tree-content match found partial
8/8 [PATCH 8/8] FROMLIST: arm64: defconfig: Enable CAMSS OPE driver missing - no subject, patch-id, or full tree-content match found present - all checked added lines are present present

Final Status

overall_status: FAIL
present_commits: 6/8
partial_commits: 1/8
missing_commits: 1/8
topics_checked_for_commits: 8/8
final_summary: PR present in qcom-next/topics: Fail - 1/8 commit(s) are missing from both qcom-next and topics

@qlijarvis

Copy link
Copy Markdown

PR #1120 — checker-log-analyzer

PR: #1120
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/34958921447

Checker Result Summary
Checker Result Summary
checkpatch 1 error: trailing statement on same line
dt-binding-check Passed
dtb-check Passed
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance 8 commits missing Link: tag
tag-check All commits have valid FROMLIST: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1120 - CAMSS OPE (Offline Processing Engine) driver support
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/34958921447

Checker Result Summary
checkpatch 1 error: trailing statement on same line
dt-binding-check Passed
dtb-check Passed
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance 8 commits missing Link: tag
tag-check All commits have valid FROMLIST: prefix

❌ checkpatch

Root cause: Trailing statement on same line violates kernel coding style (one statement per line rule).

Failure details:

Commit 64211bbec610 ("FROMLIST: media: qcom: camss: Add V4L2 meta format for CAMSS ISP parameters")
ERROR: trailing statements should be on next line
#28: FILE: drivers/media/v4l2-core/v4l2-ioctl.c:1472:
+	case V4L2_META_FMT_QCOM_ISP_PARAMS:	descr = "Qualcomm CAMSS ISP Parameters"; break;

64211bbec61027aeb644c57f1ce0456e39f99ba1 total: 1 errors, 0 warnings, 0 checks, 16 lines checked

Fix: Split the case statement into multiple lines:

git rebase -i aff7542c319e   # mark commit 64211bbec610 as 'edit'
# Edit drivers/media/v4l2-core/v4l2-ioctl.c:1472 to:
	case V4L2_META_FMT_QCOM_ISP_PARAMS:
		descr = "Qualcomm CAMSS ISP Parameters";
		break;
git add drivers/media/v4l2-core/v4l2-ioctl.c
git commit --amend --no-edit
git rebase --continue

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git aff7542c319e..2966e7d6c0cd

❌ check-patch-compliance

Root cause: All 8 commits are missing the required Link: tag pointing to the upstream lore.kernel.org posting.

Failure details:

Checking commit: FROMLIST: media: qcom: camss: Add V4L2 meta format for CAMSS ISP parameters
No 'Link' found in commit message

Checking commit: FROMLIST: dt-bindings: media: qcom: Add CAMSS Offline Processing Engine (OPE)
No 'Link' found in commit message

Checking commit: FROMLIST: dt-bindings: media: qcom,qcm2290-camss-ope: Document shikra compatible
No 'Link' found in commit message

Checking commit: FROMLIST: media: uapi: Add CAMSS OPE ISP configuration definition
No 'Link' found in commit message

Checking commit: FROMLIST: media: qcom: camss: Add CAMSS Offline Processing Engine driver
No 'Link' found in commit message

Checking commit: FROMLIST: arm64: dts: qcom: agatti: Add OPE node
No 'Link' found in commit message

Checking commit: FROMLIST: arm64: dts: qcom: shikra: Add OPE node
No 'Link' found in commit message

Checking commit: FROMLIST: arm64: defconfig: Enable CAMSS OPE driver
No 'Link' found in commit message

Fix: Add Link: tags to all commit messages pointing to the upstream lore.kernel.org posting. For each commit:

git rebase -i aff7542c319e   # mark each commit as 'edit'
# For each commit, amend the message to add:
# Link: https://lore.kernel.org/linux-media/<message-id>
git commit --amend
# Add the Link: line before the Signed-off-by: trailer
git rebase --continue

The FROMLIST: prefix indicates these patches were posted to a mailing list. You need to:

  1. Find the lore.kernel.org URL for each patch in the series
  2. Add Link: <lore-url> to each commit message body (before the Signed-off-by: line)

Reproduce locally:

# The checker validates that FROMLIST: commits have Link: tags
# pointing to the upstream posting

Verdict

2 blockers must be fixed before merge:

  1. checkpatch ERROR — Split the trailing statement in drivers/media/v4l2-core/v4l2-ioctl.c:1472 across multiple lines (mandatory fix)
  2. Missing Link: tags — Add Link: tags to all 8 commits pointing to their lore.kernel.org postings (mandatory for FROMLIST: commits)

All other checkers passed successfully. Once these two issues are resolved, the PR will be ready for merge.

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.

2 participants