Skip to content

Commit

Permalink
ASoC: soc-core: remove dai_drv from snd_soc_component
Browse files Browse the repository at this point in the history
ALSA SoC has some duplicate parameter.
snd_soc_component::dai_drv is one of them.

Each DAI is keeping its driver as snd_soc_dai::driver,
and component has dai_list.
This means, we can reach to each DAI and its driver by using dai_link.
Thus, there is no need to keep DAI driver pointer on component.
Let's remove it

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Kuninori Morimoto authored and Mark Brown committed Dec 20, 2017
1 parent 1e02dac commit 58bf417
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
1 change: 0 additions & 1 deletion include/sound/soc.h
Original file line number Diff line number Diff line change
Expand Up @@ -858,7 +858,6 @@ struct snd_soc_component {
struct list_head card_aux_list; /* for auxiliary bound components */
struct list_head card_list;

struct snd_soc_dai_driver *dai_drv;
int num_dai;

const struct snd_soc_component_driver *driver;
Expand Down
14 changes: 10 additions & 4 deletions sound/soc/soc-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -3149,7 +3149,7 @@ static struct snd_soc_dai *soc_add_dai(struct snd_soc_component *component,
if (!dai->driver->ops)
dai->driver->ops = &null_dai_ops;

list_add(&dai->list, &component->dai_list);
list_add_tail(&dai->list, &component->dai_list);
component->num_dai++;

dev_dbg(dev, "ASoC: Registered DAI '%s'\n", dai->name);
Expand All @@ -3176,8 +3176,6 @@ static int snd_soc_register_dais(struct snd_soc_component *component,

dev_dbg(dev, "ASoC: dai register %s #%zu\n", dev_name(dev), count);

component->dai_drv = dai_drv;

for (i = 0; i < count; i++) {

dai = soc_add_dai(component, dai_drv + i,
Expand Down Expand Up @@ -4354,6 +4352,7 @@ int snd_soc_get_dai_name(struct of_phandle_args *args,
args,
dai_name);
} else {
struct snd_soc_dai *dai;
int id = -1;

switch (args->args_count) {
Expand All @@ -4375,7 +4374,14 @@ int snd_soc_get_dai_name(struct of_phandle_args *args,

ret = 0;

*dai_name = pos->dai_drv[id].name;
/* find target DAI */
list_for_each_entry(dai, &pos->dai_list, list) {
if (id == 0)
break;
id--;
}

*dai_name = dai->driver->name;
if (!*dai_name)
*dai_name = pos->name;
}
Expand Down

0 comments on commit 58bf417

Please sign in to comment.