Skip to content

Commit

Permalink
ASoC: Tegra: Move DAS configuration into DAS driver
Browse files Browse the repository at this point in the history
Move DAS routing setup into the DAS driver itself. This removes the need
to duplicate this in each machine driver, of which we'll soon have three.

An added advantage is that the machine drivers no longer call the Tegra20-
specific DAS functions by name, so the machine driver no longer needs to
be split up into Tegra20 and Tegra30 versions.

If individual machine drivers need a different routing setup to this
default, they can still call the DAS functions to set that up.

Long-term, DAS will be a codec driver, and user-space will be able to
control its routing, possibly within constraints that the machine driver
sets up. Configuring the DAS routing from the DAS driver is a very slight
move in that direction.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Stephen Warren authored and Mark Brown committed Dec 8, 2011
1 parent 16b2488 commit 7b9b5e1
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 36 deletions.
13 changes: 13 additions & 0 deletions sound/soc/tegra/tegra_das.c
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,19 @@ static int __devinit tegra_das_probe(struct platform_device *pdev)
goto err;
}

ret = tegra_das_connect_dap_to_dac(TEGRA_DAS_DAP_ID_1,
TEGRA_DAS_DAP_SEL_DAC1);
if (ret) {
dev_err(&pdev->dev, "Can't set up DAS DAP connection\n");
goto err;
}
ret = tegra_das_connect_dac_to_dap(TEGRA_DAS_DAC_ID_1,
TEGRA_DAS_DAC_SEL_DAP1);
if (ret) {
dev_err(&pdev->dev, "Can't set up DAS DAC connection\n");
goto err;
}

tegra_das_debug_add(das);

platform_set_drvdata(pdev, das);
Expand Down
13 changes: 0 additions & 13 deletions sound/soc/tegra/tegra_wm8903.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,19 +249,6 @@ static int tegra_wm8903_init(struct snd_soc_pcm_runtime *rtd)
struct tegra_wm8903_platform_data *pdata = machine->pdata;
int ret;

ret = tegra_das_connect_dap_to_dac(TEGRA_DAS_DAP_ID_1,
TEGRA_DAS_DAP_SEL_DAC1);
if (ret) {
dev_err(card->dev, "Can't set up DAS DAP connection\n");
return ret;
}
ret = tegra_das_connect_dac_to_dap(TEGRA_DAS_DAC_ID_1,
TEGRA_DAS_DAC_SEL_DAP1);
if (ret) {
dev_err(card->dev, "Can't set up DAS DAC connection\n");
return ret;
}

if (gpio_is_valid(pdata->gpio_spkr_en)) {
ret = gpio_request(pdata->gpio_spkr_en, "spkr_en");
if (ret) {
Expand Down
23 changes: 0 additions & 23 deletions sound/soc/tegra/trimslice.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,36 +115,13 @@ static const struct snd_soc_dapm_route trimslice_audio_map[] = {
{"RLINEIN", NULL, "Line In"},
};

static int trimslice_asoc_init(struct snd_soc_pcm_runtime *rtd)
{
struct snd_soc_codec *codec = rtd->codec;
struct snd_soc_card *card = codec->card;
int ret;

ret = tegra_das_connect_dap_to_dac(TEGRA_DAS_DAP_ID_1,
TEGRA_DAS_DAP_SEL_DAC1);
if (ret) {
dev_err(card->dev, "Can't set up DAS DAP connection\n");
return ret;
}
ret = tegra_das_connect_dac_to_dap(TEGRA_DAS_DAC_ID_1,
TEGRA_DAS_DAC_SEL_DAP1);
if (ret) {
dev_err(card->dev, "Can't set up DAS DAC connection\n");
return ret;
}

return 0;
}

static struct snd_soc_dai_link trimslice_tlv320aic23_dai = {
.name = "TLV320AIC23",
.stream_name = "AIC23",
.codec_name = "tlv320aic23-codec.2-001a",
.platform_name = "tegra-pcm-audio",
.cpu_dai_name = "tegra-i2s.0",
.codec_dai_name = "tlv320aic23-hifi",
.init = trimslice_asoc_init,
.ops = &trimslice_asoc_ops,
};

Expand Down

0 comments on commit 7b9b5e1

Please sign in to comment.