ASoC: SOF: sof-client-probes: Query the maximum IPC payload size
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Fri, 6 May 2022 13:26:42 +0000 (16:26 +0300)
committerMark Brown <broonie@kernel.org>
Mon, 9 May 2022 17:17:57 +0000 (18:17 +0100)
Instead of using the SOF_IPC_MSG_MAX_SIZE as the maximum payload size for
and IPC message, use the provided API to query it.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20220506132647.18690-4-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/sof-client-probes.c

index c4c6e03..34e6bd3 100644 (file)
@@ -132,6 +132,7 @@ static int sof_probes_deinit(struct sof_client_dev *cdev)
 static int sof_probes_info(struct sof_client_dev *cdev, unsigned int cmd,
                           void **params, size_t *num_params)
 {
+       size_t max_msg_size = sof_client_get_ipc_max_payload_size(cdev);
        struct sof_ipc_probe_info_params msg = {{{0}}};
        struct sof_ipc_probe_info_params *reply;
        size_t bytes;
@@ -140,13 +141,13 @@ static int sof_probes_info(struct sof_client_dev *cdev, unsigned int cmd,
        *params = NULL;
        *num_params = 0;
 
-       reply = kzalloc(SOF_IPC_MSG_MAX_SIZE, GFP_KERNEL);
+       reply = kzalloc(max_msg_size, GFP_KERNEL);
        if (!reply)
                return -ENOMEM;
        msg.rhdr.hdr.size = sizeof(msg);
        msg.rhdr.hdr.cmd = SOF_IPC_GLB_PROBE | cmd;
 
-       ret = sof_client_ipc_tx_message(cdev, &msg, reply, SOF_IPC_MSG_MAX_SIZE);
+       ret = sof_client_ipc_tx_message(cdev, &msg, reply, max_msg_size);
        if (ret < 0 || reply->rhdr.error < 0)
                goto exit;