mbox series

[00/16] ASoC: SOF: add INTEL_IPC4 plumbing

Message ID 20220411201727.77971-1-pierre-louis.bossart@linux.intel.com
Headers show
Series ASoC: SOF: add INTEL_IPC4 plumbing | expand

Message

Pierre-Louis Bossart April 11, 2022, 8:17 p.m. UTC
The INTEL_IPC4 protocol and firmware architecture will rely on
different sets of firmware binary and topology files. Some platforms
will only support INTEL_IPC4, some will support both INTEL_IPC4 and
SOF_IPC for development, and some will stay with the existing SOF_IPC.

This patchset adds new IPC definitions, and search paths for firmware
and topology files, along with means to override the default IPC type
and search paths for development. The firmware binary names are
aligned with those used by the Intel AVS driver to avoid duplicate
firmware installs, but the topology will have to differ due to driver
architecture differences.

In addition, this patchset adds basic hardware support for SKL/KBL
with HDaudio codecs, which requires a dedicated code loader and
manifest support. Plain HDAudio was tested on Dell XPS 9350 and Intel
NUC devices. HDAudio+DMIC support was tested on more recent UpExtreme
(WHL and TGL variants).

Pierre-Louis Bossart (12):
  ASoC: SOF: add definitions for different IPC types
  ASoC: SOF: add path indirection to each IPC type
  ASoC: SOF: add default IPC capability and file paths
  ASoC: SOF: add IPC-dependent file names
  ASoC: SOF: sof-pci-dev: add parameter to override firmware filename
  ASoC: SOF: sof-pci-dev: add parameter to override topology filename
  ASoC: SOF: sof-audio: preserve topology filename override in nocodec
    mode
  ASoC: SOF: remove const qualifier for 'struct snd_sof_dsp_ops'
  ASoC: SOF: Intel: hda: use common ops across platforms
  ASoC: SOF: Intel: hda: use BIT() macros for consistency
  ASoC: SOF: Intel: add initial SKL/KBL hardware support
  ASoC: SOF: Intel: add IP identifier

Ranjani Sridharan (4):
  ASoC: SOF: Intel: move HDA_CL_STREAM_FORMAT definition to header
  ASoC: SOF: Intel: hda: define check_ipc_irq op
  ASoC: SOF: Intel: hda: Define rom_status_reg in sof_intel_dsp_desc
  ASoC: SOF: Intel: hda: expose some codeloader functions

 include/sound/sof.h                    |  23 +-
 sound/soc/sof/amd/acp.h                |   2 +-
 sound/soc/sof/amd/pci-rn.c             |  14 +-
 sound/soc/sof/amd/renoir.c             |   2 +-
 sound/soc/sof/core.c                   |   6 +
 sound/soc/sof/debug.c                  |   2 +-
 sound/soc/sof/imx/imx8.c               |  32 +-
 sound/soc/sof/imx/imx8m.c              |  16 +-
 sound/soc/sof/intel/Kconfig            |  24 +
 sound/soc/sof/intel/Makefile           |   6 +-
 sound/soc/sof/intel/apl.c              | 107 +----
 sound/soc/sof/intel/bdw.c              |  17 +-
 sound/soc/sof/intel/byt.c              |  48 +-
 sound/soc/sof/intel/cnl.c              | 112 ++---
 sound/soc/sof/intel/hda-common-ops.c   | 107 +++++
 sound/soc/sof/intel/hda-dsp.c          |   4 +-
 sound/soc/sof/intel/hda-ipc.c          |   8 +
 sound/soc/sof/intel/hda-loader-skl.c   | 583 +++++++++++++++++++++++++
 sound/soc/sof/intel/hda-loader.c       |  43 +-
 sound/soc/sof/intel/hda.c              |  25 +-
 sound/soc/sof/intel/hda.h              |  42 +-
 sound/soc/sof/intel/icl.c              | 111 +----
 sound/soc/sof/intel/pci-apl.c          |  36 +-
 sound/soc/sof/intel/pci-cnl.c          |  54 ++-
 sound/soc/sof/intel/pci-icl.c          |  36 +-
 sound/soc/sof/intel/pci-skl.c          |  89 ++++
 sound/soc/sof/intel/pci-tgl.c          |  91 +++-
 sound/soc/sof/intel/pci-tng.c          |  17 +-
 sound/soc/sof/intel/shim.h             |  16 +-
 sound/soc/sof/intel/skl.c              |  70 +++
 sound/soc/sof/intel/tgl.c              | 120 ++---
 sound/soc/sof/mediatek/mt8195/mt8195.c |  16 +-
 sound/soc/sof/ops.h                    |   8 +
 sound/soc/sof/pcm.c                    |   2 +-
 sound/soc/sof/sof-acpi-dev.c           |   6 +-
 sound/soc/sof/sof-audio.c              |   3 +-
 sound/soc/sof/sof-of-dev.c             |   6 +-
 sound/soc/sof/sof-pci-dev.c            |  47 +-
 38 files changed, 1465 insertions(+), 486 deletions(-)
 create mode 100644 sound/soc/sof/intel/hda-common-ops.c
 create mode 100644 sound/soc/sof/intel/hda-loader-skl.c
 create mode 100644 sound/soc/sof/intel/pci-skl.c
 create mode 100644 sound/soc/sof/intel/skl.c

Comments

Cezary Rojewski April 12, 2022, 4:39 p.m. UTC | #1
On 2022-04-11 10:17 PM, Pierre-Louis Bossart wrote:
> The INTEL_IPC4 protocol and firmware architecture will rely on
> different sets of firmware binary and topology files. Some platforms
> will only support INTEL_IPC4, some will support both INTEL_IPC4 and
> SOF_IPC for development, and some will stay with the existing SOF_IPC.
> 
> This patchset adds new IPC definitions, and search paths for firmware
> and topology files, along with means to override the default IPC type
> and search paths for development. The firmware binary names are
> aligned with those used by the Intel AVS driver to avoid duplicate
> firmware installs, but the topology will have to differ due to driver
> architecture differences.
> 
> In addition, this patchset adds basic hardware support for SKL/KBL
> with HDaudio codecs, which requires a dedicated code loader and
> manifest support. Plain HDAudio was tested on Dell XPS 9350 and Intel
> NUC devices. HDAudio+DMIC support was tested on more recent UpExtreme
> (WHL and TGL variants).
> 
> Pierre-Louis Bossart (12):
>    ASoC: SOF: add definitions for different IPC types
>    ASoC: SOF: add path indirection to each IPC type
>    ASoC: SOF: add default IPC capability and file paths
>    ASoC: SOF: add IPC-dependent file names
>    ASoC: SOF: sof-pci-dev: add parameter to override firmware filename
>    ASoC: SOF: sof-pci-dev: add parameter to override topology filename
>    ASoC: SOF: sof-audio: preserve topology filename override in nocodec
>      mode
>    ASoC: SOF: remove const qualifier for 'struct snd_sof_dsp_ops'
>    ASoC: SOF: Intel: hda: use common ops across platforms
>    ASoC: SOF: Intel: hda: use BIT() macros for consistency
>    ASoC: SOF: Intel: add initial SKL/KBL hardware support
>    ASoC: SOF: Intel: add IP identifier
> 
> Ranjani Sridharan (4):
>    ASoC: SOF: Intel: move HDA_CL_STREAM_FORMAT definition to header
>    ASoC: SOF: Intel: hda: define check_ipc_irq op
>    ASoC: SOF: Intel: hda: Define rom_status_reg in sof_intel_dsp_desc
>    ASoC: SOF: Intel: hda: expose some codeloader functions


Hmm.. I'd have expected this sent as a RFC first, especially the SKL/KBL 
bits. That's because we already have dedicated solution for said 
platforms - avs-driver - and this series seems to be adding support 
while using 1:1 firmware as the mentioned avs-driver. Looks to me as an 
unnecessary maintenance cost increase.

Essentially, patches 14, 15, 16 should not be part of this series. You 
can always have a IPC4 preparation first, and a dedicated topic for 
SKL/KBL later.


Regards,
Czarek