mbox series

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

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

Message

Cezary Rojewski Feb. 3, 2025, 2:10 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.


Changes in v3:
- fixed compilation under X86=n, found out by IKP
  Note: no users of cpuid() seem to be honoring COMPILE_TEST currently.
  In future I'll try to get rid of ugly #ifdef in tgl.c, but that's not
  in scope of the MBL series
- removed redundant hw_params() op from the pcm3168a board. Not needed
  for MBL where the codec has its own SYSCLK source

Changes in v2:
- added missing MODULE_DESCRIPTION() to avs_pcm3168a


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 | 143 ++++++++++++++
 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             |  33 ++++
 sound/soc/intel/avs/topology.c        |  42 ++++
 sound/soc/intel/avs/topology.h        |  11 +-
 16 files changed, 544 insertions(+), 141 deletions(-)
 create mode 100644 sound/soc/intel/avs/boards/pcm3168a.c

Comments

Mark Brown Feb. 7, 2025, 2:02 p.m. UTC | #1
On Mon, 03 Feb 2025 15:10:40 +0100, Cezary Rojewski wrote:
> 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:
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[01/11] ASoC: codecs: pcm3168a: Add ACPI match table
        commit: dc561ab16d8be9cbe8f07a49a7b2f5428fbcfeea
[02/11] ASoC: codecs: pcm3168a: Relax probing conditions
        commit: e92f042642aed6f6206caace892d9df2d0166841
[03/11] ASoC: codecs: pcm3168a: Allow for 24-bit in provider mode
        commit: 7d92a38d67e5d937b64b20aa4fd14451ee1772f3
[04/11] ASoC: Intel: avs: Add pcm3168a machine board
        commit: 79ebb596201c86712fe38b0ef73d25d07b932664
[05/11] ASoC: Intel: avs: pcm3168a board selection
        commit: b9fb91692af881736f8fa1741fa0dbadf07d99ee
[06/11] ASoC: Intel: avs: Move DSP-boot steps into individual functions
        commit: e995c51903384be1c7aead246dc30cb5244179ac
[07/11] ASoC: Intel: avs: Configure basefw on TGL-based platforms
        commit: cbe37a4d2b3c25d2e2a94097e09b6d87461b8833
[08/11] ASoC: Intel: avs: New gateway configuration mechanism
        commit: f0173cbe7fa79eafbdf32eed32337209f84ddacd
[09/11] ASoC: Intel: avs: Remove unused gateway configuration code
        commit: 320155a61f7fc810a915644e9e2a451bdcea90b1
[10/11] ASoC: Intel: avs: Add WHM module support
        commit: 4343af66b8e1df1d3a2e6f1f8612506cb45b2afd
[11/11] ALSA: hda: Select avs-driver by default on MBL
        commit: 856366dc924a9561dae39f252b45dfd6cc6895ce

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark