tegra-adsp-alt: increase num of plugins

Increase number of supported plugins by ADSP
from 10 to 20

Bug 2048629

Change-Id: I44410252635fafb4b4d484ce75e642286e954ab2
Signed-off-by: Hariharan Sivaraman <hariharans@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1664190
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Hariharan Sivaraman
2018-02-21 12:31:46 +05:30
committed by Sameer Pujar
parent a6c5cba8dd
commit 540f5ece2c
2 changed files with 112 additions and 3 deletions

View File

@@ -1,7 +1,7 @@
/* /*
* tegra210_adsp_alt.h - Tegra210 ADSP header * tegra210_adsp_alt.h - Tegra210 ADSP header
* *
* Copyright (c) 2014-2017 NVIDIA CORPORATION. All rights reserved. * Copyright (c) 2014-2018 NVIDIA CORPORATION. All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify it * This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License, * under the terms and conditions of the GNU General Public License,
@@ -154,6 +154,16 @@ enum tegra210_adsp_virt_regs {
TEGRA210_ADSP_PLUGIN8, TEGRA210_ADSP_PLUGIN8,
TEGRA210_ADSP_PLUGIN9, TEGRA210_ADSP_PLUGIN9,
TEGRA210_ADSP_PLUGIN10, TEGRA210_ADSP_PLUGIN10,
TEGRA210_ADSP_PLUGIN11,
TEGRA210_ADSP_PLUGIN12,
TEGRA210_ADSP_PLUGIN13,
TEGRA210_ADSP_PLUGIN14,
TEGRA210_ADSP_PLUGIN15,
TEGRA210_ADSP_PLUGIN16,
TEGRA210_ADSP_PLUGIN17,
TEGRA210_ADSP_PLUGIN18,
TEGRA210_ADSP_PLUGIN19,
TEGRA210_ADSP_PLUGIN20,
TEGRA210_ADSP_VIRT_REG_MAX, TEGRA210_ADSP_VIRT_REG_MAX,
}; };
@@ -182,7 +192,8 @@ enum tegra210_adsp_virt_regs {
#define ADMA_TX_START TEGRA210_ADSP_PLUGIN_ADMA1_TX #define ADMA_TX_START TEGRA210_ADSP_PLUGIN_ADMA1_TX
#define ADMA_TX_END TEGRA210_ADSP_PLUGIN_ADMA15_TX #define ADMA_TX_END TEGRA210_ADSP_PLUGIN_ADMA15_TX
#define PLUGIN_START TEGRA210_ADSP_PLUGIN1 #define PLUGIN_START TEGRA210_ADSP_PLUGIN1
#define PLUGIN_END TEGRA210_ADSP_PLUGIN10 #define PLUGIN_END TEGRA210_ADSP_PLUGIN20
#define PLUGIN_NUM (PLUGIN_END - PLUGIN_START) + 1
#define ADSP_MAX_NULL_SINK (ADSP_ADMAIF_END - ADSP_NULL_SINK_START + 1) #define ADSP_MAX_NULL_SINK (ADSP_ADMAIF_END - ADSP_NULL_SINK_START + 1)
#define IS_NULL_SINK(reg) ((reg >= ADSP_NULL_SINK_START) && \ #define IS_NULL_SINK(reg) ((reg >= ADSP_NULL_SINK_START) && \

View File

@@ -3492,6 +3492,16 @@ static const char *tegra210_adsp_mux_texts[] = {
"PLUGIN8-PLACE-HOLDER", "PLUGIN8-PLACE-HOLDER",
"PLUGIN9-PLACE-HOLDER", "PLUGIN9-PLACE-HOLDER",
"PLUGIN10-PLACE-HOLDER", "PLUGIN10-PLACE-HOLDER",
"PLUGIN11-PLACE-HOLDER",
"PLUGIN12-PLACE-HOLDER",
"PLUGIN13-PLACE-HOLDER",
"PLUGIN14-PLACE-HOLDER",
"PLUGIN15-PLACE-HOLDER",
"PLUGIN16-PLACE-HOLDER",
"PLUGIN17-PLACE-HOLDER",
"PLUGIN18-PLACE-HOLDER",
"PLUGIN19-PLACE-HOLDER",
"PLUGIN20-PLACE-HOLDER",
}; };
#define ADSP_MUX_ENUM_CTRL_DECL(ename, reg) \ #define ADSP_MUX_ENUM_CTRL_DECL(ename, reg) \
@@ -3623,6 +3633,16 @@ static ADSP_MUX_ENUM_CTRL_DECL(plugin7, TEGRA210_ADSP_PLUGIN7);
static ADSP_MUX_ENUM_CTRL_DECL(plugin8, TEGRA210_ADSP_PLUGIN8); static ADSP_MUX_ENUM_CTRL_DECL(plugin8, TEGRA210_ADSP_PLUGIN8);
static ADSP_MUX_ENUM_CTRL_DECL(plugin9, TEGRA210_ADSP_PLUGIN9); static ADSP_MUX_ENUM_CTRL_DECL(plugin9, TEGRA210_ADSP_PLUGIN9);
static ADSP_MUX_ENUM_CTRL_DECL(plugin10, TEGRA210_ADSP_PLUGIN10); static ADSP_MUX_ENUM_CTRL_DECL(plugin10, TEGRA210_ADSP_PLUGIN10);
static ADSP_MUX_ENUM_CTRL_DECL(plugin11, TEGRA210_ADSP_PLUGIN11);
static ADSP_MUX_ENUM_CTRL_DECL(plugin12, TEGRA210_ADSP_PLUGIN12);
static ADSP_MUX_ENUM_CTRL_DECL(plugin13, TEGRA210_ADSP_PLUGIN13);
static ADSP_MUX_ENUM_CTRL_DECL(plugin14, TEGRA210_ADSP_PLUGIN14);
static ADSP_MUX_ENUM_CTRL_DECL(plugin15, TEGRA210_ADSP_PLUGIN15);
static ADSP_MUX_ENUM_CTRL_DECL(plugin16, TEGRA210_ADSP_PLUGIN16);
static ADSP_MUX_ENUM_CTRL_DECL(plugin17, TEGRA210_ADSP_PLUGIN17);
static ADSP_MUX_ENUM_CTRL_DECL(plugin18, TEGRA210_ADSP_PLUGIN18);
static ADSP_MUX_ENUM_CTRL_DECL(plugin19, TEGRA210_ADSP_PLUGIN19);
static ADSP_MUX_ENUM_CTRL_DECL(plugin20, TEGRA210_ADSP_PLUGIN20);
#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), \
@@ -3779,6 +3799,16 @@ static struct snd_soc_dapm_widget tegra210_adsp_widgets[] = {
ADSP_WIDGETS("PLUGIN8-PLACE-HOLDER", plugin8, TEGRA210_ADSP_PLUGIN8), ADSP_WIDGETS("PLUGIN8-PLACE-HOLDER", plugin8, TEGRA210_ADSP_PLUGIN8),
ADSP_WIDGETS("PLUGIN9-PLACE-HOLDER", plugin9, TEGRA210_ADSP_PLUGIN9), ADSP_WIDGETS("PLUGIN9-PLACE-HOLDER", plugin9, TEGRA210_ADSP_PLUGIN9),
ADSP_WIDGETS("PLUGIN10-PLACE-HOLDER", plugin10, TEGRA210_ADSP_PLUGIN10), ADSP_WIDGETS("PLUGIN10-PLACE-HOLDER", plugin10, TEGRA210_ADSP_PLUGIN10),
ADSP_WIDGETS("PLUGIN11-PLACE-HOLDER", plugin11, TEGRA210_ADSP_PLUGIN11),
ADSP_WIDGETS("PLUGIN12-PLACE-HOLDER", plugin12, TEGRA210_ADSP_PLUGIN12),
ADSP_WIDGETS("PLUGIN13-PLACE-HOLDER", plugin13, TEGRA210_ADSP_PLUGIN13),
ADSP_WIDGETS("PLUGIN14-PLACE-HOLDER", plugin14, TEGRA210_ADSP_PLUGIN14),
ADSP_WIDGETS("PLUGIN15-PLACE-HOLDER", plugin15, TEGRA210_ADSP_PLUGIN15),
ADSP_WIDGETS("PLUGIN16-PLACE-HOLDER", plugin16, TEGRA210_ADSP_PLUGIN16),
ADSP_WIDGETS("PLUGIN17-PLACE-HOLDER", plugin17, TEGRA210_ADSP_PLUGIN17),
ADSP_WIDGETS("PLUGIN18-PLACE-HOLDER", plugin18, TEGRA210_ADSP_PLUGIN18),
ADSP_WIDGETS("PLUGIN19-PLACE-HOLDER", plugin19, TEGRA210_ADSP_PLUGIN19),
ADSP_WIDGETS("PLUGIN20-PLACE-HOLDER", plugin20, TEGRA210_ADSP_PLUGIN20),
}; };
#define ADSP_EP_ROUTES(name) \ #define ADSP_EP_ROUTES(name) \
@@ -3896,7 +3926,17 @@ static struct snd_soc_dapm_widget tegra210_adsp_widgets[] = {
{ name " MUX", "PLUGIN7-PLACE-HOLDER", "PLUGIN7-PLACE-HOLDER TX"}, \ { name " MUX", "PLUGIN7-PLACE-HOLDER", "PLUGIN7-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN8-PLACE-HOLDER", "PLUGIN8-PLACE-HOLDER TX"}, \ { name " MUX", "PLUGIN8-PLACE-HOLDER", "PLUGIN8-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN9-PLACE-HOLDER", "PLUGIN9-PLACE-HOLDER TX"}, \ { name " MUX", "PLUGIN9-PLACE-HOLDER", "PLUGIN9-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN10-PLACE-HOLDER", "PLUGIN10-PLACE-HOLDER TX"} { name " MUX", "PLUGIN10-PLACE-HOLDER", "PLUGIN10-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN11-PLACE-HOLDER", "PLUGIN11-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN12-PLACE-HOLDER", "PLUGIN12-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN13-PLACE-HOLDER", "PLUGIN13-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN14-PLACE-HOLDER", "PLUGIN14-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN15-PLACE-HOLDER", "PLUGIN15-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN16-PLACE-HOLDER", "PLUGIN16-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN17-PLACE-HOLDER", "PLUGIN17-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN18-PLACE-HOLDER", "PLUGIN18-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN19-PLACE-HOLDER", "PLUGIN19-PLACE-HOLDER TX"}, \
{ name " MUX", "PLUGIN20-PLACE-HOLDER", "PLUGIN20-PLACE-HOLDER TX"}
#define ADSP_EP_MUX_ROUTES(name) \ #define ADSP_EP_MUX_ROUTES(name) \
{ name " RX", NULL, name " Receive"}, \ { name " RX", NULL, name " Receive"}, \
@@ -4062,6 +4102,16 @@ static struct snd_soc_dapm_route tegra210_adsp_routes[] = {
ADSP_PLUGIN_MUX_ROUTES("PLUGIN8-PLACE-HOLDER"), ADSP_PLUGIN_MUX_ROUTES("PLUGIN8-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN9-PLACE-HOLDER"), ADSP_PLUGIN_MUX_ROUTES("PLUGIN9-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN10-PLACE-HOLDER"), ADSP_PLUGIN_MUX_ROUTES("PLUGIN10-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN11-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN12-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN13-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN14-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN15-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN16-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN17-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN18-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN19-PLACE-HOLDER"),
ADSP_PLUGIN_MUX_ROUTES("PLUGIN20-PLACE-HOLDER"),
}; };
static void tegra210_adsp_wt_replace(struct device *dev, char **dest1, static void tegra210_adsp_wt_replace(struct device *dev, char **dest1,
@@ -4848,6 +4898,26 @@ static struct snd_kcontrol_new tegra210_adsp_controls[] = {
TEGRA210_ADSP_PLUGIN9), TEGRA210_ADSP_PLUGIN9),
SND_SOC_PARAM_EXT("PLUGIN10-PLACE-HOLDER set params", SND_SOC_PARAM_EXT("PLUGIN10-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN10), TEGRA210_ADSP_PLUGIN10),
SND_SOC_PARAM_EXT("PLUGIN11-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN11),
SND_SOC_PARAM_EXT("PLUGIN12-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN12),
SND_SOC_PARAM_EXT("PLUGIN13-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN13),
SND_SOC_PARAM_EXT("PLUGIN14-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN14),
SND_SOC_PARAM_EXT("PLUGIN15-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN15),
SND_SOC_PARAM_EXT("PLUGIN16-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN16),
SND_SOC_PARAM_EXT("PLUGIN17-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN17),
SND_SOC_PARAM_EXT("PLUGIN18-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN18),
SND_SOC_PARAM_EXT("PLUGIN19-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN19),
SND_SOC_PARAM_EXT("PLUGIN20-PLACE-HOLDER set params",
TEGRA210_ADSP_PLUGIN20),
SND_SOC_PARAM_TLV("PLUGIN1-PLACE-HOLDER send bytes", SND_SOC_PARAM_TLV("PLUGIN1-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN1, 0x1000), TEGRA210_ADSP_PLUGIN1, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN2-PLACE-HOLDER send bytes", SND_SOC_PARAM_TLV("PLUGIN2-PLACE-HOLDER send bytes",
@@ -4868,6 +4938,26 @@ static struct snd_kcontrol_new tegra210_adsp_controls[] = {
TEGRA210_ADSP_PLUGIN9, 0x1000), TEGRA210_ADSP_PLUGIN9, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN10-PLACE-HOLDER send bytes", SND_SOC_PARAM_TLV("PLUGIN10-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN10, 0x1000), TEGRA210_ADSP_PLUGIN10, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN11-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN11, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN12-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN12, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN13-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN13, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN14-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN14, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN15-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN15, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN16-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN16, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN17-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN17, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN18-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN18, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN19-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN19, 0x1000),
SND_SOC_PARAM_TLV("PLUGIN20-PLACE-HOLDER send bytes",
TEGRA210_ADSP_PLUGIN20, 0x1000),
SND_SOC_PARAM_EXT("ADMA1 set params", SND_SOC_PARAM_EXT("ADMA1 set params",
TEGRA210_ADSP_PLUGIN_ADMA1), TEGRA210_ADSP_PLUGIN_ADMA1),
SND_SOC_PARAM_EXT("ADMA2 set params", SND_SOC_PARAM_EXT("ADMA2 set params",
@@ -5137,6 +5227,14 @@ static int tegra210_adsp_audio_platform_probe(struct platform_device *pdev)
adsp_app_count = 0; adsp_app_count = 0;
} }
/* check for maximum number of plugins */
if (adsp_app_count > PLUGIN_NUM) {
dev_err(&pdev->dev, "num-plugin: %d\n", adsp_app_count);
dev_err(&pdev->dev, "Max plugins supported: %d\n",
PLUGIN_NUM);
adsp_app_count = PLUGIN_NUM;
}
/* allocate memory for app descritors */ /* allocate memory for app descritors */
adsp_app_desc = devm_kzalloc(&pdev->dev, adsp_app_desc = devm_kzalloc(&pdev->dev,
(adsp_app_count + ARRAY_SIZE(adsp_app_minimal)) (adsp_app_count + ARRAY_SIZE(adsp_app_minimal))