Skip to content

dmaengine: qcom: gpi: match stale-event comparison width - #78

Merged
ooaklee merged 2 commits into
sp11/ubuntu-qcom-x1e-7.3.yfrom
fix/sp11-gpi-stale-event-width-20261108
Nov 10, 2026
Merged

ooaklee merged 2 commits into
sp11/ubuntu-qcom-x1e-7.3.yfrom
fix/sp11-gpi-stale-event-width-20261108

Conversation

@ooaklee

@ooaklee ooaklee commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

Generic gpi_read_ev_rp() returns the low hardware pointer word, while gpi_mark_stale_events() previously compared it with the full local ring address. Under a synthetic high-address allocation, that comparison cannot converge. Match the generic pointer representation at both the initial comparison and every ring advance; preserve the configured Denali-QSPI full-width path.

Related: ooaklee/linux-surface-pro-11-oe#67. Ordinary-SPI correction 2 is already carried in the v3 base. This patch addresses only the remaining comparison-width correction.

The candidate is based on released source 8ca6aefb8fb73d7da5c19a536d4ce3f027e2f725. Actual high-address generic coherent-ring reachability is unproved: a streaming dma_set_mask(64) does not itself raise the separate coherent mask. This is a source consistency correction, not an observed Surface hang or generic 64-bit GPI enablement. Existing deferred-slot lifetime concerns and the separate portability cast remain outside this patch.

Validation at 9f8fcba48ff9451533f2c633a6d2556a57937d7a:

  • Actual source-extracted predicate, pointer conversion, MMIO-reader and stale-event functions pass 99 synthetic low/high/wrapped/selective-channel cases with AddressSanitizer and UndefinedBehaviourSanitizer.
  • Three deliberately incomplete variants confirm that either missing comparison correction fails; host compiler warnings are errors.
  • Linux source-regression CI passed.
  • Fresh Linux ARM64 Kbuild compiled the whole drivers/dma/qcom/gpi.o translation unit with W=1 and no warnings. ELF machine is AArch64. GCC 15.2.0 matches the retained compiler; this check used GNU ld 2.46 instead of the original LLD, with that configuration variation recorded.
  • Focused strict checkpatch (--no-tree --no-signoff) and whitespace checks pass.
  • Independent GLM 5.3 source review approved this bounded increment.

With real Kbuild compilation now complete, this PR is ready for a source-only merge. This explicitly replaces the earlier draft disposition: full composition/DTB/module/package validation with a new release ABI and proportionate physical recovery/regression checks remain requirements before distributing or installing a new kernel. They have not been performed for this patch. The fixtures do not establish physical address allocation, hardware MMIO ordering or lifecycle qualification. The running v3 installation and released artifacts remain unchanged; no upstream submitter certification is claimed.

The regression script and workflow are fork-only infrastructure. Exclude the .github test commit from upstream kernel patches; the driver correction is a separate commit.

@ooaklee

ooaklee commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner Author

Independent automated source review completed on 2026-11-09 using OpenCode with omni-route/zai/glm-5.3, against head 9f8fcba48ff9451533f2c633a6d2556a57937d7a.

Verdict: APPROVE for the bounded source increment, with no blocking findings. The review covered both generic comparison normalisations, preservation of the configured Denali QSPI full-width path, and the source-extracted regression tests with three mutation controls. No code changes were required. Optional comments and broader fixture cases are deferred to keep this correction focused.

The existing 99-case synthetic run, mutation controls, ASan/UBSan, and driver checkpatch checks passed. Linux source-regression CI remains successful at this exact head.

This is an automated source review, not a GitHub writer approval or hardware qualification. The earlier review attempt produced no final verdict and is superseded by this completed round. Synthetic high-address coverage does not establish that the Surface allocates generic coherent rings above 4 GiB.

The PR stays draft. ARM64 Kbuild compilation, a full kernel build with a new ABI and packages, and Denali/non-Denali hardware and recovery qualification remain pending before promotion or release. OE issue #67 remains open.

Source integration update (2026-11-10): Fresh whole-translation-unit ARM64 Kbuild subsequently passed with W=1 and no warnings (GCC 15.2.0, GNU ld 2.46). PR #78 is now merged into sp11/ubuntu-qcom-x1e-7.3.y as 07f7f36ec024f211a0d937dfb51e52af1995f68f. This resolves the object-compilation gap noted above. Full new-ABI kernel/module/package validation and physical qualification remain pending before a release or installation; the running v3 kernel and released artifacts were not changed.

@ooaklee
ooaklee marked this pull request as ready for review November 10, 2026 14:40
@ooaklee
ooaklee merged commit 07f7f36 into sp11/ubuntu-qcom-x1e-7.3.y Nov 10, 2026
1 check passed
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.

1 participant