|
|
Log in / Subscribe / Register

ALSA: Consolidate CEA channel allocation data

From:  Cássio Gabriel <cassiogabrielcontato-AT-gmail.com>
To:  Takashi Iwai <tiwai-AT-suse.com>, Thierry Reding <thierry.reding-AT-kernel.org>, Jonathan Hunter <jonathanh-AT-nvidia.com>, Jaroslav Kysela <perex-AT-perex.cz>
Subject:  [PATCH RFC 0/4] ALSA: Consolidate CEA channel allocation data
Date:  Fri, 12 Jun 2026 01:53:22 -0300
Message-ID:  <20260612-alsa-cea-channel-allocation-v1-0-b1bcbb6b1051@gmail.com>
Cc:  linux-sound-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, linux-tegra-AT-vger.kernel.org, notify-AT-kernel.org, Cássio Gabriel <cassiogabrielcontato-AT-gmail.com>
Archive-link:  Article

HDA HDMI and Intel HDMI LPE maintain separate copies of the ordered
CEA-861 channel allocation descriptors, ELD speaker expansion, and
allocation selection logic. The Intel implementation originated from
the HDA code, but the copies now differ in supported allocation ranges
and fallback behavior.

Move the common data and transformations alongside the PCM DRM ELD
helpers, then migrate both users while preserving their established
behavior. HDA retains the complete CA range and channel-count fallback.
Intel HDMI LPE retains its CA 0x1f limit, ELD speaker bits 0 through 6,
and lack of fallback for incompatible ELD data.

The descriptors and their derived channel counts and speaker masks
become compile-time constants. This removes duplicated mutable
initialization and provides one authoritative allocation table without
changing the existing allocation-selection policy.

No hardware was available to test this patch series.

Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
---
Cássio Gabriel (4):
      ALSA: pcm: Add common CEA channel allocation helpers
      ALSA: hda: Make CEA channel allocation interfaces const
      ALSA: hda: Use common CEA channel allocations
      ALSA: x86: Use common CEA channel allocations

 include/sound/hda_chmap.h         |  15 +--
 include/sound/pcm_drm_eld.h       |  16 +++
 sound/core/pcm_drm_eld.c          | 181 +++++++++++++++++++++++++++
 sound/hda/codecs/hdmi/atihdmi.c   |   6 +-
 sound/hda/codecs/hdmi/nvhdmi.c    |   2 +-
 sound/hda/codecs/hdmi/tegrahdmi.c |   2 +-
 sound/hda/core/Kconfig            |   1 +
 sound/hda/core/hdmi_chmap.c       | 252 +++++++-------------------------------
 sound/x86/Kconfig                 |   1 +
 sound/x86/intel_hdmi_audio.c      | 158 +++---------------------
 sound/x86/intel_hdmi_audio.h      |   9 --
 11 files changed, 271 insertions(+), 372 deletions(-)
---
base-commit: 0f6f60115bfc536c1935d3d0da66cf1d5c7d6055




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds