[PATCH 0/9] ASoC: SOF: IPC client infrastructure

From: Peter Ujfalusi
Date: Thu Feb 10 2022 - 05:55:27 EST


Hi,

The Linux SOF implementation is historically monolithic in a sense that all
features accessible in the firmware can be used via the snd_sof_dev struct in
one way or another.

Support for features can not be added or removed runtime and with the current
way of things it is hard if not impossible to implement support for dynamic
feature support when based on the firmware manifest we can easily enable/access
independent modules with the SOF.

In order to be able to support such modularity this series introduces a small
framework within SOF for client support using the Auxiliary bus.

Client drivers can be removed runtime and later re-loaded if needed without
affecting the core's behaviour, but it is the core's and the platform's duty
to create the Auxiliary devices usable in the platform and via the firmware.

There is still a need for SOF manifest update to convey information about
features to really make the full dynamic client device creation.

The series will introduce the core SOF client support and converts the generic
ipc flood test, ipc message injector and the probes (Intel HDA only) to a client
driver.

Regards,
Peter
---
Peter Ujfalusi (8):
ASoC: SOF: Drop unused DSP power states: D3_HOT and D3_COLD
ASoC: SOF: Move the definition of enum sof_dsp_power_states to global
header
ASoC: SOF: ipc: Read and pass the whole message to handlers for IPC
events
ASoC: SOF: Split up utils.c into sof-utils and iomem-utils
ASoC: SOF: Introduce IPC SOF client support
ASoC: SOF: sof-client: Add support for clients not managed by pm
framework
ASoC: SOF: Convert the generic IPC message injector into SOF client
ASoC: SOF: Convert the generic probe support to SOF client

Ranjani Sridharan (1):
ASoC: SOF: Convert the generic IPC flood test into SOF client

include/sound/sof.h | 8 +
sound/soc/sof/Kconfig | 33 +-
sound/soc/sof/Makefile | 15 +-
sound/soc/sof/core.c | 50 +-
sound/soc/sof/debug.c | 565 --------------
sound/soc/sof/intel/Kconfig | 19 +-
sound/soc/sof/intel/apl.c | 13 +-
sound/soc/sof/intel/cnl.c | 13 +-
sound/soc/sof/intel/hda-dai.c | 19 -
sound/soc/sof/intel/hda-dsp.c | 6 -
sound/soc/sof/intel/hda-probes.c | 72 +-
sound/soc/sof/intel/hda.c | 10 +
sound/soc/sof/intel/hda.h | 49 +-
sound/soc/sof/intel/icl.c | 13 +-
sound/soc/sof/intel/tgl.c | 13 +-
sound/soc/sof/{utils.c => iomem-utils.c} | 61 +-
sound/soc/sof/ipc.c | 88 ++-
sound/soc/sof/ops.h | 43 -
sound/soc/sof/pcm.c | 7 +-
sound/soc/sof/pm.c | 13 +-
sound/soc/sof/sof-client-ipc-flood-test.c | 396 ++++++++++
sound/soc/sof/sof-client-ipc-msg-injector.c | 192 +++++
sound/soc/sof/sof-client-probes.c | 821 ++++++++++++++++++++
sound/soc/sof/sof-client-probes.h | 31 +
sound/soc/sof/sof-client.c | 469 +++++++++++
sound/soc/sof/sof-client.h | 67 ++
sound/soc/sof/sof-priv.h | 139 ++--
sound/soc/sof/sof-probes.c | 364 ---------
sound/soc/sof/sof-probes.h | 38 -
sound/soc/sof/sof-utils.c | 77 ++
sound/soc/sof/sof-utils.h | 19 +
sound/soc/sof/trace.c | 1 +
32 files changed, 2415 insertions(+), 1309 deletions(-)
rename sound/soc/sof/{utils.c => iomem-utils.c} (59%)
create mode 100644 sound/soc/sof/sof-client-ipc-flood-test.c
create mode 100644 sound/soc/sof/sof-client-ipc-msg-injector.c
create mode 100644 sound/soc/sof/sof-client-probes.c
create mode 100644 sound/soc/sof/sof-client-probes.h
create mode 100644 sound/soc/sof/sof-client.c
create mode 100644 sound/soc/sof/sof-client.h
delete mode 100644 sound/soc/sof/sof-probes.c
delete mode 100644 sound/soc/sof/sof-probes.h
create mode 100644 sound/soc/sof/sof-utils.c
create mode 100644 sound/soc/sof/sof-utils.h

--
2.35.1