Skip to content

Commit 9d94cfb

Browse files
committed
Audio: Multi-band DRC: Same for init()
Signed-off-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
1 parent 1f98fbe commit 9d94cfb

1 file changed

Lines changed: 6 additions & 27 deletions

File tree

src/audio/multiband_drc/multiband_drc.c

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -226,22 +226,10 @@ static int multiband_drc_init(struct processing_module *mod)
226226
{
227227
struct module_data *md = &mod->priv;
228228
struct comp_dev *dev = mod->dev;
229-
struct module_config *cfg = &md->cfg;
230229
struct multiband_drc_comp_data *cd;
231-
size_t bs = cfg->size;
232-
int ret;
233230

234231
comp_info(dev, "entry");
235232

236-
/* Check first before proceeding with dev and cd that coefficients
237-
* blob size is sane.
238-
*/
239-
if (bs > SOF_MULTIBAND_DRC_MAX_BLOB_SIZE) {
240-
comp_err(dev, "error: configuration blob size = %u > %d",
241-
bs, SOF_MULTIBAND_DRC_MAX_BLOB_SIZE);
242-
return -EINVAL;
243-
}
244-
245233
cd = mod_zalloc(mod, sizeof(*cd));
246234
if (!cd)
247235
return -ENOMEM;
@@ -260,24 +248,14 @@ static int multiband_drc_init(struct processing_module *mod)
260248
cd->model_handler = mod_data_blob_handler_new(mod);
261249
if (!cd->model_handler) {
262250
comp_err(dev, "comp_data_blob_handler_new() failed.");
263-
ret = -ENOMEM;
264-
goto cd_fail;
251+
mod_data_blob_handler_free(mod, cd->model_handler);
252+
mod_free(mod, cd);
253+
return -ENOMEM;
265254
}
266255

267-
/* Get configuration data and reset DRC state */
268-
ret = comp_init_data_blob(cd->model_handler, bs, cfg->data);
269-
if (ret < 0) {
270-
comp_err(dev, "comp_init_data_blob() failed.");
271-
goto cd_fail;
272-
}
273256
multiband_drc_reset_state(mod, &cd->state);
274257

275258
return 0;
276-
277-
cd_fail:
278-
mod_data_blob_handler_free(mod, cd->model_handler);
279-
mod_free(mod, cd);
280-
return ret;
281259
}
282260

283261
__cold static int multiband_drc_free(struct processing_module *mod)
@@ -365,6 +343,7 @@ static int multiband_drc_prepare(struct processing_module *mod,
365343
struct multiband_drc_comp_data *cd = module_get_private_data(mod);
366344
struct comp_dev *dev = mod->dev;
367345
struct comp_buffer *sourceb;
346+
size_t data_size;
368347
int channels;
369348
int rate;
370349
int ret = 0;
@@ -390,8 +369,8 @@ static int multiband_drc_prepare(struct processing_module *mod,
390369
/* Initialize DRC */
391370
comp_dbg(dev, "source_format=%d, sink_format=%d",
392371
cd->source_format, cd->source_format);
393-
cd->config = comp_get_data_blob(cd->model_handler, NULL, NULL);
394-
if (cd->config) {
372+
cd->config = comp_get_data_blob(cd->model_handler, &data_size, NULL);
373+
if (cd->config && data_size > 0) {
395374
ret = multiband_drc_setup(mod, channels, rate);
396375
if (ret < 0) {
397376
comp_err(dev, "error: multiband_drc_setup failed.");

0 commit comments

Comments
 (0)