From 42dd0a693267e7d256d9062d51f7ea9d4ab1d64a Mon Sep 17 00:00:00 2001 From: Ranjani Sridharan Date: Thu, 6 Jan 2022 10:21:28 -0800 Subject: [PATCH] codec_adapter: check if more fragments are expected first. Check if more fragments of config data are expected first and return immediately to make the code easier to follow. Signed-off-by: Ranjani Sridharan --- src/audio/codec_adapter/codec_adapter.c | 78 ++++++++++++------------- 1 file changed, 36 insertions(+), 42 deletions(-) diff --git a/src/audio/codec_adapter/codec_adapter.c b/src/audio/codec_adapter/codec_adapter.c index d1c49e177..811b4b75b 100644 --- a/src/audio/codec_adapter/codec_adapter.c +++ b/src/audio/codec_adapter/codec_adapter.c @@ -521,51 +521,45 @@ static int codec_adapter_set_params(struct comp_dev *dev, struct sof_ipc_ctrl_da ret = memcpy_s(dst, size - offset, src, cdata->num_elems); assert(!ret); - /* Config has been copied now we can load & apply it depending on - * codec state. - */ - if (!cdata->elems_remaining) { - switch (type) { - case MODULE_CFG_SETUP: - ret = load_setup_config(dev, md->runtime_params, size); - if (ret) - comp_err(dev, "codec_adapter_set_params(): error %d: load of setup config failed.", - ret); - else - comp_dbg(dev, "codec_adapter_set_params() load of setup config done."); + /* return as more fragments of config data expected */ + if (cdata->elems_remaining) + return 0; - break; - case MODULE_CFG_RUNTIME: - ret = module_load_config(dev, md->runtime_params, size, MODULE_CFG_RUNTIME); - if (ret) { - comp_err(dev, "codec_adapter_set_params() error %d: load of runtime config failed.", - ret); - break; - } - - comp_dbg(dev, "codec_adapter_set_params() load of runtime config done."); - - if (md->state >= MODULE_INITIALIZED) { - /* We are already prepared so we can apply runtime - * config right away. - */ - ret = module_apply_runtime_config(dev); - if (ret) - comp_err(dev, "codec_adapter_set_params() error %x: codec runtime config apply failed", - ret); - else - comp_dbg(dev, "codec_adapter_set_params() apply of runtime config done."); - } else { - mod->priv.r_cfg.avail = true; - } - - break; - default: - comp_err(dev, "codec_adapter_set_params(): error: unknown config type."); + /* config fully copied, now load it */ + switch (type) { + case MODULE_CFG_SETUP: + ret = load_setup_config(dev, md->runtime_params, size); + if (ret) + comp_err(dev, "codec_adapter_set_params(): error %d: load of setup config failed.", + ret); + else + comp_dbg(dev, "codec_adapter_set_params() load of setup config done."); + break; + case MODULE_CFG_RUNTIME: + ret = module_load_config(dev, md->runtime_params, size, MODULE_CFG_RUNTIME); + if (ret) { + comp_err(dev, "codec_adapter_set_params() error %d: load of runtime config failed.", + ret); break; } - } else { - return 0; + + comp_dbg(dev, "codec_adapter_set_params() load of runtime config done."); + + /* And apply it right away if codec is already prepared */ + if (md->state >= MODULE_INITIALIZED) { + ret = module_apply_runtime_config(dev); + if (ret) + comp_err(dev, "codec_adapter_set_params() error %x: codec runtime config apply failed", + ret); + else + comp_dbg(dev, "codec_adapter_set_params() apply of runtime config done."); + } else { + mod->priv.r_cfg.avail = true; + } + break; + default: + comp_err(dev, "codec_adapter_set_params(): error: unknown config type."); + break; } if (md->runtime_params)