Skip to content

Commit

Permalink
ASoC: omap-abe-twl6040: Keep only one snd_soc_dai_link structure
Browse files Browse the repository at this point in the history
There is no need to have two snd_soc_dai_link structure for the two setup
the machine driver supports.
We can just tell core to register only the first link if the DMIC link is
not in use on the device.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@ti.com>
  • Loading branch information
Peter Ujfalusi authored and Liam Girdwood committed May 22, 2012
1 parent 2ec1be3 commit c2f9895
Showing 1 changed file with 9 additions and 21 deletions.
30 changes: 9 additions & 21 deletions sound/soc/omap/omap-abe-twl6040.c
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ static int omap_abe_dmic_init(struct snd_soc_pcm_runtime *rtd)
}

/* Digital audio interface glue - connects codec <--> CPU */
static struct snd_soc_dai_link twl6040_dmic_dai[] = {
static struct snd_soc_dai_link abe_twl6040_dai_links[] = {
{
.name = "TWL6040",
.stream_name = "TWL6040",
Expand All @@ -258,19 +258,6 @@ static struct snd_soc_dai_link twl6040_dmic_dai[] = {
},
};

static struct snd_soc_dai_link twl6040_only_dai[] = {
{
.name = "TWL6040",
.stream_name = "TWL6040",
.cpu_dai_name = "omap-mcpdm",
.codec_dai_name = "twl6040-legacy",
.platform_name = "omap-pcm-audio",
.codec_name = "twl6040-codec",
.init = omap_abe_twl6040_init,
.ops = &omap_abe_ops,
},
};

/* Audio machine driver */
static struct snd_soc_card omap_abe_card = {
.owner = THIS_MODULE,
Expand All @@ -285,6 +272,7 @@ static __devinit int omap_abe_probe(struct platform_device *pdev)
{
struct omap_abe_twl6040_data *pdata = dev_get_platdata(&pdev->dev);
struct snd_soc_card *card = &omap_abe_card;
int num_links = 0;
int ret;

card->dev = &pdev->dev;
Expand All @@ -306,13 +294,13 @@ static __devinit int omap_abe_probe(struct platform_device *pdev)
return -ENODEV;
}

if (pdata->has_dmic) {
card->dai_link = twl6040_dmic_dai;
card->num_links = ARRAY_SIZE(twl6040_dmic_dai);
} else {
card->dai_link = twl6040_only_dai;
card->num_links = ARRAY_SIZE(twl6040_only_dai);
}
if (pdata->has_dmic)
num_links = 2;
else
num_links = 1;

card->dai_link = abe_twl6040_dai_links;
card->num_links = num_links;

ret = snd_soc_register_card(card);
if (ret)
Expand Down

0 comments on commit c2f9895

Please sign in to comment.