public inbox for alsa-devel@alsa-project.org
 help / color / mirror / Atom feed
From: GitHub issues - opened <github@alsa-project.org>
To: alsa-devel@alsa-project.org
Subject: Intel/sof-hda-dsp/Hdmi.conf: HDMI devices always registered with high priority regardless of availability, causing Speaker to be ignored as fallback sink
Date: Sun,  1 Mar 2026 20:19:43 +0100 (CET)	[thread overview]
Message-ID: <1898cdd7a1519900-webhooks-bot@alsa-project.org> (raw)
In-Reply-To: <1898cdd79986d200-webhooks-bot@alsa-project.org>

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

           reply	other threads:[~2026-03-01 19:22 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <1898cdd79986d200-webhooks-bot@alsa-project.org>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1898cdd7a1519900-webhooks-bot@alsa-project.org \
    --to=github@alsa-project.org \
    --cc=alsa-devel@alsa-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox