From 9b28150c86a4ab19f9e61f285b73311562762f54 Mon Sep 17 00:00:00 2001 From: rob thijssen Date: Tue, 28 Jul 2026 12:02:19 +0300 Subject: [PATCH] Pin the built-in card to S16_LE for PipeWire The ADSP front-end advertises S24_LE and then garbles it: playback runs without an error, consumes data at rate, powers every DAPM widget, and produces ~-48 dB of near-silence. PipeWire prefers the widest advertised format, so every PipeWire client was inaudible while aplay and speaker-test, which default to S16_LE, worked. One wireplumber rule pins the format until the q6asm handling is fixed. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_011XgGF5wfxLDAybVnNz6eNQ --- .../wireplumber.conf.d/51-c630-alsa.conf | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 overlay/etc/wireplumber/wireplumber.conf.d/51-c630-alsa.conf diff --git a/overlay/etc/wireplumber/wireplumber.conf.d/51-c630-alsa.conf b/overlay/etc/wireplumber/wireplumber.conf.d/51-c630-alsa.conf new file mode 100644 index 0000000..3ec258b --- /dev/null +++ b/overlay/etc/wireplumber/wireplumber.conf.d/51-c630-alsa.conf @@ -0,0 +1,20 @@ +# The sdm845 ADSP front-end advertises S24_LE (24-bit samples in 32-bit +# containers) and then garbles it — playback runs without a single error, +# consumes data at the right rate, powers every DAPM widget, and produces +# roughly -48 dB of near-silence. PipeWire prefers the widest format a device +# offers, so out of the box every PipeWire client is inaudible while +# aplay/speaker-test, which default to S16_LE, work fine. +# +# Pin the built-in card to S16_LE until the q6asm format handling is fixed. +monitor.alsa.rules = [ + { + matches = [ + { node.name = "~alsa_output.platform-sound.*" } + ] + actions = { + update-props = { + audio.format = "S16LE" + } + } + } +]