Skip to content

Add interrconnect voting implementation in driver and related dt-bindings#1241

Open
bibekpatro wants to merge 2 commits into
qualcomm-linux:tech/mem/iommufrom
bibekpatro:tech/mem/iommu
Open

Add interrconnect voting implementation in driver and related dt-bindings#1241
bibekpatro wants to merge 2 commits into
qualcomm-linux:tech/mem/iommufrom
bibekpatro:tech/mem/iommu

Conversation

@bibekpatro
Copy link
Copy Markdown

Some SoC implementations require a bandwidth vote on an interconnect
path before the SMMU register space is accessible. Add the optional
'interconnects' property to the binding to allow platform DT nodes
to describe this path.

Link: https://lore.kernel.org/all/20260526-smmu_interconnect_addition-v2-0-2a6d8ca30d63@oss.qualcomm.com/
Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
On some SoCs the SMMU registers require an active interconnect
bandwidth vote to be accessible. While other clients typically
satisfy this requirement implicitly, certain corner cases (e.g.
during sleep/wakeup transitions) can leave the SMMU without a
vote, causing intermittent register access failures.

Add support for an optional interconnect path to the arm-smmu
driver and vote for bandwidth while the SMMU is active. The path
is acquired from DT if present and ignored otherwise.

The bandwidth vote is enabled before accessing SMMU registers
during probe and runtime resume, and released during runtime
suspend and on error paths.

Generally, from an architectural perspective, GEM_NOC and DDR are
expected to have an active vote whenever the adreno_smmu block is
powered on. In most common use cases, this requirement is implicitly
satisfied because other GPU-related clients (for example, the GMU
device) already hold a GEM_NOC vote when adreno_smmu is enabled.

However, there are certain corner cases, such as during sleep/wakeup
transitions, where the GEM_NOC vote can be removed before adreno_smmu
is powered down. If adreno_smmu is then accessed while the interconnect
vote is missing, it can lead to the observed failures. Because of the
precise ordering involved, this scenario is difficult to reproduce
consistently.
(also GDSC is involved in adreno usecases can have an independent vote)

Link: https://lore.kernel.org/all/20260526-smmu_interconnect_addition-v2-0-2a6d8ca30d63@oss.qualcomm.com/
Signed-off-by: Bibek Kumar Patro <bibek.patro@oss.qualcomm.com>
@qcomlnxci qcomlnxci requested review from a team and quic-guptap and removed request for a team May 26, 2026 20:43
@qlijarvis
Copy link
Copy Markdown

PR #1241 — validate-patch

PR: #1241

Verdict Issues Detailed Report
2 Full report

Final Summary

  1. Lore link present: Yes — but links to cover letter (v2-0) instead of individual patches (v2-1, v2-2)
  2. Lore link matches PR commits: Cannot verify — network access restricted; even with network access, the cover letter link cannot be used to fetch individual patches
  3. Upstream patch status: Cannot verify — network access restricted
  4. PR present in qcom-next: Cannot verify — permission denied on local kernel repo at /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1241 - Add SMMU interconnect bandwidth voting support
Upstream commit: https://lore.kernel.org/all/20260526-smmu_interconnect_addition-v2-0-2a6d8ca30d63@oss.qualcomm.com/
Verdict: ❌ FAIL

Commit Message

Check Status Note
Subject matches upstream ⏭️ Cannot verify - network restricted
Body preserves rationale ⏭️ Cannot verify - network restricted
Fixes tag present/correct Not applicable - new feature, no Fixes tag needed
Authorship preserved FROMLIST: author in Signed-off-by chain (Bibek Kumar Patro)
Backport note (if applicable) N/A FROMLIST prefix, not a backport

Diff

File Status Notes
Documentation/devicetree/bindings/iommu/arm,smmu.yaml ⏭️ Cannot verify against lore - network restricted
drivers/iommu/arm/arm-smmu/arm-smmu.c ⏭️ Cannot verify against lore - network restricted
drivers/iommu/arm/arm-smmu/arm-smmu.h ⏭️ Cannot verify against lore - network restricted

Issues

❌ CRITICAL: Incorrect lore link (both commits)

Both commits link to the same message-ID:

Link: https://lore.kernel.org/all/20260526-smmu_interconnect_addition-v2-0-2a6d8ca30d63@oss.qualcomm.com/

The message-ID suffix v2-0 indicates this is the cover letter (patch 0) of a v2 series, not the individual patches.

Expected pattern for a 2-patch series:

  • Commit 1/2 should link to: 20260526-smmu_interconnect_addition-v2-1-<hash>@oss.qualcomm.com
  • Commit 2/2 should link to: 20260526-smmu_interconnect_addition-v2-2-<hash>@oss.qualcomm.com

Impact: The Link: tag is used for traceability and upstream status tracking. Linking to the cover letter instead of the individual patch message-IDs makes it impossible to:

  1. Fetch the exact upstream patch for comparison
  2. Track per-patch review comments and acceptance status
  3. Verify that the PR content matches the upstream posting

How to fix:

  1. Visit https://lore.kernel.org/all/20260526-smmu_interconnect_addition-v2-0-2a6d8ca30d63@oss.qualcomm.com/
  2. Find the individual patch message-IDs for patches 1/2 and 2/2 in the thread
  3. Update each commit's Link: tag to point to its corresponding patch message-ID
  4. Use git commit --amend to update the commit messages

Verdict

Do not merge - The lore links must be corrected to point to individual patch message-IDs rather than the cover letter.

While the commit messages are well-written and the authorship is correct for FROMLIST commits, the incorrect Link: tags prevent proper validation and upstream traceability.

Final Summary

  1. Lore link present: Yes — but links to cover letter (v2-0) instead of individual patches (v2-1, v2-2)
  2. Lore link matches PR commits: Cannot verify — network access restricted; even with network access, the cover letter link cannot be used to fetch individual patches
  3. Upstream patch status: Cannot verify — network access restricted
  4. PR present in qcom-next: Cannot verify — permission denied on local kernel repo at /local/mnt/workspace/sgaud/Qgenie/image_pipeline/kernel

@qlijarvis
Copy link
Copy Markdown

PR #1241 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch 1 style issue: unbalanced braces
dt-binding-check Passed
dtb-check ⏭️ Skipped (no DTS changes)
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance Link fetch failed (cover letter URL)
tag-check All commits have valid FROMLIST: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1241 - FROMLIST: iommu/arm-smmu: Add interconnect bandwidth voting support
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/26474031654

Checker Result Summary
checkpatch 1 style issue: unbalanced braces
dt-binding-check Passed
dtb-check ⏭️ Skipped (no DTS changes)
sparse-check Passed
check-uapi-headers Passed
check-patch-compliance Link fetch failed (cover letter URL)
tag-check All commits have valid FROMLIST: prefix

❌ checkpatch

Root cause: Unbalanced braces around else statement in drivers/iommu/arm/arm-smmu/arm-smmu.c:2340

Failure details:

Commit fad62d0856de ("FROMLIST: iommu/arm-smmu: Add interconnect bandwidth voting support")
CHECK: Unbalanced braces around else statement
#118: FILE: drivers/iommu/arm/arm-smmu/arm-smmu.c:2340:
+	else {

fad62d0856dec195f33dfcd1fd437a7fd1463b24 total: 0 errors, 0 warnings, 1 checks, 110 lines checked

Fix: The else block has braces but the corresponding if block likely doesn't. Apply consistent bracing:

  • If the if block is single-line, remove braces from else block
  • If the if block is multi-line, add braces to both blocks
git rebase -i df3ae9703774b70a7b7758b53498a25de9f87174
# mark commit fad62d0856de as 'edit'
# Edit drivers/iommu/arm/arm-smmu/arm-smmu.c:2340 to fix brace balance
git add drivers/iommu/arm/arm-smmu/arm-smmu.c
git commit --amend --no-edit
git rebase --continue

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git df3ae9703774b70a7b7758b53498a25de9f87174..975e248ca406262b96a28277089f46d2de682a5e

❌ check-patch-compliance

Root cause: Link points to series cover letter (v2-0) instead of individual patch messages

Failure details:

Checking commit: FROMLIST: dt-bindings: iommu: arm,smmu: Document interconnects property
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/20260526-smmu_interconnect_addition-v2-0-2a6d8ca30d63@oss.qualcomm.com/

Checking commit: FROMLIST: iommu/arm-smmu: Add interconnect bandwidth voting support
Something seems wrong with the provided link. Please verify it

Analysis: Both commits use the same Link URL ending in v2-0, which is the cover letter for the series. The check-patch-compliance checker uses b4 am --single-message which expects a direct patch message-ID, not a cover letter.

Fix: Update each commit's Link: tag to point to the specific patch message:

  • Commit 1 (dt-bindings): Change to v2-1 (first patch in series)
  • Commit 2 (iommu/arm-smmu): Change to v2-2 (second patch in series)
git rebase -i df3ae9703774b70a7b7758b53498a25de9f87174
# mark both commits as 'edit'

# For commit 1:
git commit --amend
# Change Link: from v2-0 to v2-1:
# Link: https://lore.kernel.org/all/20260526-smmu_interconnect_addition-v2-1-2a6d8ca30d63@oss.qualcomm.com/

# For commit 2:
git rebase --continue
git commit --amend
# Change Link: from v2-0 to v2-2:
# Link: https://lore.kernel.org/all/20260526-smmu_interconnect_addition-v2-2-2a6d8ca30d63@oss.qualcomm.com/

git rebase --continue

Reproduce locally:

# Test with corrected URLs:
b4 am --single-message -C -l -3 https://lore.kernel.org/all/20260526-smmu_interconnect_addition-v2-1-2a6d8ca30d63@oss.qualcomm.com/
b4 am --single-message -C -l -3 https://lore.kernel.org/all/20260526-smmu_interconnect_addition-v2-2-2a6d8ca30d63@oss.qualcomm.com/

Verdict

2 blockers to fix before merge:

  1. Fix unbalanced braces in arm-smmu.c:2340 (checkpatch style issue)
  2. Update Link: tags to point to individual patch messages (v2-1 and v2-2) instead of cover letter (v2-0)

Both are straightforward fixes requiring a rebase to amend the commits.

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