ASoC: SOF: ipc: Do not allocate buffer for msg_data
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Fri, 28 Jan 2022 13:36:20 +0000 (15:36 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 28 Jan 2022 15:59:39 +0000 (15:59 +0000)
The sof_ipc_tx_message does not have support for async operations.
There is no need to allocate a buffer and copy each message to it to be
sent to the DSP, we can use the passed message data pointer directly.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20220128133620.9411-4-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc.c

index ec51daed8b31c7c2d981686b9c6a8550acc2dfe9..16a0d7a059f3667299e32daaa2834074edab3fdb 100644 (file)
@@ -321,7 +321,7 @@ static int sof_ipc_tx_message_unlocked(struct snd_sof_ipc *ipc,
        msg = &ipc->msg;
 
        /* attach message data */
-       memcpy(msg->msg_data, msg_data, msg_bytes);
+       msg->msg_data = msg_data;
        msg->msg_size = msg_bytes;
 
        msg->reply_size = reply_bytes;
@@ -1003,9 +1003,6 @@ int sof_ipc_init_msg_memory(struct snd_sof_dev *sdev)
        struct snd_sof_ipc_msg *msg;
 
        msg = &sdev->ipc->msg;
-       msg->msg_data = devm_kzalloc(sdev->dev, SOF_IPC_MSG_MAX_SIZE, GFP_KERNEL);
-       if (!msg->msg_data)
-               return -ENOMEM;
 
        msg->reply_data = devm_kzalloc(sdev->dev, SOF_IPC_MSG_MAX_SIZE, GFP_KERNEL);
        if (!msg->reply_data)