From a4cfdebdfe62e276f7626eb55b859fe16dcc28ef Mon Sep 17 00:00:00 2001 From: Ranjani Sridharan Date: Wed, 11 May 2022 10:16:48 -0700 Subject: ASoC: SOF: Intel: HDA: Set up sof_ipc4_fw_data for IPC4 Allocate the sof_ipc4_fw_data struct for IPC4 and set the fw header offset for the platforms which will be used by the core when loading the firmware image. The core expects that the "private" field in struct snd_sof_dev (which is unused today with IPC3) is used to save this data. Signed-off-by: Ranjani Sridharan Reviewed-by: Bard Liao Reviewed-by: Rander Wang Reviewed-by: Pierre-Louis Bossart Link: https://lore.kernel.org/r/20220511171648.1622993-6-ranjani.sridharan@linux.intel.com Signed-off-by: Mark Brown --- sound/soc/sof/intel/tgl.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'sound/soc/sof/intel/tgl.c') diff --git a/sound/soc/sof/intel/tgl.c b/sound/soc/sof/intel/tgl.c index c93526591a91..1ddc492f1b13 100644 --- a/sound/soc/sof/intel/tgl.c +++ b/sound/soc/sof/intel/tgl.c @@ -9,6 +9,8 @@ * Hardware interface for audio DSP on Tigerlake. */ +#include +#include "../ipc4-priv.h" #include "../ops.h" #include "hda.h" #include "hda-ipc.h" @@ -79,6 +81,15 @@ int sof_tgl_ops_init(struct snd_sof_dev *sdev) } if (sdev->pdata->ipc_type == SOF_INTEL_IPC4) { + struct sof_ipc4_fw_data *ipc4_data; + + sdev->private = devm_kzalloc(sdev->dev, sizeof(*ipc4_data), GFP_KERNEL); + if (!sdev->private) + return -ENOMEM; + + ipc4_data = sdev->private; + ipc4_data->manifest_fw_hdr_offset = SOF_MAN4_FW_HDR_OFFSET; + /* doorbell */ sof_tgl_ops.irq_thread = cnl_ipc4_irq_thread; -- cgit