ASoC: SOF: Introduce IPC SOF client support
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Thu, 10 Feb 2022 15:05:21 +0000 (17:05 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 10 Feb 2022 15:19:06 +0000 (15:19 +0000)
commit6955d9512d0ea814f1c2761bef7ad7b3cedf4d68
tree4a127dc96c3146554df80f6e71c94ed05bbe3939
parentee8443050b2bf06d80fdd2c78cc25cae2abdedcd
ASoC: SOF: Introduce IPC SOF client support

A client in the SOF (Sound Open Firmware) context is a driver that needs
to communicate with the DSP via IPC messages. The SOF core is responsible
for serializing the IPC messages to the DSP from the different clients.

One example of an SOF client would be an IPC test client that floods the
DSP with test IPC messages to validate if the serialization works as
expected.

Multi-client support will also add the ability to split the existing audio
cards into multiple ones, so as to e.g. to deal with HDMI with a dedicated
client instead of adding HDMI to all cards.

This patch introduces descriptors for SOF client driver and SOF client
device along with APIs for registering and unregistering a SOF client
driver, sending IPCs from a client device and accessing the SOF core
debugfs root entry.

Along with this, add a couple of new members to struct snd_sof_dev that
will be used for maintaining the list of clients.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Co-developed-by: Fred Oh <fred.oh@linux.intel.com>
Signed-off-by: Fred Oh <fred.oh@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/20220210150525.30756-6-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/Kconfig
sound/soc/sof/Makefile
sound/soc/sof/core.c
sound/soc/sof/ipc.c
sound/soc/sof/sof-client.c [new file with mode: 0644]
sound/soc/sof/sof-client.h [new file with mode: 0644]
sound/soc/sof/sof-priv.h