From 9a89f4eb809d0a8aedef48c717f25f8743eeeda7 Mon Sep 17 00:00:00 2001 From: Ranjani Sridharan Date: Mon, 10 Jan 2022 14:34:16 -0800 Subject: [PATCH] codec_adapter: fix states before and after processing set the state to MODULE_PROCESSING before starting to process the samples and reset it to MODULE_IDLE afterwards. Signed-off-by: Ranjani Sridharan --- src/audio/codec_adapter/codec/generic.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/audio/codec_adapter/codec/generic.c b/src/audio/codec_adapter/codec/generic.c index 53b5acd48..a69c58e7d 100644 --- a/src/audio/codec_adapter/codec/generic.c +++ b/src/audio/codec_adapter/codec/generic.c @@ -258,21 +258,23 @@ int module_process(struct comp_dev *dev) comp_dbg(dev, "module_process() start"); - if (mod->priv.state != MODULE_IDLE) { + if (md->state != MODULE_IDLE) { comp_err(dev, "module_process(): wrong state of module %x, state %d", mod->ca_config.module_id, md->state); return -EPERM; } + /* set state to processing */ + md->state = MODULE_PROCESSING; + ret = md->ops->process(dev); - if (ret) { + if (ret) comp_err(dev, "module_process() error %d: for module_id %x", ret, module_id); - goto out; - } + else + comp_dbg(dev, "module_process() done"); - comp_dbg(dev, "module_process() done"); -out: + /* reset state to idle */ md->state = MODULE_IDLE; return ret; }