ASoC: tegra-alt: ADSP plugin removal/addition fix

With multiple APM's present, plugin addition
or removal does not work.

Fix it by checking only for ADSP_APP when
trying to find the APM of which the plugin
is part of.

Bug 1605750

Change-Id: I457b04a5f1ead9ac682f734b0d145f5250c411a9
Signed-off-by: Uday Gupta <udayg@nvidia.com>
Reviewed-on: http://git-master/r/714834
Reviewed-by: Omar Nemri <onemri@nvidia.com>
Tested-by: Omar Nemri <onemri@nvidia.com>
Reviewed-by: Stephen Holmes <sholmes@nvidia.com>
Reviewed-by: Arun Shamanna Lakshmi <aruns@nvidia.com>
Tested-by: Arun Shamanna Lakshmi <aruns@nvidia.com>
This commit is contained in:
Uday Gupta
2015-03-06 10:55:30 -08:00
committed by Sameer Pujar
parent 3c96a17c10
commit 63bb55cf62

View File

@@ -757,7 +757,7 @@ static int tegra210_adsp_remove_connection(struct tegra210_adsp *adsp,
struct tegra210_adsp_app *plugin) struct tegra210_adsp_app *plugin)
{ {
struct tegra210_adsp_app *app; struct tegra210_adsp_app *app;
uint32_t i, source, apm_out = 0; uint32_t i, source, apm_out = TEGRA210_ADSP_NONE;
if (!IS_ADSP_APP(plugin->reg)) if (!IS_ADSP_APP(plugin->reg))
return 0; return 0;
@@ -767,7 +767,7 @@ static int tegra210_adsp_remove_connection(struct tegra210_adsp *adsp,
/* if the path is already broken, do not continue */ /* if the path is already broken, do not continue */
if (!app->connect) if (!app->connect)
continue; continue;
while (app->reg != TEGRA210_ADSP_NONE) { while (IS_ADSP_APP(app->reg)) {
if (app->reg == plugin->reg) { if (app->reg == plugin->reg) {
apm_out = i; apm_out = i;
break; break;