Skip to content

ASoC: re-lift guarded SP11 TX DMIC capture - #36

Draft
ooaklee wants to merge 3 commits into
sp11/ubuntu-qcom-x1e-7.2.y-betafrom
sp11/beta-tx-dmic
Draft

ASoC: re-lift guarded SP11 TX DMIC capture#36
ooaklee wants to merge 3 commits into
sp11/ubuntu-qcom-x1e-7.2.y-betafrom
sp11/beta-tx-dmic

Conversation

@ooaklee

@ooaklee ooaklee commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Summary

Re-lift the Surface Pro 11 TX-macro digital-microphone capture path from upstream-review PR jglathe#88. This fixes the Denali divider, shares physical DMIC clocks with the TX macro, and wires stereo capture in the board device tree.

Containment

  • divider and shared-clock behavior are selected only for microsoft,denali
  • TX capture endpoints are described only by the Denali device tree
  • non-Denali VA and TX macro paths retain their existing clock ownership and routing

Provenance

All three focused commits retain Leon Silcott as author and their original author dates. Stable patch IDs match the focused jglathe#88 commits.

Historical pre-sync focused software evidence

At 58fec71de633:

  • beta integration validator: pass
  • strict checkpatch: 0 errors; warnings/checks remain visible
  • git diff --check: pass
  • clean case-sensitive ARM64 ubuntu_x1e_defconfig W=1 builds: LPASS macro common, TX macro, VA macro
  • X1E/OLED, X1P/LCD, and non-SP11 Dell XPS 13 9345 DTBs: pass
  • the non-SP11 DTB hash is unchanged from the beta checkpoint

Current re-lift verification

The three-commit series was re-lifted unchanged onto current beta bf631f9, producing head d03713c. Ordered stable patch IDs, author identities, and subjects match the pre-sync series, and git range-diff pairs all three commits exactly. GitHub CI and a local detached-head rerun of the exact-current-head integration check pass. A fresh case-sensitive ARM64 W=1 build at exact head d03713c and tree 9f65446bc87f passes the three LPASS codec objects and all three representative DTBs. The X1E OLED, X1P LCD, and Dell hashes are 3f9613c08814, 7afda4b1b8c7, and 7baa7f970464; the non-SP11 Dell DTB is unchanged from beta.

Blocking hardware gates

PR jglathe#79 explicitly recorded TX DMIC capture as unqualified. Both SP11 variants need stereo capture, channel order, playback coexistence, suspend/resume, and VA-path tests; a non-SP11 device must exercise the unchanged capture path.

This PR intentionally remains draft and must not merge on compile evidence alone.

@ooaklee
ooaklee marked this pull request as draft September 2, 2026 18:47
@ooaklee

ooaklee commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

WITHDRAWN: aggregate qualification candidate

Do not install or hardware-test 7.2.2-sp11beta1 or candidate
80ecee88b749d7324e1274c0a1cf6dfd752fddfa.

A final-tree comparison against the hardware-qualified
sp11/integration-7.2.x source found active camera behavior missing from that
candidate: VFE680 MIPI RAW write-client mode, CSID680 crop/drop-engine
containment, and CAMSS partial stream-start unwind. Compile, schema, and package
success did not detect this runtime-semantic gap. A focused repair and a new,
uniquely named candidate are required before hardware testing.

This correction supersedes the build notice below; the old results are retained
only as reproducibility evidence.


Historical aggregate build record (withdrawn)

The held qualification branch sp11/ubuntu-qcom-x1e-7.2.y-beta-qualification
at 80ecee88b749 combined the provisional beta with draft PRs #36#39 in
dependency order.

  • clean full ARM64 ubuntu_x1e_defconfig build: passed through modules,
    MODPOST, vmlinux, Image, vmlinuz, and vmlinuz.efi
  • aggregate touched-object W=1 build: passed
  • X1E/OLED, X1P/LCD, and representative non-SP11 DTBs: passed
  • all six changed binding families: passed; only two unrelated pre-existing
    schema warnings remained
  • complete bindeb-pkg: passed with unique kernel release
    7.2.2-sp11beta1
  • image package SHA-256:
    acc6368a15b5fcb4e0eb2059e5c401b14e87a5c2b3178fea73acdeed11f75ee4

The #37/#38 registry overlap was combined without simplifying either feature:
SP11 SAM battery/AC nodes remained omitted, and only the SP11 profile/fan nodes
were added.

These are historical composition and packaging results, not hardware
acceptance. They do not change any PR's draft status or waive any listed device,
non-SP11, userspace, provenance, or contributor-attestation gate.

@ooaklee

ooaklee commented Sep 2, 2026

Copy link
Copy Markdown
Owner Author

Aggregate hardware qualification is tracked in #41 at exact candidate
08249986a3f4efd7e0826c29e830601bfde928ed (tree
da7479fbffe997cdc980a147b4cb929d71253185).

This topic remains draft. A green aggregate build or CI result does not satisfy
its topic-specific hardware, dependency, provenance, or non-SP11 gates. Record
full-system evidence in #41 and link the relevant result back here before this
topic leaves draft state.

PR #41 is a test-only aggregate and must close without merge.

@ooaklee

ooaklee commented Sep 3, 2026

Copy link
Copy Markdown
Owner Author

Provenance audit: all three relift commits have matching Leon author sign-offs and retain their source links/dates. The divider and shared-clock commits also preserve geoca credit with Co-authored-by, but the public source commits do not provide a reusable kernel DCO sign-off. Before upstream submission, obtain geoca’s direct attestation and, if they confirm joint development, convert the credit to kernel-style Co-developed-by immediately followed by their Signed-off-by. Do not synthesize that trailer. This remains a provenance gate in addition to hardware qualification.

Denali uses a 4.8 MHz direct-DMIC rate with the VA path clocked at
19.2 MHz. Validate the sample rate against that clock so the driver
selects DIV4, matching the native Windows programming, instead of DIV2.

Keep the existing calculation on every other machine.

This is based on geoca's Windows-parity analysis in patch 0072.

Link: https://github.com/geocausa/SP11X1e-audio/blob/a1d51ecc7416a905acdad50d31600fff7f28ac1c/patches/0072-ASoC-lpass-va-macro-SP11-match-Windows-DMIC-divider.patch
Link: 58e36b1
Co-authored-by: geoca <272055834+geocausa@users.noreply.github.com>
Signed-off-by: Leon Silcott <leon@boasi.io>
The Surface Pro 11 microphone array feeds the TX macro while the VA
macro owns its direct-DMIC pad clocks. Without a cross-macro clock
request, the TX capture path cannot reproduce the working firmware
sequence.

Add an LPASS-internal DMIC clock broker, register the Denali VA macro as
its provider, and request DMIC1 then DMIC0 from the TX DEC event group.
Validate the exact two-channel Denali route before changing the clocks.

Both the provider and consumer paths are gated by the microsoft,denali
root compatible. Other machines retain the existing VA and TX behavior;
the common broker remains unused on those systems.

This implementation follows geoca's Windows-parity work in patch 0078.

Link: https://github.com/geocausa/SP11X1e-audio/blob/a1d51ecc7416a905acdad50d31600fff7f28ac1c/patches/0078-ASoC-lpass-SP11-share-VA-DMIC-clock-with-TX-capture.patch
Link: 58e36b1
Co-authored-by: geoca <272055834+geocausa@users.noreply.github.com>
Signed-off-by: Leon Silcott <leon@boasi.io>
The Surface Pro 11 exposes its microphone array as two 48 kHz PCM
channels. The existing VA backend covers the voice path but does not
provide the regular TX-macro host capture path.

Add a TX macro link through AudioReach TX_CODEC_DMA_TX_3 and route DMIC0
and DMIC1 through the microphone regulator. Keep the existing VA capture
link available for low-power use and hardware comparison.

Link: ab34e94
Link: 58e36b1
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