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 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011XgGF5wfxLDAybVnNz6eNQ
This commit is contained in:
20
overlay/etc/wireplumber/wireplumber.conf.d/51-c630-alsa.conf
Normal file
20
overlay/etc/wireplumber/wireplumber.conf.d/51-c630-alsa.conf
Normal file
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user