Skip to content

Commit 5bcfd9a

Browse files
committed
audio: dai: Pass bespoke config size through dai_set_config chain
Update dai_set_config() to accept and propagate the size parameter for bespoke DAI configuration data, matching the updated Zephyr DAI driver API. Changes: - Add size_t size parameter to dai_set_config() function - Update dai_set_config() signature in dai-zephyr.h header - Pass copier_cfg->gtw_cfg.config_length as size in IPC4 dai_config() - Forward size parameter to dai_config_set() Zephyr driver API call This change completes the integration with the new Zephyr DAI API that requires explicit size validation for bespoke configuration blobs, enabling proper bounds checking in DAI drivers. Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
1 parent 5a14518 commit 5bcfd9a

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

src/audio/dai-zephyr.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ static int dai_trigger_op(struct dai *dai, int cmd, int direction)
143143

144144
/* called from src/ipc/ipc3/handler.c and src/ipc/ipc4/dai.c */
145145
__cold int dai_set_config(struct dai *dai, struct ipc_config_dai *common_config,
146-
const void *spec_config)
146+
const void *spec_config, size_t size)
147147
{
148148
const struct device *dev = dai->dev;
149149
const struct sof_ipc_dai_config *sof_cfg = spec_config;
@@ -198,7 +198,7 @@ __cold int dai_set_config(struct dai *dai, struct ipc_config_dai *common_config,
198198
return -EINVAL;
199199
}
200200

201-
return dai_config_set(dev, &cfg, cfg_params);
201+
return dai_config_set(dev, &cfg, cfg_params, size);
202202
}
203203

204204
/* called from ipc/ipc3/dai.c */

src/include/sof/lib/dai-zephyr.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ void dai_put(struct dai *dai);
237237
/**
238238
* \brief Digital Audio interface formatting
239239
*/
240-
int dai_set_config(struct dai *dai, struct ipc_config_dai *config, const void *spec_config);
240+
int dai_set_config(struct dai *dai, struct ipc_config_dai *config, const void *spec_config, size_t size);
241241

242242
/**
243243
* \brief Get Digital Audio interface DMA Handshake

src/ipc/ipc4/dai.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ __cold int dai_config(struct dai_data *dd, struct comp_dev *dev,
396396
if (ret < 0)
397397
return ret;
398398

399-
return dai_set_config(dd->dai, common_config, copier_cfg->gtw_cfg.config_data);
399+
return dai_set_config(dd->dai, common_config, copier_cfg->gtw_cfg.config_data, copier_cfg->gtw_cfg.config_length);
400400
}
401401

402402
#if CONFIG_ZEPHYR_NATIVE_DRIVERS

0 commit comments

Comments
 (0)