Skip to content

Add camss support for Nord - #1846

Merged
Wenmeng Liu (wenmliu) merged 5 commits into
qualcomm-linux:tech/mm/camssfrom
wenmliu:nord-on-knp
Sep 17, 2026
Merged

Wenmeng Liu (wenmliu) merged 5 commits into
qualcomm-linux:tech/mm/camssfrom
wenmliu:nord-on-knp

Conversation

@wenmliu

@wenmliu Wenmeng Liu (wenmliu) commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Add support for Nord camss.

CRs-Fixed: 4679675

Add bindings for the camera subsystem (CAMSS) on the Qualcomm Nord
platform.

The Nord platform provides:
- 3 x TPG (Test Pattern Generator)
- 3 x CSID (CSI Decoder)
- 10 x CSID Lite
- 3 x VFE (Video Front End)
- 10 x VFE Lite

Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
Link: https://lore.kernel.org/all/20260915-nord-v1-1-20db41a7f1ff@oss.qualcomm.com/
Add a CSID driver for the "900" revision on the Nord SoC. It shares the
CSI-2 RX helpers and the split RUP/AUP model of the gen3/980 lineage, but
the register offsets differ across the map and the RUP/AUP command uses
separate accumulator/trigger registers with a per-buffer AUP enqueue, so
add a separate file rather than overload the gen3 offset macros with
another SoC conditional.

The write master buffers are enqueued to the CSID: for every enabled RDI
an AUP_UPDATE is issued once per initial buffer, followed by a single
RUP_UPDATE, matching the number of buffers handed to the write master
when it is enabled.

Nord has 3 CSID and 10 CSID Lite instances, all driven by csid_ops_900.

Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
Link: https://lore.kernel.org/all/20260915-nord-v1-2-20db41a7f1ff@oss.qualcomm.com/
The VFE on the Nord platform reuses the gen4 VFE driver but places its
bus registers at a different base and does not implement the write
master CGC override register. Add a VFE 900 variant to the gen4 driver
to handle the different bus register base, the separate location of the
test bus control register, and to skip the missing CGC override
register.

In addition, the v900 ADDR_IMAGE register takes a full byte address
rather than the 256-byte-unit encoding used by the gen4 baseline, and
the full IFE write master client map places the RDI clients at index 28
(the lite instances keep RDI0 at client 0).

Convert the gen4 register layout from preprocessor macros to a
table-driven vfe_gen4_hw_info, retaining the existing VFE 980 (SM8750)
layout as a distinct table entry.

Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
FROMLIST: https://lore.kernel.org/all/20260915-nord-v1-4-20db41a7f1ff@oss.qualcomm.com/
Add support for TPG v2.5.0, which moves the stream enable bit out of
TPG_CTRL into a dedicated command register (TPG_CTRL_CMD). Branch
tpg_stream_on() on the runtime hw_version so the generator is enabled
through the command register on v2.5.0 and through TPG_CTRL on earlier
revisions; the reset bit is unchanged.

Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
Link: https://lore.kernel.org/all/20260915-nord-v1-5-20db41a7f1ff@oss.qualcomm.com/
Add support for the camera subsystem on the Qualcomm Nord platform.
Enumerate the module-level resources (clocks, register regions,
interrupts) and the bus bandwidth votes, and wire up the compatible.

Nord exposes 3 TPG, 3 CSID plus 10 CSID Lite (driven by csid_ops_900)
and 3 VFE plus 10 VFE Lite (driven by vfe_ops_gen4 with the VFE 900
variant).

Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
Link: https://lore.kernel.org/all/20260915-nord-v1-6-20db41a7f1ff@oss.qualcomm.com/
@qswat-orbit-external

Copy link
Copy Markdown

Dev Completion validation failed

CR: 4656447
Change Task: kernel.qli.0.0
Error: GenAI Assisted field must be set before moving change tasks to Development Complete. Please provide GenAI information.

The change task for this CR could not be moved to Dev Complete because of the error above. Please resolve the issue in Orbit and re-run the failed Orbit check.

@qswat-orbit-external

Copy link
Copy Markdown

Dev Completion validation failed

CR: 4679675
Change Task: kernel.qli.0.0
Error: GenAI Assisted field must be set before moving change tasks to Development Complete. Please provide GenAI information.

The change task for this CR could not be moved to Dev Complete because of the error above. Please resolve the issue in Orbit and re-run the failed Orbit check.

@qcomlnxci
qcomlnxci requested review from a team, quic-vikramsa and svankada and removed request for a team September 17, 2026 02:51
@wenmliu Wenmeng Liu (wenmliu) changed the title Nord on knp Add camss support for Nord Sep 17, 2026
@wenmliu
Wenmeng Liu (wenmliu) merged commit cee6189 into qualcomm-linux:tech/mm/camss Sep 17, 2026
5 of 7 checks passed
@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1846

PR: #1846
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/35175993017

# Error File:Line PR-introduced? Root Cause
1 Merge conflict during automerge Documentation/devicetree/bindings/arm/qcom,coresight-ctcu.yaml No Pre-existing conflict between qcom-next baseline and an unrelated topic branch. The PR does not modify this file.

Verdict

This is NOT a build failure caused by the PR. The failure occurred during the automerge integration step when merging the PR branch (tech/mm/camss) with the qcom-next baseline. The merge conflict is in a file that the PR does not touch.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1846

PR: #1846
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/35175993017

# Error File:Line PR-introduced? Root Cause
1 Merge conflict during automerge Documentation/devicetree/bindings/arm/qcom,coresight-ctcu.yaml No Pre-existing conflict between baseline (qcom-next) and topic branch (tech/mm/camss) unrelated to PR changes

Verdict

This is a pre-existing merge conflict not introduced by this PR. The PR only modifies camera subsystem (CAMSS) files and does not touch the conflicting file.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

PR #1846 — validate-patch

PR: #1846

Verdict Issues Detailed Report
9 Full report

Final Summary

  1. Lore link present: Yes - all 5 PR commits have lore links (commits 1,2,4,5 use Link: format; commit 3 uses incorrect FROMLIST: format)
  2. Lore link matches PR commits: No - PR is missing lore patch 3/6 (VFE gen4 prerequisite); cannot verify diff faithfulness without the missing dependency; commit 3/5 links to lore v1-4 but appears to skip v1-3
  3. Upstream patch status: ⏳ Decision Pending - posted to linux-media@vger.kernel.org on Sep 15, 2026 (2 days ago); no maintainer response yet; no Reviewed-by/Acked-by tags; no merge or NAK signals found in thread
  4. PR present in qcom-next/topics: Yes - all 5 commit(s) are present in qcom-next or topics
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1846 - media: qcom: camss: Add support for Nord CAMSS
Upstream commit: https://lore.kernel.org/all/20260915-nord-v1-0-20db41a7f1ff@oss.qualcomm.com/ (6-patch series)
Verdict: ❌ FAIL

Commit Message

Check Status Note
Subject matches upstream ⚠️ Series mismatch: PR has 5 commits, lore has 6 patches
Body preserves rationale ⚠️ Commit 1: body differs significantly from lore cover letter
Fixes tag present/correct N/A No Fixes tags in upstream patches
Authorship preserved All commits correctly preserve From: Wenmeng Liu
Backport note (if applicable) N/A FROMLIST prefix used (not backport)
Link tag format Commit 3/5 uses wrong format: FROMLIST: https://... instead of Link: https://...

Diff

File Status Notes
All files (commits 1,2,4,5) ⏭️ Cannot verify - lore patch 3/6 (VFE gen4) missing from PR
Commit 3/5 Links to lore v1-4 but appears to combine lore patches 3/6 + 4/6

Issues

Critical: Incomplete series

  • The lore series contains 6 patches (1/6 through 6/6), but the PR only includes 5 commits
  • Missing: lore patch 3/6 "media: qcom: camss: vfe: Add support for VFE gen4"
  • PR commit 3/5 "VFE 900" links to lore v1-4 (patch 4/6), but lore patch 3/6 is a prerequisite
  • This creates a dependency gap: patch 4/6 depends on patch 3/6 being applied first

Commit message issues

  • Commit 1/5: Body text differs from lore patch 1/6. PR uses simplified description ("3 x TPG, 3 x CSID, 10 x CSID Lite..."), while lore patch 1/6 has detailed technical rationale about CSID domain ID, SMMU SID mapping, and TZ workaround
  • Commit 3/5: Link tag uses incorrect format FROMLIST: https://... instead of standard Link: https://... trailer

Series numbering mismatch

  • PR commits are numbered 1/5 through 5/5
  • Lore patches are numbered 1/6 through 6/6
  • This numbering mismatch will confuse reviewers trying to correlate PR commits with upstream discussion

Verdict

Do not merge. The PR is missing a critical dependency patch (lore 3/6 "VFE gen4") that must be applied before patch 4/6 (PR commit 3/5 "VFE 900"). The series is incomplete and will not build or function correctly without the missing patch.

Required fixes:

  1. Add lore patch 3/6 "media: qcom: camss: vfe: Add support for VFE gen4" to the PR (should become PR commit 3/6)
  2. Renumber all commits to match the 6-patch lore series (1/6 through 6/6)
  3. Fix commit 3/5 (will become 4/6): change FROMLIST: https://... to Link: https://... in the commit message trailer
  4. Consider updating commit 1 body to include the detailed technical context from the lore patch (CSID domain ID issue, SMMU SID, TZ workaround) - this context is important for understanding the hardware constraints

Final Summary

  1. Lore link present: Yes - all 5 PR commits have lore links (commits 1,2,4,5 use Link: format; commit 3 uses incorrect FROMLIST: format)
  2. Lore link matches PR commits: No - PR is missing lore patch 3/6 (VFE gen4 prerequisite); cannot verify diff faithfulness without the missing dependency; commit 3/5 links to lore v1-4 but appears to skip v1-3
  3. Upstream patch status: ⏳ Decision Pending - posted to linux-media@vger.kernel.org on Sep 15, 2026 (2 days ago); no maintainer response yet; no Reviewed-by/Acked-by tags; no merge or NAK signals found in thread
  4. PR present in qcom-next/topics: Yes - all 5 commits present in topics branch per integration_presence_report.md (exact patch-id matches found); however, the missing lore patch 3/6 may also need to be checked separately

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/5 [PATCH 1/5] FROMLIST: dt-bindings: media: Add bindings for missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at d23f901 present
2/5 [PATCH 2/5] FROMLIST: media: qcom: camss: csid: Add support for CSID partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at dcd6fb8 present
3/5 [PATCH 3/5] FROMLIST: media: qcom: camss: vfe: Add support for VFE partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at 93687cc present
4/5 [PATCH 4/5] FROMLIST: media: qcom: camss: tpg: Add support for TPG missing - no subject, patch-id, or full tree-content match found present - exact patch-id match at 3b55f81 present
5/5 [PATCH 5/5] FROMLIST: media: qcom: camss: Add support for Nord CAMSS partial - subject or partial tree evidence found, but full change was not verified present - exact patch-id match at cee6189 present

Final Status

overall_status: PASS
present_commits: 5/5
partial_commits: 0/5
missing_commits: 0/5
topics_checked_for_commits: 5/5
final_summary: PR present in qcom-next/topics: Yes - all 5 commit(s) are present in qcom-next or topics

@qlijarvis

Copy link
Copy Markdown

PR #1846 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ⏭️ Skipped - merge conflicts prevented execution
dt-binding-check ⏭️ Skipped - merge conflicts prevented execution
dtb-check ⏭️ Skipped - merge conflicts prevented execution
sparse-check ⏭️ Skipped - merge conflicts prevented execution
check-uapi-headers ⏭️ Skipped - merge conflicts prevented execution
check-patch-compliance ⏭️ Skipped - merge conflicts prevented execution
tag-check N/A Cannot determine - merge conflicts prevented analysis

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1846 - Add support for Nord CAMSS (Camera Subsystem)
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/35175993175

Checker Result Summary
checkpatch ⏭️ Skipped - merge conflicts prevented execution
dt-binding-check ⏭️ Skipped - merge conflicts prevented execution
dtb-check ⏭️ Skipped - merge conflicts prevented execution
sparse-check ⏭️ Skipped - merge conflicts prevented execution
check-uapi-headers ⏭️ Skipped - merge conflicts prevented execution
check-patch-compliance ⏭️ Skipped - merge conflicts prevented execution
tag-check N/A Cannot determine - merge conflicts prevented analysis

❌ Merge Conflict Failure (Pre-Checker Stage)

Root cause: The CI workflow failed during the automerge stage when attempting to merge the PR branch topic/tech/mm/camss with the baseline integration branch. The merge encountered 154 conflicts across multiple subsystems, preventing any checkers from running.

Failure details:

Merging topic branches...
 ** Merging topic branch: topic/tech/mm/camss
Automatic merge failed; fix conflicts and then commit the result.
Merge failed, manual merge
##[error]Process completed with exit code 1.

Conflict scope:

  • 154 total conflicts across the kernel tree
  • Conflict types:
    • 130 content conflicts (modify/modify)
    • 23 add/add conflicts (both sides added the same file)
    • 1 modify/delete conflict (arch/arm64/boot/dts/qcom/lemans-auto.dtsi)

Affected subsystems:

  • Device tree bindings (Documentation/devicetree/bindings/)
  • ARM64 device trees (arch/arm64/boot/dts/qcom/)
  • Clock drivers (drivers/clk/qcom/)
  • Media drivers (drivers/media/platform/qcom/camss/, drivers/media/platform/qcom/iris/)
  • PHY drivers (drivers/phy/qualcomm/)
  • Sound drivers (sound/soc/qcom/, sound/soc/codecs/)
  • DRM/MSM display drivers (drivers/gpu/drm/msm/dp/)
  • Various other subsystems (thermal, soc, remoteproc, pci, net/wireless, etc.)

PR commits (all have FROMLIST: prefix):

  1. FROMLIST: dt-bindings: media: Add bindings for qcom,nord-camss
  2. FROMLIST: media: qcom: camss: csid: Add support for CSID 900
  3. FROMLIST: media: qcom: camss: vfe: Add support for VFE 900
  4. FROMLIST: media: qcom: camss: tpg: Add support for TPG v2.5.0
  5. FROMLIST: media: qcom: camss: Add support for Nord CAMSS

Fix: The PR branch needs to be rebased on the current baseline to resolve conflicts before the checkers can run.

Recommended steps:

# 1. Fetch the latest baseline
git fetch origin <baseline-branch>

# 2. Rebase the PR branch
git checkout topic/tech/mm/camss
git rebase origin/<baseline-branch>

# 3. Resolve conflicts manually for each commit
#    - For content conflicts: edit files, remove conflict markers, git add
#    - For add/add conflicts: verify both versions are compatible or merge manually
#    - For modify/delete: decide whether to keep or remove the file

# 4. Continue rebase after resolving each conflict
git rebase --continue

# 5. Force-push the rebased branch
git push --force-with-lease origin topic/tech/mm/camss

# 6. Re-trigger CI

Note on conflict scope: The extensive conflicts (154 files) suggest that either:

  1. The PR branch is significantly out of date with the baseline, or
  2. The baseline has undergone major refactoring in overlapping subsystems (media/camss, clocks, device trees)

Given the PR adds support for a new platform (Nord CAMSS) with 5 commits touching media drivers and bindings, the conflicts in unrelated subsystems (sound, drm, thermal, etc.) indicate the branch is stale and needs a full rebase.

Verdict

Cannot merge - merge conflicts must be resolved before checkers can run.

The CI workflow failed at the pre-checker merge stage. No code quality checks (checkpatch, dt-binding-check, dtb-check, sparse, uapi, patch-compliance) were executed. The PR author must rebase the branch on the current baseline and resolve all 154 conflicts before the checkers can provide feedback on code quality, style, or compliance issues.

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