]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: SOF: ipc4-control: If there is no data do not send bytes update
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Wed, 17 Dec 2025 14:39:38 +0000 (16:39 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 17 Dec 2025 16:35:44 +0000 (16:35 +0000)
When the bytes control have no data (payload) then there is no need to send
an IPC message as there is nothing to send.

Fixes: a062c8899fed ("ASoC: SOF: ipc4-control: Add support for bytes control get and put")
Cc: stable@vger.kernel.org
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://patch.msgid.link/20251217143945.2667-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc4-control.c

index 976a4794d6100066d9486f894f355d93d7b82f89..0a05f66ec7d92dd5f8b342cf52e875743819383a 100644 (file)
@@ -412,8 +412,16 @@ static int sof_ipc4_set_get_bytes_data(struct snd_sof_dev *sdev,
        int ret = 0;
 
        /* Send the new data to the firmware only if it is powered up */
-       if (set && !pm_runtime_active(sdev->dev))
-               return 0;
+       if (set) {
+               if (!pm_runtime_active(sdev->dev))
+                       return 0;
+
+               if (!data->size) {
+                       dev_dbg(sdev->dev, "%s: No data to be sent.\n",
+                               scontrol->name);
+                       return 0;
+               }
+       }
 
        msg->extension = SOF_IPC4_MOD_EXT_MSG_PARAM_ID(data->type);