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 <ranjani.sridharan@linux.intel.com>
This commit is contained in:
Ranjani Sridharan 2022-01-06 10:21:28 -08:00 committed by Daniel Baluta
parent 6241f50549
commit 42dd0a6932
1 changed files with 36 additions and 42 deletions

View File

@ -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)