On Thu, 2020-05-21 at 10:56 +0900, Kuninori Morimoto wrote: > From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > > Current ALSA SoC has many dai_link->xxx() functions. > But, it is implemented randomly at random place. > > This patch creats new soc-link.c and collect dai_link related > operation into it. > > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > --- > include/sound/soc-link.h | 13 +++++++++++++ > sound/soc/Makefile | 2 +- > sound/soc/soc-core.c | 12 ++++-------- > sound/soc/soc-link.c | 36 ++++++++++++++++++++++++++++++++++++ > 4 files changed, 54 insertions(+), 9 deletions(-) > create mode 100644 include/sound/soc-link.h > create mode 100644 sound/soc/soc-link.c > > diff --git a/include/sound/soc-link.h b/include/sound/soc-link.h > new file mode 100644 > index 000000000000..7fc5cead5942 > --- /dev/null > +++ b/include/sound/soc-link.h > @@ -0,0 +1,13 @@ > +/* SPDX-License-Identifier: GPL-2.0 > + * > + * soc-link.h > + * > + * Copyright (C) 2019 Renesas Electronics Corp. > + * Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > + */ > +#ifndef __SOC_LINK_H > +#define __SOC_LINK_H > + > +int snd_soc_link_init(struct snd_soc_pcm_runtime *rtd); > + > +#endif /* __SOC_LINK_H */ > diff --git a/sound/soc/Makefile b/sound/soc/Makefile > index 861a21b79484..70a5f19ea3a1 100644 > --- a/sound/soc/Makefile > +++ b/sound/soc/Makefile > @@ -1,6 +1,6 @@ > # SPDX-License-Identifier: GPL-2.0 > snd-soc-core-objs := soc-core.o soc-dapm.o soc-jack.o soc-utils.o > soc-dai.o soc-component.o > -snd-soc-core-objs += soc-pcm.o soc-io.o soc-devres.o soc-ops.o > +snd-soc-core-objs += soc-pcm.o soc-io.o soc-devres.o soc-ops.o soc- > link.o > snd-soc-core-$(CONFIG_SND_SOC_COMPRESS) += soc-compress.o > > ifneq ($(CONFIG_SND_SOC_TOPOLOGY),) > diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c > index e697258d2ffc..955e175643d7 100644 > --- a/sound/soc/soc-core.c > +++ b/sound/soc/soc-core.c > @@ -38,6 +38,7 @@ > #include <sound/soc.h> > #include <sound/soc-dpcm.h> > #include <sound/soc-topology.h> > +#include <sound/soc-link.h> > #include <sound/initval.h> > > #define CREATE_TRACE_POINTS > @@ -1049,14 +1050,9 @@ static int soc_init_pcm_runtime(struct > snd_soc_card *card, > rtd->pmdown_time = pmdown_time; > > /* do machine specific initialization */ > - if (dai_link->init) { > - ret = dai_link->init(rtd); > - if (ret < 0) { > - dev_err(card->dev, "ASoC: failed to init %s: > %d\n", > - dai_link->name, ret); > - return ret; > - } > - } > + ret = snd_soc_link_init(rtd); > + if (ret < 0) > + return ret; > > if (dai_link->dai_fmt) { > ret = snd_soc_runtime_set_dai_fmt(rtd, dai_link- > >dai_fmt); > diff --git a/sound/soc/soc-link.c b/sound/soc/soc-link.c > new file mode 100644 > index 000000000000..4bdd8d0dd93a > --- /dev/null > +++ b/sound/soc/soc-link.c > @@ -0,0 +1,36 @@ > +// SPDX-License-Identifier: GPL-2.0 > +// > +// soc-link.c > +// > +// Copyright (C) 2019 Renesas Electronics Corp. > +// Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > +// > +#include <sound/soc.h> Morimoto-san, Dont we also need to include soc-link.h in soc-link.c? Thanks, Ranjani