diff --git a/sound/soc/tegra/tegra210_admaif.c b/sound/soc/tegra/tegra210_admaif.c index 721864bb..07af1915 100644 --- a/sound/soc/tegra/tegra210_admaif.c +++ b/sound/soc/tegra/tegra210_admaif.c @@ -704,22 +704,14 @@ static struct snd_kcontrol_new tegra186_admaif_controls[] = { TEGRA_ADMAIF_CIF_CTRL(20), }; -extern const struct snd_pcm_ops tegra_pcm_ops; - static const struct snd_soc_component_driver tegra210_admaif_cmpnt = { .controls = tegra210_admaif_controls, .num_controls = ARRAY_SIZE(tegra210_admaif_controls), - .pcm_new = tegra_pcm_new, - .pcm_free = tegra_pcm_free, - .ops = &tegra_pcm_ops, }; static const struct snd_soc_component_driver tegra186_admaif_cmpnt = { .controls = tegra186_admaif_controls, .num_controls = ARRAY_SIZE(tegra186_admaif_controls), - .pcm_new = tegra_pcm_new, - .pcm_free = tegra_pcm_free, - .ops = &tegra_pcm_ops, }; static const struct tegra_admaif_soc_data soc_data_tegra210 = { diff --git a/sound/soc/tegra/tegra_asoc_machine.c b/sound/soc/tegra/tegra_asoc_machine.c index 013e7fd2..53320e13 100644 --- a/sound/soc/tegra/tegra_asoc_machine.c +++ b/sound/soc/tegra/tegra_asoc_machine.c @@ -281,8 +281,6 @@ static int parse_dt_codec_confs(struct snd_soc_card *card) return err; } - codec_confs[i].of_node = args.np; - codec_confs[i].dev_name = NULL; of_property_read_string(codec, "prefix", &codec_confs[i].name_prefix); @@ -787,11 +785,6 @@ void release_asoc_phandles(struct tegra_machine *machine) of_node_put(machine->asoc->dai_links[i].codecs->of_node); } } - - if (machine->asoc->codec_confs) { - for (i = 0; i < machine->asoc->num_confs; i++) - of_node_put(machine->asoc->codec_confs[i].of_node); - } } EXPORT_SYMBOL_GPL(release_asoc_phandles); MODULE_LICENSE("GPL"); diff --git a/sound/soc/tegra/tegra_machine_driver.c b/sound/soc/tegra/tegra_machine_driver.c index af9cb653..016186d9 100644 --- a/sound/soc/tegra/tegra_machine_driver.c +++ b/sound/soc/tegra/tegra_machine_driver.c @@ -35,6 +35,9 @@ #define DRV_NAME "tegra-asoc:" +#define MAX_DAI_LINKS 10 +static unsigned int dai_links_idx[MAX_DAI_LINKS]; + static const char * const tegra_machine_srate_text[] = { "None", "8kHz", @@ -181,7 +184,7 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime, } } - rtd = snd_soc_get_pcm_runtime(card, "rt565x-playback"); + rtd = snd_soc_get_pcm_runtime(card, &machine->asoc->dai_links[dai_links_idx[0]]); if (rtd) { err = snd_soc_dai_set_sysclk(rtd->codec_dai, RT5659_SCLK_S_MCLK, aud_mclk, SND_SOC_CLOCK_IN); @@ -191,7 +194,7 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime, } } - rtd = snd_soc_get_pcm_runtime(card, "rt565x-codec-sysclk-bclk1"); + rtd = snd_soc_get_pcm_runtime(card, &machine->asoc->dai_links[dai_links_idx[1]]); if (rtd) { unsigned int bclk_rate; dai_params = (struct snd_soc_pcm_stream *)rtd->dai_link->params; @@ -231,7 +234,7 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime, } } - rtd = snd_soc_get_pcm_runtime(card, "dspk-playback-r"); + rtd = snd_soc_get_pcm_runtime(card, &machine->asoc->dai_links[dai_links_idx[2]]); if (rtd) { if (!strcmp(rtd->codec_dai->name, "tas2552-amplifier")) { err = snd_soc_dai_set_sysclk(rtd->codec_dai, @@ -244,7 +247,7 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime, } } - rtd = snd_soc_get_pcm_runtime(card, "dspk-playback-l"); + rtd = snd_soc_get_pcm_runtime(card, &machine->asoc->dai_links[dai_links_idx[3]]); if (rtd) { if (!strcmp(rtd->codec_dai->name, "tas2552-amplifier")) { err = snd_soc_dai_set_sysclk(rtd->codec_dai, @@ -431,6 +434,14 @@ static int codec_init(struct tegra_machine *machine) if (!dai_links[i].name) continue; + if (strstr(dai_links[i].name, "rt565x-playback")) + dai_links_idx[0] = i; + else if (strstr(dai_links[i].name, "rt565x-codec-sysclk-bclk1")) + dai_links_idx[1] = i; + else if (strstr(dai_links[i].name, "dspk-playback-r")) + dai_links_idx[2] = i; + else if (strstr(dai_links[i].name, "dspk-playback-l")) + dai_links_idx[3] = i; if (strstr(dai_links[i].name, "rt565x-playback") || strstr(dai_links[i].name, "rt565x-codec-sysclk-bclk1")) dai_links[i].init = tegra_machine_rt565x_init;