diff --git a/src/audio/module_adapter/module_adapter_ipc4.c b/src/audio/module_adapter/module_adapter_ipc4.c index 57b918b20f86..d22ac68b4c3b 100644 --- a/src/audio/module_adapter/module_adapter_ipc4.c +++ b/src/audio/module_adapter/module_adapter_ipc4.c @@ -187,11 +187,13 @@ int module_adapter_init_data(struct comp_dev *dev, } } - /* Assume legacy API if module data was not found in ext_init payload */ - if (!config->ipc_extended_init || !dst->ext_data->module_data) { - dst->init_data = cfg; /* legacy API */ + /* Always provide init_data so legacy modules have a valid pointer. + * Extended-init-aware modules (e.g. cadence) read + * ext_data->module_data directly and never dereference init_data. + */ + dst->init_data = cfg; + if (!config->ipc_extended_init || !dst->ext_data->module_data) dst->avail = true; - } return 0; }