mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
tegra-virt-alt: T264 ADSP support for machine driver
Extended T210 ADSP DAI LINKS to use for T264 Bug 4635899 Change-Id: I613698aef930458f031462ddc7fd8bfbe72768a3
This commit is contained in:
@@ -27,6 +27,11 @@
|
||||
#define CPU_DAI_NAME(i) "ADMAIF" #i
|
||||
#define CODEC_DAI_NAME "dit-hifi"
|
||||
#define PLATFORM_NAME LINK_CPU_NAME
|
||||
#define LINK_ADSP_NAME "tegra210-adsp-virt"
|
||||
#define ADSP_DAI_NAME(i) "ADSP ADMAIF" #i
|
||||
#define ADSP_CPU_DAI_NAME(i) "ADSP-ADMAIF" #i
|
||||
#define ADSP_PCM_DAI_NAME(i) "ADSP PCM" #i
|
||||
#define ADSP_FE_DAI_NAME(i) "ADSP-FE" #i
|
||||
|
||||
static unsigned int num_dai_links;
|
||||
static const struct snd_soc_pcm_stream default_params = {
|
||||
@@ -52,6 +57,17 @@ static struct snd_soc_pcm_stream adsp_admaif_params[MAX_ADMAIF_IDS];
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF" name " CIF")), \
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM(PLATFORM_NAME)));
|
||||
|
||||
#define TEGRA_SND_SOC_ADSP_DAILINK_DEFS(id, name) \
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif##id, \
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_ADSP_NAME, ADSP_CPU_DAI_NAME(id))), \
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF" name " CIF")));
|
||||
|
||||
#define TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(id, name) \
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm##id, \
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_ADSP_NAME, ADSP_PCM_DAI_NAME(id))), \
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_ADSP_NAME, ADSP_FE_DAI_NAME(id))), \
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM(LINK_ADSP_NAME)));
|
||||
|
||||
TEGRA_SND_SOC_DAILINK_DEFS(1, "1")
|
||||
TEGRA_SND_SOC_DAILINK_DEFS(2, "2")
|
||||
TEGRA_SND_SOC_DAILINK_DEFS(3, "3")
|
||||
@@ -84,162 +100,55 @@ TEGRA_SND_SOC_DAILINK_DEFS(29, "29")
|
||||
TEGRA_SND_SOC_DAILINK_DEFS(30, "30")
|
||||
TEGRA_SND_SOC_DAILINK_DEFS(31, "31")
|
||||
TEGRA_SND_SOC_DAILINK_DEFS(32, "32")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(1, "1")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(2, "2")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(3, "3")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(4, "4")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(5, "5")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(6, "6")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(7, "7")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(8, "8")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(9, "9")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(10, "10")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(11, "11")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(12, "12")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(13, "13")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(14, "14")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(15, "15")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(16, "16")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(17, "17")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(18, "18")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(19, "19")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(20, "20")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(21, "21")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(22, "22")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(23, "23")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(24, "24")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(25, "25")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(26, "26")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(27, "27")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(28, "28")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(29, "29")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(30, "20")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(31, "31")
|
||||
TEGRA_SND_SOC_ADSP_DAILINK_DEFS(32, "32")
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif1,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF1")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF1 CIF")));
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(1, "1")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(2, "2")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(3, "3")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(4, "4")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(5, "5")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(6, "6")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(7, "7")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(8, "8")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(9, "9")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(10, "10")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(11, "11")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(12, "12")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(13, "13")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(14, "14")
|
||||
TEGRA_SND_SOC_ADSP_PCM_DAILINK_DEFS(15, "15")
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif2,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF2")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF2 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif3,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF3")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF3 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif4,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF4")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF4 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif5,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF5")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF5 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif6,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF6")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF6 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif7,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF7")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF7 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif8,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF8")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF8 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif9,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF9")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF9 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif10,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF10")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF10 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif11,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF11")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF11 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif12,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF12")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF12 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif13,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF13")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF13 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif14,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF14")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF14 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif15,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF15")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF15 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif16,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF16")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF16 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif17,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF17")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF17 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif18,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF18")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF18 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif19,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF19")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF19 CIF")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_admaif20,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP-ADMAIF20")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC(LINK_CPU_NAME, "ADMAIF20 CIF")));
|
||||
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm1,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM1")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE1")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm2,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM2")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE2")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm3,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM3")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE3")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm4,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM4")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE4")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm5,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM5")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE5")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm6,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM6")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE6")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm7,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM7")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE7")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm8,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM8")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE8")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm9,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM9")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE9")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm10,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM10")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE10")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm11,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM11")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE11")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm12,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM12")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE12")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm13,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM13")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE13")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm14,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM14")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE14")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
SND_SOC_DAILINK_DEFS(adsp_pcm15,
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt","ADSP PCM15")),
|
||||
DAILINK_COMP_ARRAY(COMP_CODEC("tegra210-adsp-virt", "ADSP-FE15")),
|
||||
DAILINK_COMP_ARRAY(COMP_PLATFORM("tegra210-adsp-virt")));
|
||||
|
||||
#if defined(NV_SND_SOC_DAI_LINK_STRUCT_HAS_C2C_PARAMS_ARG) /* Linux v6.4 */
|
||||
#define TEGRA_DAI_LINK(id) \
|
||||
@@ -251,6 +160,23 @@ SND_SOC_DAILINK_DEFS(adsp_pcm15,
|
||||
.ignore_suspend = 0, \
|
||||
SND_SOC_DAILINK_REG(audio##id), \
|
||||
},
|
||||
#define TEGRA_ADSP_DAI_LINK(id) \
|
||||
{ \
|
||||
.name = ADSP_DAI_NAME(id), \
|
||||
.stream_name = STREAM_NAME, \
|
||||
.c2c_params = &adsp_default_params, \
|
||||
.ignore_pmdown_time = 1, \
|
||||
.ignore_suspend = 0, \
|
||||
SND_SOC_DAILINK_REG(adsp_admaif##id), \
|
||||
},
|
||||
#define TEGRA_ADSP_PCM_DAI_LINK(id) \
|
||||
{ \
|
||||
.name = ADSP_PCM_DAI_NAME(id), \
|
||||
.stream_name = ADSP_PCM_DAI_NAME(id), \
|
||||
.ignore_pmdown_time = 1, \
|
||||
.ignore_suspend = 0, \
|
||||
SND_SOC_DAILINK_REG(adsp_pcm##id), \
|
||||
},
|
||||
#else
|
||||
#define TEGRA_DAI_LINK(id) \
|
||||
{ \
|
||||
@@ -261,6 +187,24 @@ SND_SOC_DAILINK_DEFS(adsp_pcm15,
|
||||
.ignore_suspend = 0, \
|
||||
SND_SOC_DAILINK_REG(audio##id), \
|
||||
},
|
||||
#define TEGRA_ADSP_DAI_LINK(id) \
|
||||
{ \
|
||||
.name = ADSP_DAI_NAME(id), \
|
||||
.stream_name = STREAM_NAME, \
|
||||
.params = &adsp_default_params, \
|
||||
.ignore_pmdown_time = 1, \
|
||||
.ignore_suspend = 0, \
|
||||
SND_SOC_DAILINK_REG(adsp_admaif##id), \
|
||||
},
|
||||
|
||||
#define TEGRA_ADSP_PCM_DAI_LINK(id) \
|
||||
{ \
|
||||
.name = ADSP_PCM_DAI_NAME(id), \
|
||||
.stream_name = ADSP_PCM_DAI_NAME(id), \
|
||||
.ignore_pmdown_time = 1, \
|
||||
.ignore_suspend = 0, \
|
||||
SND_SOC_DAILINK_REG(adsp_pcm##id), \
|
||||
},
|
||||
#endif
|
||||
|
||||
static struct snd_soc_dai_link tegra_virt_t264ref_pcm_links[] = {
|
||||
@@ -296,6 +240,53 @@ static struct snd_soc_dai_link tegra_virt_t264ref_pcm_links[] = {
|
||||
TEGRA_DAI_LINK(30)
|
||||
TEGRA_DAI_LINK(31)
|
||||
TEGRA_DAI_LINK(32)
|
||||
TEGRA_ADSP_DAI_LINK(1)
|
||||
TEGRA_ADSP_DAI_LINK(2)
|
||||
TEGRA_ADSP_DAI_LINK(3)
|
||||
TEGRA_ADSP_DAI_LINK(4)
|
||||
TEGRA_ADSP_DAI_LINK(5)
|
||||
TEGRA_ADSP_DAI_LINK(6)
|
||||
TEGRA_ADSP_DAI_LINK(7)
|
||||
TEGRA_ADSP_DAI_LINK(8)
|
||||
TEGRA_ADSP_DAI_LINK(9)
|
||||
TEGRA_ADSP_DAI_LINK(10)
|
||||
TEGRA_ADSP_DAI_LINK(11)
|
||||
TEGRA_ADSP_DAI_LINK(12)
|
||||
TEGRA_ADSP_DAI_LINK(13)
|
||||
TEGRA_ADSP_DAI_LINK(14)
|
||||
TEGRA_ADSP_DAI_LINK(15)
|
||||
TEGRA_ADSP_DAI_LINK(16)
|
||||
TEGRA_ADSP_DAI_LINK(17)
|
||||
TEGRA_ADSP_DAI_LINK(18)
|
||||
TEGRA_ADSP_DAI_LINK(19)
|
||||
TEGRA_ADSP_DAI_LINK(20)
|
||||
TEGRA_ADSP_DAI_LINK(21)
|
||||
TEGRA_ADSP_DAI_LINK(22)
|
||||
TEGRA_ADSP_DAI_LINK(23)
|
||||
TEGRA_ADSP_DAI_LINK(24)
|
||||
TEGRA_ADSP_DAI_LINK(25)
|
||||
TEGRA_ADSP_DAI_LINK(26)
|
||||
TEGRA_ADSP_DAI_LINK(27)
|
||||
TEGRA_ADSP_DAI_LINK(28)
|
||||
TEGRA_ADSP_DAI_LINK(29)
|
||||
TEGRA_ADSP_DAI_LINK(30)
|
||||
TEGRA_ADSP_DAI_LINK(31)
|
||||
TEGRA_ADSP_DAI_LINK(32)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(1)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(2)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(3)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(4)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(5)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(6)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(7)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(8)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(9)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(10)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(11)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(12)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(13)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(14)
|
||||
TEGRA_ADSP_PCM_DAI_LINK(15)
|
||||
};
|
||||
|
||||
static struct snd_soc_dai_link tegra_virt_t186ref_pcm_links[] = {
|
||||
@@ -1073,10 +1064,17 @@ struct snd_soc_dai_link *tegra_virt_machine_get_dai_link(struct device *dev)
|
||||
EXPORT_SYMBOL(tegra_virt_machine_get_dai_link);
|
||||
|
||||
void tegra_virt_machine_set_adsp_admaif_dai_params(
|
||||
uint32_t id, struct snd_soc_pcm_stream *params)
|
||||
struct device *dev, uint32_t id, struct snd_soc_pcm_stream *params)
|
||||
{
|
||||
struct snd_soc_dai_link *link = tegra_virt_t186ref_pcm_links;
|
||||
|
||||
if (of_machine_is_compatible("nvidia,tegra210")) {
|
||||
link = tegra_virt_t210ref_pcm_links;
|
||||
} else if (of_device_is_compatible(dev->of_node,
|
||||
"nvidia,tegra264-virt-pcm-oot")) {
|
||||
link = tegra_virt_t264ref_pcm_links;
|
||||
}
|
||||
|
||||
/* Check for valid ADSP ADMAIF ID */
|
||||
if (id >= MAX_ADMAIF_IDS) {
|
||||
pr_err("Invalid ADSP ADMAIF ID: %d\n", id);
|
||||
|
||||
@@ -85,5 +85,5 @@ struct snd_soc_dai_link *tegra_virt_machine_get_dai_link(struct device *dev);
|
||||
unsigned int tegra_virt_machine_get_num_dai_links(void);
|
||||
void tegra_virt_machine_set_num_dai_links(unsigned int val);
|
||||
void tegra_virt_machine_set_adsp_admaif_dai_params(
|
||||
uint32_t id, struct snd_soc_pcm_stream *params);
|
||||
struct device *dev, uint32_t id, struct snd_soc_pcm_stream *params);
|
||||
#endif
|
||||
|
||||
@@ -159,7 +159,7 @@ static int tegra_virt_machine_driver_probe(struct platform_device *pdev)
|
||||
adsp_admaif_dt_params.channels_min = adsp_admaif_channels;
|
||||
adsp_admaif_dt_params.channels_max = adsp_admaif_channels;
|
||||
|
||||
tegra_virt_machine_set_adsp_admaif_dai_params(
|
||||
tegra_virt_machine_set_adsp_admaif_dai_params(&pdev->dev,
|
||||
i, &adsp_admaif_dt_params);
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user