Skip to content

[QUALIFICATION - DO NOT MERGE] SP11 v10 jg-1 touch test - #50

Draft
ooaklee wants to merge 2 commits into
sp11/ubuntu-qcom-x1e-7.2.y-betafrom
sp11/qualification-7.2.2-v10
Draft

[QUALIFICATION - DO NOT MERGE] SP11 v10 jg-1 touch test#50
ooaklee wants to merge 2 commits into
sp11/ubuntu-qcom-x1e-7.2.y-betafrom
sp11/qualification-7.2.2-v10

Conversation

@ooaklee

@ooaklee ooaklee commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Qualification purpose

This draft is a build-and-hardware-test branch only. Do not merge it into the beta integration branch.

It qualifies the one-commit GPI event-ordering candidate from #45 on the freshly synchronized 7.2.2-jg-1 beta base. It intentionally excludes the Golden audio series and every other open feature topic so a touchscreen result has one attributable kernel delta.

Exact composition

  • Integration base: bf631f9a13b3 (sp11/ubuntu-qcom-x1e-7.2.y-beta)
  • Jens upstream parent retained by that base: 4943ee7b280c (jg/ubuntu-qcom-x1e-7.2.y)
  • Touch candidate: bd9f5e29b2a8 from dmaengine: qcom: gpi: order event ring pointer reads #45
  • Qualification packaging: e71361df7046
  • Expected ABI: 7.2.2-jg-1sp11v10-qcom-x1e

The Debian version and derived ABI were checked in the Lexr Ubuntu build container, including ordering above both 7.2.2-jg-1 and 7.2.2-jg-0sp11v9.

Exact Lexr artifact evidence

  • source commit: e71361d
  • source tree: 4c897769961c6916e8fc21241b595c3a73bb9204
  • Debian version: 7.2.2-jg-1sp11v10
  • ABI: 7.2.2-jg-1sp11v10-qcom-x1e
  • all four SHA256SUMS entries, bundle inspection, package closure, SP11 DTBs, and relevant module vermagic: pass
  • image is ARM64 PE/COFF without an embedded .dtbauto section; post-install receipt and boot doctor must therefore verify the external per-ABI DTB and matching GRUB entries

Package SHA-256 values:

  • ABI headers: e7be4e4ce2c4d0dab5895100b16c099b1890966473b7baba0b34323bf36822cf
  • image: 07834fc8c0fa3f98ba626922fb5de61f6f81570fa4156f957b8e8422b04ee609
  • modules: bb2d6630b8cd0f3bd33fb3c1b8ba0239d9d83ef03502956b6e06b6a141827167
  • common headers: 1e029938af33802c3f522a88ad0a6bc724bac98771e73718da18fa01dc758740

Evidence collection

The read-only collector now supports --profile v10 with exact candidate, ABI, package version, and packaged vmlinuz SHA-256 a7a6501db4387ddc37b2deff63ce7b88b4b7169bd2a7395ae951380cf4fb9199. Bash syntax, ShellCheck at warning severity, and a 77-file manifest-verified Linux smoke collection pass. A matching ABI with a missing image or any missing/wrong-version package fails closed; the exact image hash and all four exact package versions pass. Use it before first touch and after each state transition.

Required Surface test

  1. Verify SHA256SUMS and run Lexr bundle inspection on the exact artifact above.
  2. Run Lexr preflight and install dry-run while preserving the v19 ABI above as the known-good fallback; these checks validate the bundle, transaction plan, and existing fallback binding.
  3. After the real install, verify its receipt, the installed image/initramfs/modules, and the matching per-ABI Denali DTB and GRUB entries with Lexr boot doctor before reboot.
  4. Confirm the exact running ABI after reboot.
  5. Exercise touch repeatedly from cold boot, after an idle period, and after suspend/resume; include pen proximity/input checks.
  6. Capture the previous-boot kernel journal after any freeze or hard reset.
  7. Treat audio as unchanged in this qualification; do not infer an audio fix from this branch.

Structural checks

The local integration guardrail passed for both topic commits, including the per-commit source check. Hardware behavior remains unqualified until tested on the Surface.

The device writes event elements into coherent memory before publishing
its event ring read pointer. Both gpi_process_events() and
gpi_mark_stale_events() read that pointer through readl_relaxed() and then
consume the event memory without an ordering guarantee.

On architectures such as arm64, this can expose a published event before
all its fields are visible. Denali QSPI exposed this as an accepted
completion whose length was observed as zero.

Use ordered MMIO reads only for the event pointer. Keep all other register
accesses relaxed. This follows the ordered ioread32() pattern used by the
Qualcomm IPA GSI event-ring consumer.

Fixes: 5d0c353 ("dmaengine: qcom: Add GPI dma driver")
Signed-off-by: Leon Silcott <leon@boasi.io>
Signed-off-by: Leon Silcott <leon@boasi.io>
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