alsa-project/alsa-ucm-conf issue #711 was opened from abelic:
## Description
In `ucm2/Intel/sof-hda-dsp/Hdmi.conf`, all three HDMI ports are registered unconditionally using `Condition { Type AlwaysTrue }` with priorities 500, 600 and 700. The laptop Speaker has priority 100 (from `HDA/HiFi-analog.conf`).
This causes PipeWire/WirePlumber to always select HDMI1 as the fallback sink when the default sink becomes unavailable (e.g. Bluetooth speaker suspends), even when no monitor is connected. Audio is silently routed to HDMI1 (RUNNING state with no output) instead of the laptop Speaker.
## Hardware
- Laptop: Huawei RLEFG-XX M1010 - Audio: Intel Raptor Lake-P/U/H cAVS (sof-hda-dsp) - OS: Fedora 43 - PipeWire: 1.4.10 - WirePlumber: 0.5.13
## Steps to reproduce
1. Connect a Bluetooth audio device 2. Play audio — it routes correctly to Bluetooth 3. Disconnect or suspend the Bluetooth device 4. Audio is routed to HDMI1 sink instead of the laptop Speaker
## Observed behavior
`pactl list short sinks` shows HDMI1 as RUNNING while Speaker is SUSPENDED. WirePlumber selects HDMI1 as fallback because its priority (500) is higher than Speaker (100), even though no monitor is connected and HDMI ports are reported as "not available".
## Expected behavior
When HDMI ports are not available (no monitor connected), the Speaker should be selected as the fallback sink.
## Relevant config
`ucm2/Intel/sof-hda-dsp/Hdmi.conf`: ``` If.hdmi1 { Condition { Type AlwaysTrue } # <-- no availability check True.Macro.hdmi1.HDMI { Number 1 Device 3 Priority 500 # higher than Speaker (100) } }
If.hdmi2 { Condition { Type AlwaysTrue } True.Macro.hdmi1.HDMI { Number 2 Device 4 Priority 600 } }
If.hdmi3 { Condition { Type AlwaysTrue } True.Macro.hdmi1.HDMI { Number 3 Device 5 Priority 700 } } ```
`ucm2/HDA/HiFi-analog.conf` (relevant excerpt): ``` Value { PlaybackPriority 100 # Speaker priority — lower than all HDMI ports ... } ```
## Suggested fix
Add availability detection for HDMI ports before assigning high priority, or lower HDMI priority when the port is not available, similar to how Headphones use `JackControl` for availability detection.
Issue URL : https://github.com/alsa-project/alsa-ucm-conf/issues/711 Repository URL: https://github.com/alsa-project/alsa-ucm-conf
participants (1)
-
GitHub issues - opened