All of lore.kernel.org
 help / color / mirror / Atom feed
From: GitHub pull_request - opened <github@alsa-project.org>
To: alsa-devel@alsa-project.org
Subject: ucm2: Intel: avs: Add UCM for renamed AVS HD-Audio, DMIC and HDMI
Date: Sat, 10 Oct 2026 14:22:02 +0200 (CEST)	[thread overview]
Message-ID: <18dd2a76d52c4900-webhooks-bot@alsa-project.org> (raw)
In-Reply-To: <alsa-project/alsa-ucm-conf/pr/871@alsa-project.org>

alsa-project/alsa-ucm-conf pull request #871 was opened from archerallstars:

Add UCM for the renamed Intel AVS cards so PipeWire ACP can load HiFi on Kaby Lake machines that no longer use the old `hdaudioB0D2` / DMI long names.

## Hardware (live-tested)

| | |
| --- | --- |
| Machine | Acer Swift SF514-52T (DMI `Carlsberg_KL`) |
| CPU | Intel Core i5-8250U (Kaby Lake-U) |
| PCI audio | `8086:9d71` subsystem `1025:1225` |
| Codec | Realtek ALC255 (`0x10ec0255` / `0x10251225`) |
| HDMI codec | Intel Kabylake HDMI (`0x8086280b`) |
| Driver | `snd_soc_avs` (default `dsp_driver=0`) |
| Kernel | `7.2.9-200.fc44.x86_64` (Fedora Silverblue 44) |

```
 0 [DMIC    ]: avs_dmic    - AVS DMIC
 1 [PROBE   ]: avs_probe_mb - AVS PROBE
 2 [HDAudio ]: avs_hdaudio - AVS HD-Audio
 3 [HDMI    ]: avs_hdaudio - AVS HDMI
```

Playback: `hw:HDAudio,0` (analog), `hw:HDMI,0/1/2` (HDMI1/2/3).  
Capture: `hw:DMIC,0` (internal array), `hw:HDAudio,0` (analog headset).

## What this adds

Lookups:

- `ucm2/conf.d/avs_hdaudio/AVS HD-Audio.conf`
- `ucm2/conf.d/avs_hdaudio/AVS HDMI.conf`
- `ucm2/conf.d/avs_dmic/AVS DMIC.conf`

Profiles:

- **AVS HD-Audio** — `HDA/HiFi-analog.conf` for Speaker / Headphones. Extra `Headset` device on `pcm0c` when `Front Headphone Jack` exists. Analog capture has no `Capture Switch` on this BIOS (mic pins left N/A); topology still exposes `HDAudio Analog`. Format is 24-bit left-justified in `S32_LE`.
- **AVS DMIC** — PCM device 0 (after the card rename), `CaptureChannels 2`, `CaptureRate 48000`, `cset 'DMIC Volume' 100%` (the control boots at 0 / digital silence).
- **AVS HDMI** — three converters, `Number` 1/2/3 with `Device` 0/1/2. `codecs/hda/hdmi.conf` programs `IEC958 Playback Switch` at `index = Number - 1`, so `Number` is 1-based. `Number 0` yields index `-1`. Jack names on this SKU are `HDMI/DP Jack`, `HDMI/DP,pcm=1 Jack`, `HDMI/DP,pcm=2 Jack`.

Old `hdaudioB0D2` / `DMIC-2ch` / DMI long-name files are left in place.

## Proven on this chassis

| Path | Result |
| --- | --- |
| Internal speakers | playback works |
| 3.5 mm 2-ring headphones | playback works |
| 3.5 mm 3-ring CTIA headset mic | capture works on **Headset Microphone** |
| Internal AVS DMIC | capture works |
| HDMI / DisplayPort | playback works |

A 2-ring analog **microphone** on this combo jack is not compatible (pin `0x21` is OUT-only / `NO_HP_MIC`; the same plug is also silent on a Galaxy A25).

Analog headset **pins** still need a kernel quirk or userspace HDA hwdep verbs. AVS logs PCI SSID `1025:0000`, so `ALC255_FIXUP_ACER_HEADSET_MIC` never runs. This PR only binds the analog capture PCM and jack. The out-of-tree layer that programs CTIA (`0x45=0xd489`) and pin `0x19` IN+VREF_80 lives in https://github.com/archerallstars/acer-swift-sf514-52t (`scripts-audio-fix`). WirePlumber capture `Mult` boosts are also out of scope here.

## Relation to #571

[#571](https://github.com/alsa-project/alsa-ucm-conf/pull/571) is the generic Intel AVS renamed-card set (including I2S codecs). This PR is the HD-Audio + DMIC + HDMI subset that is live on ALC255, with three deltas from that branch:

1. HDMI `Number` is 1-based (`1/2/3` with `Device` `0/1/2`). #571 uses `Number 0` for PCM 0.
2. DMIC sets `CaptureChannels 2`. ACP assumes stereo when the count is omitted and fails with `EINVAL` on a 4-channel array ([comment on #571](https://github.com/alsa-project/alsa-ucm-conf/pull/571#issuecomment-5608938568)). This NHLT is stereo.
3. Headset analog capture device, because `HiFi-mic.conf` is skipped without `Capture Switch`.

This PR does not add the I2S codec UCMs from #571.

The kernel still exposes three cards. PipeWire ACP profiles each card. A combined/linked UCM (one logical onboard device) is the open design point on #571; these files match the split that works with current ACP on this laptop.

## References

- https://bugzilla.kernel.org/show_bug.cgi?id=219654
- https://bugzilla.suse.com/show_bug.cgi?id=1213187 (3-ring CTIA headset mic on this codec under `snd-hda-intel`)
- Full `alsa-info.sh` dump follows in a comment for the UCM validator.

Signed-off-by: Archer Allstars <archerallstars@proton.me>

Request URL   : https://github.com/alsa-project/alsa-ucm-conf/pull/871
Patch URL     : https://github.com/alsa-project/alsa-ucm-conf/pull/871.patch
Repository URL: https://github.com/alsa-project/alsa-ucm-conf

           reply	other threads:[~2026-10-10 12:22 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <alsa-project/alsa-ucm-conf/pr/871@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=18dd2a76d52c4900-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.