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,10 +521,11 @@ 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); ret = memcpy_s(dst, size - offset, src, cdata->num_elems);
assert(!ret); assert(!ret);
/* Config has been copied now we can load & apply it depending on /* return as more fragments of config data expected */
* codec state. if (cdata->elems_remaining)
*/ return 0;
if (!cdata->elems_remaining) {
/* config fully copied, now load it */
switch (type) { switch (type) {
case MODULE_CFG_SETUP: case MODULE_CFG_SETUP:
ret = load_setup_config(dev, md->runtime_params, size); ret = load_setup_config(dev, md->runtime_params, size);
@ -533,7 +534,6 @@ static int codec_adapter_set_params(struct comp_dev *dev, struct sof_ipc_ctrl_da
ret); ret);
else else
comp_dbg(dev, "codec_adapter_set_params() load of setup config done."); comp_dbg(dev, "codec_adapter_set_params() load of setup config done.");
break; break;
case MODULE_CFG_RUNTIME: case MODULE_CFG_RUNTIME:
ret = module_load_config(dev, md->runtime_params, size, MODULE_CFG_RUNTIME); ret = module_load_config(dev, md->runtime_params, size, MODULE_CFG_RUNTIME);
@ -545,10 +545,8 @@ static int codec_adapter_set_params(struct comp_dev *dev, struct sof_ipc_ctrl_da
comp_dbg(dev, "codec_adapter_set_params() load of runtime config done."); 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) { if (md->state >= MODULE_INITIALIZED) {
/* We are already prepared so we can apply runtime
* config right away.
*/
ret = module_apply_runtime_config(dev); ret = module_apply_runtime_config(dev);
if (ret) if (ret)
comp_err(dev, "codec_adapter_set_params() error %x: codec runtime config apply failed", comp_err(dev, "codec_adapter_set_params() error %x: codec runtime config apply failed",
@ -558,15 +556,11 @@ static int codec_adapter_set_params(struct comp_dev *dev, struct sof_ipc_ctrl_da
} else { } else {
mod->priv.r_cfg.avail = true; mod->priv.r_cfg.avail = true;
} }
break; break;
default: default:
comp_err(dev, "codec_adapter_set_params(): error: unknown config type."); comp_err(dev, "codec_adapter_set_params(): error: unknown config type.");
break; break;
} }
} else {
return 0;
}
if (md->runtime_params) if (md->runtime_params)
rfree(md->runtime_params); rfree(md->runtime_params);