Skip to content

Commit 1dd1939

Browse files
btian1ranj063
authored andcommitted
copier-dai: Add copier_dai_prepare in copier dai source file
Add this function to integrate copier dai prepare code. Signed-off-by: Baofeng Tian <baofeng.tian@intel.com>
1 parent f3e9f73 commit 1dd1939

File tree

3 files changed

+23
-20
lines changed

3 files changed

+23
-20
lines changed

src/audio/copier/copier.c

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ static int copy_single_channel_c32(const struct audio_stream __sparse_cache *src
477477
static int copier_prepare(struct comp_dev *dev)
478478
{
479479
struct copier_data *cd = comp_get_drvdata(dev);
480-
int ret, i;
480+
int ret;
481481

482482
comp_dbg(dev, "copier_prepare()");
483483

@@ -503,25 +503,9 @@ static int copier_prepare(struct comp_dev *dev)
503503
}
504504
break;
505505
case SOF_COMP_DAI:
506-
if (cd->endpoint_num == 1) {
507-
ret = dai_zephyr_config_prepare(cd->dd[0], dev);
508-
if (ret < 0)
509-
return ret;
510-
511-
ret = dai_zephyr_prepare(cd->dd[0], dev);
512-
if (ret < 0)
513-
return ret;
514-
} else {
515-
for (i = 0; i < cd->endpoint_num; i++) {
516-
ret = dai_zephyr_config_prepare(cd->dd[i], dev);
517-
if (ret < 0)
518-
return ret;
519-
520-
ret = dai_zephyr_prepare(cd->dd[i], dev);
521-
if (ret < 0)
522-
return ret;
523-
}
524-
}
506+
ret = copier_dai_prepare(dev, cd);
507+
if (ret < 0)
508+
return ret;
525509
break;
526510
default:
527511
break;

src/audio/copier/copier_dai.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,3 +286,20 @@ void copier_dai_free(struct copier_data *cd)
286286
rfree(cd->dd[i]);
287287
}
288288
}
289+
290+
int copier_dai_prepare(struct comp_dev *dev, struct copier_data *cd)
291+
{
292+
int ret;
293+
294+
for (int i = 0; i < cd->endpoint_num; i++) {
295+
ret = dai_zephyr_config_prepare(cd->dd[i], dev);
296+
if (ret < 0)
297+
return ret;
298+
299+
ret = dai_zephyr_prepare(cd->dd[i], dev);
300+
if (ret < 0)
301+
return ret;
302+
}
303+
304+
return 0;
305+
}

src/include/sof/audio/dai_copier.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,6 @@ int copier_dai_create(struct comp_dev *parent_dev, struct copier_data *cd,
6363
struct pipeline *pipeline);
6464

6565
void copier_dai_free(struct copier_data *cd);
66+
67+
int copier_dai_prepare(struct comp_dev *dev, struct copier_data *cd);
6668
#endif /* __SOF_LIB_DAI_COPIER_H__ */

0 commit comments

Comments
 (0)