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