mbox series

[00/11] ASoC: Intel: avs: Add support for MalibouLake configuration

Message ID 20250122175426.1369059-1-cezary.rojewski@intel.com (mailing list archive)
Headers show
Series ASoC: Intel: avs: Add support for MalibouLake configuration | expand

Message

Cezary Rojewski Jan. 22, 2025, 5:54 p.m. UTC
The avs-driver is the go-to driver for Intel Automotive. MalibouLake
(MBL) and RedondoLake (RDL) are representatives of the project. These
inherit majority of the featureset from RaptorLake-M (RPL-M) and
AlderLake-N (ADL-N) respectively. The onboard codec for these is TI's
pcm3168a.

In summary, the patchset:

- modifies existing pcm3168a.c to be x86/ACPI friendly
- updates the DSP firmware booting sequence for cAVS 2.5 platforms to
  improve its behaviour on some specific revisions/steppings of the
  hardware
- adds new machine board driver, avs_pcm3168a
- adds selector entry for RPL-M devices in intel-dspcfg

While there 'ALSA: hda:' patch within the list, I'd prefer the patchset
to go through Mark's tree to avoid conflicts with follow ups to this
one.


Longer version:

Currently the pcm3168a is supported on ARM/DT (ti/j721e-evm.c being the
only user). To make it x86/ACPI friendly, add relevant ACPI-match table
and relax driver's probing conditions.
The default format is 2ch, 24-bits, 48000kHz. As per specification,
24-bits are supported by the chip and it works in production in contrary
to what the existing code suggests. A fix is provided to align the code
with the spec.

Now, a single DSP firmware binary covers a wide range of platforms - a
single one covers AlderLake, RaptorLake and all their derevatires except
for AlderLake-N based due to MEU differences. While most of the hardware
capabilities are read by the firmware during runtime, some information is
not accessible from the DSP level. Provide the HDAudio controller
revision/stepping information to the firmware to address that.

With that done, expand number of modules supported with WovHostModule
(WHM). WHM is a processing module which is tailored for ultra-low-power
scenarios. From software perspective, as most of its config is similar
to the Copier module, code reuse is advised. To make the reuse possible,
existing gateway configuration code is refactor - not only to add
support for WHM but also make it easier to understand. Multiple smaller
functions instead of all-in-one one.


Amadeusz Sławiński (1):
  ASoC: Intel: avs: Configure basefw on TGL-based platforms

Cezary Rojewski (10):
  ASoC: codecs: pcm3168a: Add ACPI match table
  ASoC: codecs: pcm3168a: Relax probing conditions
  ASoC: codecs: pcm3168a: Allow for 24-bit in provider mode
  ASoC: Intel: avs: Add pcm3168a machine board
  ASoC: Intel: avs: pcm3168a board selection
  ASoC: Intel: avs: Move DSP-boot steps into individual functions
  ASoC: Intel: avs: New gateway configuration mechanism
  ASoC: Intel: avs: Remove unused gateway configuration code
  ASoC: Intel: avs: Add WHM module support
  ALSA: hda: Select avs-driver by default on MBL

 include/uapi/sound/intel/avs/tokens.h |   7 +
 sound/hda/intel-dsp-config.c          |   4 +
 sound/soc/codecs/pcm3168a-i2c.c       |   9 +
 sound/soc/codecs/pcm3168a.c           |  11 +-
 sound/soc/intel/avs/avs.h             |   1 +
 sound/soc/intel/avs/board_selection.c |  17 +-
 sound/soc/intel/avs/boards/Kconfig    |  10 +
 sound/soc/intel/avs/boards/Makefile   |   2 +
 sound/soc/intel/avs/boards/pcm3168a.c | 162 +++++++++++++++
 sound/soc/intel/avs/loader.c          |  64 ++++--
 sound/soc/intel/avs/messages.c        |  38 ++++
 sound/soc/intel/avs/messages.h        |  22 +++
 sound/soc/intel/avs/path.c            | 271 +++++++++++++++-----------
 sound/soc/intel/avs/tgl.c             |  31 +++
 sound/soc/intel/avs/topology.c        |  42 ++++
 sound/soc/intel/avs/topology.h        |  11 +-
 16 files changed, 561 insertions(+), 141 deletions(-)
 create mode 100644 sound/soc/intel/avs/boards/pcm3168a.c