Skip to content

Commit 2cdf3e8

Browse files
committed
Revert "module_adapter: Count sinks/sources during bind"
This reverts commit ba3e73f. This breaks IPC3 API because not function updates the num_sources and num_sinks for IPC3. Thus any processing pipeline using module adapter will fail with: [00:00:00.003,212] <err> module_adapter: comp:1.1 no source and sink buffers connected!
1 parent 83b71da commit 2cdf3e8

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/audio/module_adapter/module/generic.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -723,11 +723,9 @@ int module_bind(struct processing_module *mod, struct bind_info *bind_data)
723723
switch (bind_data->bind_type) {
724724
case COMP_BIND_TYPE_SINK:
725725
ret = sink_bind(bind_data->sink, mod);
726-
mod->num_of_sinks++;
727726
break;
728727
case COMP_BIND_TYPE_SOURCE:
729728
ret = source_bind(bind_data->source, mod);
730-
mod->num_of_sources++;
731729
break;
732730
default:
733731
ret = -EINVAL;
@@ -749,11 +747,9 @@ int module_unbind(struct processing_module *mod, struct bind_info *unbind_data)
749747
switch (unbind_data->bind_type) {
750748
case COMP_BIND_TYPE_SINK:
751749
ret = sink_unbind(unbind_data->sink);
752-
mod->num_of_sinks--;
753750
break;
754751
case COMP_BIND_TYPE_SOURCE:
755752
ret = source_unbind(unbind_data->source);
756-
mod->num_of_sources--;
757753
break;
758754
default:
759755
ret = -EINVAL;

src/audio/module_adapter/module_adapter.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,16 @@ int module_adapter_prepare(struct comp_dev *dev)
313313
if (IS_PROCESSING_MODE_SINK_SOURCE(mod))
314314
return 0;
315315

316+
/* compute number of input buffers */
317+
mod->num_of_sources = 0;
318+
list_for_item(blist, &dev->bsource_list)
319+
mod->num_of_sources++;
320+
321+
/* compute number of output buffers */
322+
mod->num_of_sinks = 0;
323+
list_for_item(blist, &dev->bsink_list)
324+
mod->num_of_sinks++;
325+
316326
if (!mod->num_of_sources && !mod->num_of_sinks) {
317327
comp_err(dev, "no source and sink buffers connected!");
318328
return -EINVAL;
@@ -1212,6 +1222,9 @@ int module_adapter_reset(struct comp_dev *dev)
12121222
if (IS_PROCESSING_MODE_RAW_DATA(mod) || IS_PROCESSING_MODE_AUDIO_STREAM(mod)) {
12131223
rfree(mod->output_buffers);
12141224
rfree(mod->input_buffers);
1225+
1226+
mod->num_of_sources = 0;
1227+
mod->num_of_sinks = 0;
12151228
}
12161229

12171230
mod->total_data_consumed = 0;

0 commit comments

Comments
 (0)