mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
ASoC: tegra-alt: add support for sw spkprot plugin
Change-Id: I85402289234273d757470af73664282b2300f03e Signed-off-by: Viraj Karandikar <vkarandikar@nvidia.com> Reviewed-on: http://git-master/r/432493 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
This commit is contained in:
committed by
Sameer Pujar
parent
ca169a7687
commit
9efe03d6de
@@ -68,6 +68,8 @@ static struct tegra210_adsp_app_desc {
|
|||||||
TEGRA210_ADSP_PLUGIN_MP3_DEC1, TEGRA210_ADSP_PLUGIN_MP3_DEC2},
|
TEGRA210_ADSP_PLUGIN_MP3_DEC1, TEGRA210_ADSP_PLUGIN_MP3_DEC2},
|
||||||
{"adma", "adma_plugin.elf",
|
{"adma", "adma_plugin.elf",
|
||||||
TEGRA210_ADSP_PLUGIN_ADMA1, TEGRA210_ADSP_PLUGIN_ADMA4},
|
TEGRA210_ADSP_PLUGIN_ADMA1, TEGRA210_ADSP_PLUGIN_ADMA4},
|
||||||
|
{"spkprot", "spkprot_plugin.elf",
|
||||||
|
TEGRA210_ADSP_PLUGIN_SPKPROT, TEGRA210_ADSP_PLUGIN_SPKPROT},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ADSP APP specific structure */
|
/* ADSP APP specific structure */
|
||||||
@@ -1665,6 +1667,7 @@ static const char * const tegra210_adsp_mux_texts[] = {
|
|||||||
"MP3-DEC2",
|
"MP3-DEC2",
|
||||||
"AAC-DEC1",
|
"AAC-DEC1",
|
||||||
"AAC-DEC2",
|
"AAC-DEC2",
|
||||||
|
"SPKPROT-SW",
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ADSP_MUX_ENUM_CTRL_DECL(ename, reg) \
|
#define ADSP_MUX_ENUM_CTRL_DECL(ename, reg) \
|
||||||
@@ -1713,6 +1716,7 @@ ADSP_MUX_ENUM_CTRL_DECL(mp3_dec1, TEGRA210_ADSP_PLUGIN_MP3_DEC1);
|
|||||||
ADSP_MUX_ENUM_CTRL_DECL(mp3_dec2, TEGRA210_ADSP_PLUGIN_MP3_DEC2);
|
ADSP_MUX_ENUM_CTRL_DECL(mp3_dec2, TEGRA210_ADSP_PLUGIN_MP3_DEC2);
|
||||||
ADSP_MUX_ENUM_CTRL_DECL(aac_dec1, TEGRA210_ADSP_PLUGIN_AAC_DEC1);
|
ADSP_MUX_ENUM_CTRL_DECL(aac_dec1, TEGRA210_ADSP_PLUGIN_AAC_DEC1);
|
||||||
ADSP_MUX_ENUM_CTRL_DECL(aac_dec2, TEGRA210_ADSP_PLUGIN_AAC_DEC2);
|
ADSP_MUX_ENUM_CTRL_DECL(aac_dec2, TEGRA210_ADSP_PLUGIN_AAC_DEC2);
|
||||||
|
ADSP_MUX_ENUM_CTRL_DECL(spkprot, TEGRA210_ADSP_PLUGIN_SPKPROT);
|
||||||
|
|
||||||
#define ADSP_EP_WIDGETS(sname, ename) \
|
#define ADSP_EP_WIDGETS(sname, ename) \
|
||||||
SND_SOC_DAPM_AIF_IN(sname " RX", NULL, 0, SND_SOC_NOPM, 0, 0), \
|
SND_SOC_DAPM_AIF_IN(sname " RX", NULL, 0, SND_SOC_NOPM, 0, 0), \
|
||||||
@@ -1765,6 +1769,7 @@ static const struct snd_soc_dapm_widget tegra210_adsp_widgets[] = {
|
|||||||
ADSP_WIDGETS("MP3-DEC2", mp3_dec2, TEGRA210_ADSP_PLUGIN_MP3_DEC2),
|
ADSP_WIDGETS("MP3-DEC2", mp3_dec2, TEGRA210_ADSP_PLUGIN_MP3_DEC2),
|
||||||
ADSP_WIDGETS("AAC-DEC1", aac_dec1, TEGRA210_ADSP_PLUGIN_AAC_DEC1),
|
ADSP_WIDGETS("AAC-DEC1", aac_dec1, TEGRA210_ADSP_PLUGIN_AAC_DEC1),
|
||||||
ADSP_WIDGETS("AAC-DEC2", aac_dec2, TEGRA210_ADSP_PLUGIN_AAC_DEC2),
|
ADSP_WIDGETS("AAC-DEC2", aac_dec2, TEGRA210_ADSP_PLUGIN_AAC_DEC2),
|
||||||
|
ADSP_WIDGETS("SPKPROT-SW", spkprot, TEGRA210_ADSP_PLUGIN_SPKPROT),
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ADSP_EP_ROUTES(name) \
|
#define ADSP_EP_ROUTES(name) \
|
||||||
@@ -1816,6 +1821,9 @@ static const struct snd_soc_dapm_widget tegra210_adsp_widgets[] = {
|
|||||||
{ name " MUX", "AAC-DEC1", "AAC-DEC1 TX"}, \
|
{ name " MUX", "AAC-DEC1", "AAC-DEC1 TX"}, \
|
||||||
{ name " MUX", "AAC-DEC2", "AAC-DEC2 TX"}
|
{ name " MUX", "AAC-DEC2", "AAC-DEC2 TX"}
|
||||||
|
|
||||||
|
#define ADSP_SPKPROT_ROUTES(name) \
|
||||||
|
{ name " MUX", "SPKPROT-SW", "SPKPROT-SW TX"}
|
||||||
|
|
||||||
#define ADSP_EP_MUX_ROUTES(name) \
|
#define ADSP_EP_MUX_ROUTES(name) \
|
||||||
{ name " RX", NULL, name " Receive"}, \
|
{ name " RX", NULL, name " Receive"}, \
|
||||||
{ name " Transmit", NULL, name " TX"}, \
|
{ name " Transmit", NULL, name " TX"}, \
|
||||||
@@ -1839,7 +1847,12 @@ static const struct snd_soc_dapm_widget tegra210_adsp_widgets[] = {
|
|||||||
#define ADSP_ADMA_MUX_ROUTES(name) \
|
#define ADSP_ADMA_MUX_ROUTES(name) \
|
||||||
{ name " TX", NULL, name " MUX"}, \
|
{ name " TX", NULL, name " MUX"}, \
|
||||||
ADSP_APM_IN_ROUTES(name), \
|
ADSP_APM_IN_ROUTES(name), \
|
||||||
ADSP_DEC_ROUTES(name)
|
ADSP_DEC_ROUTES(name), \
|
||||||
|
ADSP_SPKPROT_ROUTES(name)
|
||||||
|
|
||||||
|
#define ADSP_SPKPROT_MUX_ROUTES(name) \
|
||||||
|
{ name " TX", NULL, name " MUX"}, \
|
||||||
|
ADSP_ADMA_ROUTES(name)
|
||||||
|
|
||||||
static const struct snd_soc_dapm_route tegra210_adsp_routes[] = {
|
static const struct snd_soc_dapm_route tegra210_adsp_routes[] = {
|
||||||
ADSP_EP_MUX_ROUTES("ADSP-FE1"),
|
ADSP_EP_MUX_ROUTES("ADSP-FE1"),
|
||||||
@@ -1885,6 +1898,8 @@ static const struct snd_soc_dapm_route tegra210_adsp_routes[] = {
|
|||||||
ADSP_DEC_MUX_ROUTES("MP3-DEC2"),
|
ADSP_DEC_MUX_ROUTES("MP3-DEC2"),
|
||||||
ADSP_DEC_MUX_ROUTES("AAC-DEC1"),
|
ADSP_DEC_MUX_ROUTES("AAC-DEC1"),
|
||||||
ADSP_DEC_MUX_ROUTES("AAC-DEC2"),
|
ADSP_DEC_MUX_ROUTES("AAC-DEC2"),
|
||||||
|
|
||||||
|
ADSP_SPKPROT_MUX_ROUTES("SPKPROT-SW"),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct snd_kcontrol_new tegra210_adsp_controls[] = {
|
static const struct snd_kcontrol_new tegra210_adsp_controls[] = {
|
||||||
@@ -1960,7 +1975,7 @@ static int tegra210_adsp_audio_platform_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(adsp_app_desc); i++) {
|
for (i = 0; i < ARRAY_SIZE(adsp_app_desc); i++) {
|
||||||
for (j = adsp_app_desc[i].reg_start;
|
for (j = adsp_app_desc[i].reg_start;
|
||||||
j < adsp_app_desc[i].reg_end; j++)
|
j <= adsp_app_desc[i].reg_end; j++)
|
||||||
adsp->apps[j].desc = &adsp_app_desc[i];
|
adsp->apps[j].desc = &adsp_app_desc[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user