Skip to content

qual: combined #295 DSC modeset and #297 native-link audio CI artifact - #298

Draft
chriskearney wants to merge 4 commits into
integration/aurorafrom
qual/hdmi-295-297
Draft

chriskearney wants to merge 4 commits into
integration/aurorafrom
qual/hdmi-295-297

Conversation

@chriskearney

@chriskearney chriskearney commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Qualification build combining #295 and #297 on integration 31748f0. Draft; do not merge. Land the contributor PRs through their normal reviews and merge queue.

The head 3f52284 has exactly the six reviewed file changes. Root Git tree: ccafa7b825cb627bf23bdb0519b89a5e67abcd65.

Build binding: requested-build run 41125129491, CI merge d0112c3 (parents 31748f0 + 3f52284), recipe f98ddedf, key 5d07a6fd3de6ec809869a630054b3dfe, packaging kernel_tree 9d68825546d474558511a5278524871827dda720. Fresh package/KUnit/QEMU-virt boot succeeded. The other normal CI run skipped its heavy jobs; those skips are not this admission.

Tested kernel package: 7.2.11.aurora11-1.8, SHA256 719ad794bb51feb40043494ef6b756cfb765ecd42662179705788f231ffacb3c, kernelrelease 7.2.11-11-1.8-ARCH. No #83/#1889 package was installed. HDMI audio was enabled only by a test-boot command-line parameter.

Physical observations on J516S, built-in HDMI, one directly connected display:

  • A2: 3840×2160@120 Hz with DSC, timing 53/color 88, cold attach and output off/on successful; picture visually confirmed. Zero matches for the declared DCP/DART fault checks. An early SPMI register-select warning was recorded separately and remains unattributed.
  • First B: DCP card/jack and audio-start display re-plug observed, but the job failed and sent no tones due to our sink resolver. Its return-boot AOP failure was retained and recovered with one ordinary known-good reboot.
  • Corrected B2: the unique DCP card/device/PipeWire identity was captured; eight explicitly targeted playbacks and one requested repeat returned success. Tones were heard, without confirming the exact count or cleanliness. The held link used stereo S24_LE/48 kHz; this sink refused a six-channel open. The job remains failed: final unplug occurred after the script's wait expired. Cable disconnection was verified before the return reboot; original audio/protected state were restored and the lease released. A post-play target-label bug was isolated to logging; actual command targeting and return codes were preserved.

Negative-scope observations: M3 Air and Neo completed log-only checks. On J313 M1 Air, no DCP card was created because the booted DT left its SIO DMA disabled; the raw test failure is retained. This is a boot-chain gate, not M1 hardware incapability.

Across four M3 returns after test kernels, two had AOP initialization failures; each recovered after one ordinary known-good reboot. Two ordinary known-good-to-known-good reboots were clean. The latest B2 return was clean. Cause remains unidentified; no attribution or clearance is claimed.

This is HDMI evidence only. HDMI already held links before #297, so these audio observations do not directly qualify its changed USB-C default. No boot-attached DSC, docks, suspend, other-board playback, DT/firmware changes, full-stack packaging or global default-on qualification is claimed. Exact monitor make/model was not captured.

erykwieliczko and others added 4 commits October 30, 2026 19:51
An external mode is set with the display powered down, and the display
is powered up after it. For a mode that needs DSC (3840x2160 at 100 and
120 Hz on the J514S HDMI and Type-C ports) the firmware refuses that mode
set ("Modeset done, but pipe not enabled") and resets DSC, and the
power-on only configures DSC: the timings start in a mode set the
firmware makes on its own, after a hotplug notification it sends itself.
A swap that reaches it before then is dropped ("swallowed swap ID 1 as
timings are not enabled") and never completed, so A407 times out after
5 s and the display stays dark until a reboot. A fresh attach lost that
race 3 times out of 3. Without DSC, the power-on starts the timings
itself.

Set the mode once more after the power-on, with the pipe enabled. The
firmware then starts the timings before that call returns, before the
first swap; its own mode set finds them running. KUnit cases check
the calls of an attach and of a mode change.

Signed-off-by: Eryk Wieliczko <eryk@wieliczko.ninja>
Assisted-by: Claude:claude-opus-5-5
A stereo audio link is held between streams so that the sink does not
mute it on a restart with the same format. The hold_link parameter
limited that to the HDMI port by default (hold_link=1) until the Type-C
ports had been tested with it; hold_link=2 extended it to them and 0
turned it off.

On the J514S, a TV on a Type-C port behaves as it does on the HDMI port:
without the hold, every stream starts a new link with an unchanged
format, the TV mutes it, and USB-C audio stays silent after the first
stream. With hold_link=2 it played across Chromium stop/start, pw-play
runs and a PipeWire restart, and held links survived 90 s idle and
sleep.

Hold the link on every port and drop the parameter. Nothing needs to
turn the hold off, and a parameter that only makes audio go silent is
not worth keeping. Streams of more than two channels still get a link
of their own, as before.

Signed-off-by: Eryk Wieliczko <eryk@wieliczko.ninja>
Assisted-by: Claude:claude-opus-5-5
Qualification branch only. Preserve the contributor commit unchanged.
Qualification branch only. Preserve the contributor commit unchanged.
@chriskearney chriskearney added the ci:build Build, test and boot the kernel for this PR now label Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:build Build, test and boot the kernel for this PR now

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants