diff options
author | Rander Wang <rander.wang@intel.com> | 2021-10-08 12:38:36 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2021-10-08 13:51:16 +0100 |
commit | febf5da81ea80fa01e141e3ad35526865681418b (patch) | |
tree | 99f9bdf5d2dd16443e245e0768ce1674ce48f444 /sound/soc/sof/loader.c | |
parent | c861af7861aac72075046e9932c606c8cfe64427 (diff) | |
download | lwn-febf5da81ea80fa01e141e3ad35526865681418b.tar.gz lwn-febf5da81ea80fa01e141e3ad35526865681418b.zip |
ASoC: SOF: prepare code to allocate IPC messages in fw_ready
The fixed maximum size of IPC message does not allow for large
transfers, e.g. for filter data. Currently such messages will
be divided into smaller pieces and sent to firmware in multiple
chunks. For future IPC, this strategy is not suitable.
The maximum IPC message size is limited by host box size which
can be known when firmware is ready, so the fw_ready callback
can allocate IPC messages with platform-specific sizes instead
of the current fixed-size.
To be compatible with released firmware, current platforms will
still use SOF_IPC_MSG_MAX_SIZE. For future platforms, there will
be a new fw_ready function and the platform-specific allocation
will take place there.
Signed-off-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Bard Liao <bard.liao@intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Message-Id: <20211008093836.28210-1-peter.ujfalusi@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof/loader.c')
-rw-r--r-- | sound/soc/sof/loader.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/soc/sof/loader.c b/sound/soc/sof/loader.c index c0aa9a5d1494..12a1f3c14c5b 100644 --- a/sound/soc/sof/loader.c +++ b/sound/soc/sof/loader.c @@ -13,6 +13,7 @@ #include <linux/firmware.h> #include <sound/sof.h> #include <sound/sof/ext_manifest.h> +#include "sof-priv.h" #include "ops.h" static int get_ext_windows(struct snd_sof_dev *sdev, @@ -517,7 +518,7 @@ int sof_fw_ready(struct snd_sof_dev *sdev, u32 msg_id) sof_get_windows(sdev); - return 0; + return sof_ipc_init_msg_memory(sdev); } EXPORT_SYMBOL(sof_fw_ready); |