ASoC: SOF: topology: Make control parsing IPC agnostic
authorRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Mon, 14 Mar 2022 20:05:18 +0000 (13:05 -0700)
committerMark Brown <broonie@kernel.org>
Wed, 16 Mar 2022 16:39:11 +0000 (16:39 +0000)
commitb5cee8feb1d482a9d07b677f4f2f9565bacda53e
tree89897c6b905f0cf558e9ecef80150ecbb3caf6f7
parent909dadf21aae8f7e604973218907ed39e10499e6
ASoC: SOF: topology: Make control parsing IPC agnostic

Make the control parser in topology IPC agnostic by introducing 2 new
topology IPC ops, control_setup and control_free. These ops handle
setting up/freeing the control data in the IPC format based on the IPC
version.

Along with this, modify the struct snd_sof_control to remove the
IPC-specific field, control_data and replace it with the void pointer to
ipc_control_data. Also, add a few new fields to store all the
information parsed from topology.

Finally, define and set the control setup/free ops for IPC3.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20220314200520.1233427-18-ranjani.sridharan@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/control.c
sound/soc/sof/ipc.c
sound/soc/sof/ipc3-topology.c
sound/soc/sof/sof-audio.h
sound/soc/sof/topology.c