Skip to content

FROMLIST: arm64: dts: qcom: shikra: fix interrupt specifier cell count#751

Open
apateriy-qcom wants to merge 1 commit into
qualcomm-linux:qcom-6.18.yfrom
apateriy-qcom:qcom-6.18.y-m0
Open

FROMLIST: arm64: dts: qcom: shikra: fix interrupt specifier cell count#751
apateriy-qcom wants to merge 1 commit into
qualcomm-linux:qcom-6.18.yfrom
apateriy-qcom:qcom-6.18.y-m0

Conversation

@apateriy-qcom

Copy link
Copy Markdown

The GIC v3 binding requires four cells per interrupt specifier: . Five device nodes in shikra.dtsi used only three cells, omitting the required CPU affinity cell:

  • PCIe MSI interrupts (GIC_SPI 491-498, 489)
  • SDHC slot 2 (GIC_SPI 350, 353)
  • GPI DMA0 (GIC_SPI 511-526)
  • ethernet0 / EMAC0 (GIC_SPI 478)
  • ethernet1 / EMAC1 (GIC_SPI 458)

Link: https://lore.kernel.org/all/20260612-shikra-dt-v6-0-6b6cb58db477@oss.qualcomm.com/
Link: https://lore.kernel.org/all/20260608-shikra-dt-m1-v4-0-2114300594a6@oss.qualcomm.com/

CRs-Fixed: 4580054

The GIC v3 binding requires four cells per interrupt specifier:
<type number flags affinity>. Five device nodes in shikra.dtsi used
only three cells, omitting the required CPU affinity cell:

- PCIe MSI interrupts (GIC_SPI 491-498, 489)
- SDHC slot 2 (GIC_SPI 350, 353)
- GPI DMA0 (GIC_SPI 511-526)
- ethernet0 / EMAC0 (GIC_SPI 478)
- ethernet1 / EMAC1 (GIC_SPI 458)

Link: https://lore.kernel.org/all/20260612-shikra-dt-v6-0-6b6cb58db477@oss.qualcomm.com/
Link: https://lore.kernel.org/all/20260608-shikra-dt-m1-v4-0-2114300594a6@oss.qualcomm.com/
Signed-off-by: Shiraz Hashim <shiraz.hashim@oss.qualcomm.com>
@qcomlnxci

Copy link
Copy Markdown

Test Matrix

Test Case lemans-evk monaco-evk qcs615-ride qcs6490-rb3gen2 qcs8300-ride qcs9100-ride-r3 x1e80100-crd
BT_FW_KMD_Service ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
BT_ON_OFF ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
BT_SCAN ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPUFreq_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
CPU_affinity ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
DSP_AudioPD ✅ Pass ✅ Pass ⚠️ skip ✅ Pass ✅ Pass ⚠️ skip ◻️
Ethernet ⚠️ skip ✅ Pass ⚠️ skip ⚠️ skip ⚠️ skip ⚠️ skip ◻️
Freq_Scaling ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
GIC ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
IPA ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Interrupts ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
OpenCV ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
PCIe ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
Probe_Failure_Check ❌ Fail ❌ Fail ✅ Pass ❌ Fail ❌ Fail ❌ Fail ◻️
RMNET ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
UFS_Validation ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
USBHost ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ❌ Fail ◻️
WiFi_Firmware_Driver ❌ Fail ❌ Fail ❌ Fail ✅ Pass ✅ Pass ✅ Pass ◻️
WiFi_OnOff ✅ Pass ❌ Fail ⚠️ skip ✅ Pass ✅ Pass ✅ Pass ◻️
adsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
cdsp_remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
gpdsp_remoteproc ✅ Pass ✅ Pass ⚠️ skip ⚠️ skip ✅ Pass ❌ Fail ◻️
hotplug ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
irq ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
kaslr ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
pinctrl ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
qcom_hwrng ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
remoteproc ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ❌ Fail ◻️
rngtest ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
shmbridge ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
smmu ❌ Fail ✅ Pass ❌ Fail ✅ Pass ✅ Pass ❌ Fail ◻️
watchdog ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ✅ Pass ◻️
wpss_remoteproc ✅ Pass ✅ Pass ⚠️ skip ✅ Pass ✅ Pass ✅ Pass ◻️

@ayaan-anwar

Copy link
Copy Markdown
Contributor

Ack for the ethernet fix. Thanks for raising this.

@sgaud-quic

Copy link
Copy Markdown
Contributor

PR #751 — validate-patch

PR: #751

Verdict Issues Detailed Report
⚠️ 0 Full report

Final Summary

  1. Lore link present: Yes — two Link: tags present, both pointing to lore.kernel.org threads (v6 and v4 series cover letters)
  2. Lore link matches PR commits: Partial — network access is restricted so direct mbox comparison was not possible; however the subject, author, and diff content are internally consistent with a genuine upstream submission; both links point to cover letters rather than the individual patch message-ID
  3. Upstream patch status: In review — FROMLIST: prefix and lore links confirm the patch is posted on the mailing list (v6 as of 2026-06-12) but not yet merged into mainline
  4. PR present in qcom-next: Not checked — network access is restricted; cannot query the qcom-next tree remotely
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #751FROMLIST: arm64: dts: qcom: shikra: fix interrupt specifier cell count
Upstream commit: In-review on lore.kernel.org (FROMLIST, not yet merged)

Verdict: ⚠️ PARTIAL


Commit Message

Check Status Note
Subject matches upstream arm64: dts: qcom: shikra: fix interrupt specifier cell count — correct subsystem path and description
Body preserves rationale Clearly explains GICv3 4-cell requirement and lists all five affected nodes with their SPI numbers
Fixes tag present/correct ⚠️ No Fixes: tag; this is a correctness bug fix against an existing DT file — a Fixes: tag pointing to the commit that introduced the 3-cell entries would be appropriate
Authorship preserved From: Shiraz Hashim <shiraz.hashim@oss.qualcomm.com> and Signed-off-by: match
Backport note (if applicable) FROMLIST: prefix correctly signals the patch is from an upstream mailing list submission, not yet merged

Diff

File Status Notes
arch/arm64/boot/dts/qcom/shikra.dtsi All 29 interrupt specifiers across 5 nodes correctly updated from 3-cell to 4-cell (<type num flags affinity>); stat line (29 ins / 29 del) is consistent with actual diff content

Issues

  1. Fixes: tag absent — This patch corrects a structural DT bug (wrong #interrupt-cells count). A Fixes: tag referencing the commit that originally introduced the 3-cell specifiers in shikra.dtsi would improve traceability and help stable-tree maintainers identify backport candidates.

  2. Both Link: tags point to cover letters, not the individual patch — The message-IDs 20260612-shikra-dt-v6-0-... and 20260608-shikra-dt-m1-v4-0-... both use the -0- suffix, which denotes the series cover letter. Best practice is to link to the specific patch message-ID (e.g., -v6-1- or -v6-2- depending on its position in the series). This is a minor hygiene issue; the links still allow reviewers to find the thread.

  3. Two Link: tags from different series versions — Having links to both a v4 and a v6 series is unusual. Typically only the latest revision's link is kept. The v4 link (20260608-shikra-dt-m1-v4-0-...) should be dropped in favour of the v6 link, unless the v4 series is a distinct, related submission.

  4. No Reviewed-by: or Acked-by: tags — Not a blocker for a FROMLIST patch, but worth noting that the patch carries no upstream review acknowledgement yet.


Verdict

The diff is technically correct and the commit message is clear; the patch can be merged as-is for the FROMLIST use case, but should be updated with a Fixes: tag, the Link: tags should point to the individual patch (not the cover letter), and the older v4 Link: should be dropped before the patch is submitted upstream.


Final Summary

  1. Lore link present: Yes — two Link: tags present, both pointing to lore.kernel.org threads (v6 and v4 series cover letters)
  2. Lore link matches PR commits: Partial — network access is restricted so direct mbox comparison was not possible; however the subject, author, and diff content are internally consistent with a genuine upstream submission; both links point to cover letters rather than the individual patch message-ID
  3. Upstream patch status: In review — FROMLIST: prefix and lore links confirm the patch is posted on the mailing list (v6 as of 2026-06-12) but not yet merged into mainline
  4. PR present in qcom-next: Not checked — network access is restricted; cannot query the qcom-next tree remotely

@sgaud-quic

Copy link
Copy Markdown
Contributor

PR #751 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch 0 errors, 0 warnings — clean
dt-binding-check ⏭️ Skipped — no changes in Documentation/devicetree/bindings
dtb-check GPI DMA interrupts list too long per qcom,gpi.yaml schema
sparse-check ⏭️ Skipped — no C source changes
check-uapi-headers ⏭️ Skipped — no UAPI header changes
check-patch-compliance Lore link validation failed — b4 could not fetch the patch series
tag-check Subject prefixed FROMLIST: — correct for qcom-6.18.y target
qcom-next-check N/A PR targets qcom-6.18.y, not qcom-next-staging

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: FROMLIST: arm64: dts: qcom: shikra: fix interrupt specifier cell count (#751)
Commit: a2dc403251b7be04db7d326c4bb6c7eb7b8a909e
Base branch: qcom-6.18.y (base SHA: acc3e66cc378)
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/27937616033

Checker Result Summary
checkpatch 0 errors, 0 warnings — clean
dt-binding-check ⏭️ Skipped — no changes in Documentation/devicetree/bindings
dtb-check GPI DMA interrupts list too long per qcom,gpi.yaml schema
sparse-check ⏭️ Skipped — no C source changes
check-uapi-headers ⏭️ Skipped — no UAPI header changes
check-patch-compliance Lore link validation failed — b4 could not fetch the patch series
tag-check Subject prefixed FROMLIST: — correct for qcom-6.18.y target
qcom-next-check N/A PR targets qcom-6.18.y, not qcom-next-staging

❌ dtb-check

Root cause: The qcom,gpi.yaml schema caps the interrupts array at a maximum length, but the GPI DMA0 node (dma-controller@4a00000) now has 16 interrupt entries (GIC_SPI 511–526), each with 4 cells — 64 cells total — which exceeds the schema's maxItems constraint.

Failure details:

Log Summary: Test failed
shikra-cqm-evk.dtb: dma-controller@4a00000 (qcom,shikra-gpi-dma):
  interrupts: [[0,511,4,0],[0,512,4,0],...,[0,526,4,0]] is too long
  from schema $id: http://devicetree.org/schemas/dma/qcom,gpi.yaml#

shikra-cqm-evk-imx577-camera.dtb: same error
shikra-cqs-evk.dtb: same error
(all shikra DTBs affected)

The error appears in all three shikra DTBs (shikra-cqm-evk.dtb, shikra-cqm-evk-imx577-camera.dtb, shikra-cqs-evk.dtb). The pre-PR baseline did not have this error (the checker diffs base vs. head DTB errors), confirming this is a regression introduced by the PR.

Root cause analysis: The patch correctly adds the 4th affinity cell (0) to each GPI DMA interrupt specifier. However, Documentation/devicetree/bindings/dma/qcom,gpi.yaml defines interrupts with a maxItems that is less than 16. The upstream binding schema needs to be updated to allow up to 16 channels (or the shikra DTS needs to use a different approach such as interrupt-parent + interrupts-extended).

Fix options:

  1. Preferred (upstream-aligned): Update Documentation/devicetree/bindings/dma/qcom,gpi.yaml to raise maxItems to 16 (or use maxItems: 16 on the interrupts property). This fix should be submitted as a separate binding patch or bundled with this DTS fix.
  2. Alternative: Check whether the upstream lore series (20260612-shikra-dt-v6) already includes a binding update — if so, the binding patch must also be cherry-picked into qcom-6.18.y.

Reproduce locally:

make -j$(nproc) O=out ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- \
  CHECK_DTBS=y qcom/shikra-cqm-evk.dtb

❌ check-patch-compliance

Root cause: The check-patch-compliance script uses b4 am to fetch and verify the lore patch against the commit, but the lore link in the commit resolves to a cover-letter message-ID (20260612-shikra-dt-v6-0-...) rather than the individual patch message-ID, causing b4 to fail to retrieve a single applicable patch.

Failure details:

Checking commit: FROMLIST: arm64: dts: qcom: shikra: fix interrupt specifier cell count
Something seems wrong with the provided link. Please verify it
Try below command to run locally-
b4 am --single-message -C -l -3 \
  https://lore.kernel.org/all/20260612-shikra-dt-v6-0-6b6cb58db477@oss.qualcomm.com/
https://lore.kernel.org/all/20260608-shikra-dt-m1-v4-0-2114300594a6@oss.qualcomm.com/
Process completed with exit code 1.

The commit has two Link: trailers:

  • https://lore.kernel.org/all/20260612-shikra-dt-v6-0-6b6cb58db477@oss.qualcomm.com/ — this is the cover letter of the v6 series (note the -0- in the message-ID), not the patch itself.
  • https://lore.kernel.org/all/20260608-shikra-dt-m1-v4-0-2114300594a6@oss.qualcomm.com/ — this is the cover letter of the v4 series.

Fix: Replace the Link: trailer with the message-ID of the actual patch (not the cover letter). The patch message-ID will have -1- (or the patch number) instead of -0-. For example:

Link: https://lore.kernel.org/all/20260612-shikra-dt-v6-1-6b6cb58db477@oss.qualcomm.com/

Verify the correct message-ID by browsing the lore thread and picking the URL of the individual patch email.

Reproduce locally:

b4 am --single-message -C -l -3 \
  https://lore.kernel.org/all/20260612-shikra-dt-v6-0-6b6cb58db477@oss.qualcomm.com/

Verdict

2 blockers to fix before merge:

  1. dtb-checkqcom,gpi.yaml schema maxItems too small for 16-channel GPI DMA; update the binding or include the binding fix from the upstream series.
  2. check-patch-complianceLink: trailer points to the cover-letter message-ID (-0-); replace with the individual patch message-ID (-1-).

@sgaud-quic

Copy link
Copy Markdown
Contributor

@apateriy-qcom please check dtb-check failure :

GPI DMA interrupts list too long per qcom,gpi.yaml schema

@Komal-Bajaj

Copy link
Copy Markdown
Contributor

@apateriy-qcom please check dtb-check failure :

GPI DMA interrupts list too long per qcom,gpi.yaml schema

For Shikra, interrupt cell count required is 4, GPI DMA has to be handled to use 4 interrupts cells.

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.

6 participants