From 3025fca4477e84fb2f9267b016477f7549459008 Mon Sep 17 00:00:00 2001 From: Ravindra Lokhande Date: Tue, 21 Mar 2017 11:13:52 +0530 Subject: [PATCH] ASoC: tegra-alt: changes needed for kernel 4.9 This patch fixes compile errors for kernel 4.9. Kernel 4.9 has two changes, struct snd_soc_codec_driver is modified and changed PCM runtime array to a list from struct snd_soc_card. Bug 1856400 Change-Id: I32d0d6d5d2cb79a3af27b81786d4e288d1be4d2d Signed-off-by: Ravindra Lokhande Signed-off-by: Sameer Pujar (cherry picked from commit 9528e52063467df94bc37fe2ad10d74a1c573848) Reviewed-on: https://git-master.nvidia.com/r/1533079 GVS: Gerrit_Virtual_Submit Reviewed-by: Sachin Nikam --- sound/soc/tegra-alt/tegra210_admaif_alt.c | 31 +++++++++++++---------- sound/soc/tegra-alt/tegra210_adx_alt.c | 10 +++++--- sound/soc/tegra-alt/tegra210_afc_alt.c | 12 ++++----- sound/soc/tegra-alt/tegra210_amx_alt.c | 14 +++++----- sound/soc/tegra-alt/tegra210_dmic_alt.c | 14 +++++----- sound/soc/tegra-alt/tegra210_i2s_alt.c | 14 +++++----- sound/soc/tegra-alt/tegra210_iqc_alt.c | 19 ++++++++------ sound/soc/tegra-alt/tegra210_mixer_alt.c | 14 +++++----- sound/soc/tegra-alt/tegra210_mvc_alt.c | 14 +++++----- sound/soc/tegra-alt/tegra210_ope_alt.c | 14 +++++----- sound/soc/tegra-alt/tegra210_sfc_alt.c | 14 +++++----- sound/soc/tegra-alt/tegra210_spdif_alt.c | 14 +++++----- sound/soc/tegra-alt/tegra210_xbar_alt.c | 22 +++++++++++----- 13 files changed, 119 insertions(+), 87 deletions(-) diff --git a/sound/soc/tegra-alt/tegra210_admaif_alt.c b/sound/soc/tegra-alt/tegra210_admaif_alt.c index 88a55045..5950d379 100644 --- a/sound/soc/tegra-alt/tegra210_admaif_alt.c +++ b/sound/soc/tegra-alt/tegra210_admaif_alt.c @@ -1,7 +1,7 @@ /* * tegra210_admaif_alt.c - Tegra ADMAIF driver * - * Copyright (c) 2016-2017 NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2014-2017 NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -1048,27 +1048,30 @@ static int tegra_admaif_codec_probe(struct snd_soc_codec *codec) static struct snd_soc_codec_driver tegra210_admaif_codec = { .probe = tegra_admaif_codec_probe, - .dapm_widgets = tegra_admaif_widgets, - .num_dapm_widgets = TEGRA210_ADMAIF_CHANNEL_COUNT * 4, - .dapm_routes = tegra_admaif_routes, - .num_dapm_routes = TEGRA210_ADMAIF_CHANNEL_COUNT * 6, - .controls = tegra210_admaif_controls, - .num_controls = ARRAY_SIZE(tegra210_admaif_controls), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra_admaif_widgets, + .num_dapm_widgets = TEGRA210_ADMAIF_CHANNEL_COUNT * 4, + .dapm_routes = tegra_admaif_routes, + .num_dapm_routes = TEGRA210_ADMAIF_CHANNEL_COUNT * 6, + .controls = tegra210_admaif_controls, + .num_controls = ARRAY_SIZE(tegra210_admaif_controls), + }, }; static struct snd_soc_codec_driver tegra186_admaif_codec = { .probe = tegra_admaif_codec_probe, - .dapm_widgets = tegra_admaif_widgets, - .num_dapm_widgets = TEGRA186_ADMAIF_CHANNEL_COUNT * 4, - .dapm_routes = tegra_admaif_routes, - .num_dapm_routes = TEGRA186_ADMAIF_CHANNEL_COUNT * 6, - .controls = tegra186_admaif_controls, - .num_controls = ARRAY_SIZE(tegra186_admaif_controls), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra_admaif_widgets, + .num_dapm_widgets = TEGRA186_ADMAIF_CHANNEL_COUNT * 4, + .dapm_routes = tegra_admaif_routes, + .num_dapm_routes = TEGRA186_ADMAIF_CHANNEL_COUNT * 6, + .controls = tegra186_admaif_controls, + .num_controls = ARRAY_SIZE(tegra186_admaif_controls), + }, }; - static const struct snd_soc_component_driver tegra_admaif_dai_driver = { .name = DRV_NAME, }; diff --git a/sound/soc/tegra-alt/tegra210_adx_alt.c b/sound/soc/tegra-alt/tegra210_adx_alt.c index 3182c33c..c131eef4 100644 --- a/sound/soc/tegra-alt/tegra210_adx_alt.c +++ b/sound/soc/tegra-alt/tegra210_adx_alt.c @@ -507,11 +507,13 @@ static const struct snd_soc_dapm_route tegra210_adx_routes[] = { static struct snd_soc_codec_driver tegra210_adx_codec = { .probe = tegra210_adx_codec_probe, - .dapm_widgets = tegra210_adx_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_adx_widgets), - .dapm_routes = tegra210_adx_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_adx_routes), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_adx_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_adx_widgets), + .dapm_routes = tegra210_adx_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_adx_routes), + }, }; static bool tegra210_adx_wr_reg(struct device *dev, diff --git a/sound/soc/tegra-alt/tegra210_afc_alt.c b/sound/soc/tegra-alt/tegra210_afc_alt.c index 79baa1c9..d3cae76e 100644 --- a/sound/soc/tegra-alt/tegra210_afc_alt.c +++ b/sound/soc/tegra-alt/tegra210_afc_alt.c @@ -435,13 +435,13 @@ static const struct snd_soc_dapm_route tegra210_afc_routes[] = { static const struct snd_soc_codec_driver tegra210_afc_codec = { .probe = tegra210_afc_codec_probe, - .dapm_widgets = tegra210_afc_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_afc_widgets), - .dapm_routes = tegra210_afc_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_afc_routes), - .controls = tegra210_afc_controls, - .num_controls = ARRAY_SIZE(tegra210_afc_controls), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_afc_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_afc_widgets), + .dapm_routes = tegra210_afc_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_afc_routes), + }, }; static const struct snd_soc_codec_driver tegra186_afc_codec = { diff --git a/sound/soc/tegra-alt/tegra210_amx_alt.c b/sound/soc/tegra-alt/tegra210_amx_alt.c index c442a44a..cb848f55 100644 --- a/sound/soc/tegra-alt/tegra210_amx_alt.c +++ b/sound/soc/tegra-alt/tegra210_amx_alt.c @@ -731,13 +731,15 @@ static struct snd_kcontrol_new tegra210_amx_controls[] = { static struct snd_soc_codec_driver tegra210_amx_codec = { .probe = tegra210_amx_codec_probe, - .dapm_widgets = tegra210_amx_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_amx_widgets), - .dapm_routes = tegra210_amx_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_amx_routes), - .controls = tegra210_amx_controls, - .num_controls = ARRAY_SIZE(tegra210_amx_controls), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_amx_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_amx_widgets), + .dapm_routes = tegra210_amx_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_amx_routes), + .controls = tegra210_amx_controls, + .num_controls = ARRAY_SIZE(tegra210_amx_controls), + }, }; static bool tegra210_amx_wr_reg(struct device *dev, diff --git a/sound/soc/tegra-alt/tegra210_dmic_alt.c b/sound/soc/tegra-alt/tegra210_dmic_alt.c index 982589f0..bf5ec00a 100644 --- a/sound/soc/tegra-alt/tegra210_dmic_alt.c +++ b/sound/soc/tegra-alt/tegra210_dmic_alt.c @@ -429,13 +429,15 @@ static const struct snd_kcontrol_new tegra210_dmic_controls[] = { static struct snd_soc_codec_driver tegra210_dmic_codec = { .probe = tegra210_dmic_codec_probe, - .dapm_widgets = tegra210_dmic_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_dmic_widgets), - .dapm_routes = tegra210_dmic_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_dmic_routes), - .controls = tegra210_dmic_controls, - .num_controls = ARRAY_SIZE(tegra210_dmic_controls), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_dmic_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_dmic_widgets), + .dapm_routes = tegra210_dmic_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_dmic_routes), + .controls = tegra210_dmic_controls, + .num_controls = ARRAY_SIZE(tegra210_dmic_controls), + }, }; /* Regmap callback functions */ diff --git a/sound/soc/tegra-alt/tegra210_i2s_alt.c b/sound/soc/tegra-alt/tegra210_i2s_alt.c index 4bf46f55..f131ba7c 100644 --- a/sound/soc/tegra-alt/tegra210_i2s_alt.c +++ b/sound/soc/tegra-alt/tegra210_i2s_alt.c @@ -865,13 +865,15 @@ static const struct snd_soc_dapm_route tegra210_i2s_routes[] = { static struct snd_soc_codec_driver tegra210_i2s_codec = { .probe = tegra210_i2s_codec_probe, - .dapm_widgets = tegra210_i2s_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_i2s_widgets), - .dapm_routes = tegra210_i2s_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_i2s_routes), - .controls = tegra210_i2s_controls, - .num_controls = ARRAY_SIZE(tegra210_i2s_controls), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_i2s_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_i2s_widgets), + .dapm_routes = tegra210_i2s_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_i2s_routes), + .controls = tegra210_i2s_controls, + .num_controls = ARRAY_SIZE(tegra210_i2s_controls), + }, }; static bool tegra210_i2s_wr_reg(struct device *dev, unsigned int reg) diff --git a/sound/soc/tegra-alt/tegra210_iqc_alt.c b/sound/soc/tegra-alt/tegra210_iqc_alt.c index 514e0459..ef8aaea8 100644 --- a/sound/soc/tegra-alt/tegra210_iqc_alt.c +++ b/sound/soc/tegra-alt/tegra210_iqc_alt.c @@ -31,13 +31,14 @@ #include #include #include +#include #include "tegra210_xbar_alt.h" #include "tegra210_iqc_alt.h" #define DRV_NAME "tegra210-iqc" -static const struct reg_default tegra210_iqc_reg_defaultss[] = { +static const struct reg_default tegra210_iqc_reg_defaults[] = { { TEGRA210_IQC_AXBAR_TX_INT_MASK, 0x0000000f}, { TEGRA210_IQC_AXBAR_TX_CIF_CTRL, 0x00007700}, { TEGRA210_IQC_CG, 0x1}, @@ -117,7 +118,7 @@ static int tegra210_iqc_set_audio_cif(struct tegra210_iqc *iqc, return -EINVAL; } - memset(cif_conf, 0, sizeof(struct tegra210_xbar_cif_conf)); + memset(&cif_conf, 0, sizeof(struct tegra210_xbar_cif_conf)); cif_conf.audio_channels = channels; cif_conf.client_channels = channels; cif_conf.audio_bits = audio_bits; @@ -233,13 +234,15 @@ static const struct snd_soc_dapm_route tegra210_iqc_routes[] = { static struct snd_soc_codec_driver tegra210_iqc_codec = { .probe = tegra210_iqc_codec_probe, - .dapm_widgets = tegra210_iqc_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_iqc_widgets), - .dapm_routes = tegra210_iqc_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_iqc_routes), - .controls = tegra210_iqc_controls, - .num_controls = ARRAY_SIZE(tegra210_iqc_controls), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_iqc_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_iqc_widgets), + .dapm_routes = tegra210_iqc_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_iqc_routes), + .controls = tegra210_iqc_controls, + .num_controls = ARRAY_SIZE(tegra210_iqc_controls), + }, }; static bool tegra210_iqc_wr_reg(struct device *dev, unsigned int reg) diff --git a/sound/soc/tegra-alt/tegra210_mixer_alt.c b/sound/soc/tegra-alt/tegra210_mixer_alt.c index b265273c..bbc18aab 100644 --- a/sound/soc/tegra-alt/tegra210_mixer_alt.c +++ b/sound/soc/tegra-alt/tegra210_mixer_alt.c @@ -540,13 +540,15 @@ static const struct snd_soc_dapm_route tegra210_mixer_routes[] = { static struct snd_soc_codec_driver tegra210_mixer_codec = { .probe = tegra210_mixer_codec_probe, - .dapm_widgets = tegra210_mixer_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_mixer_widgets), - .dapm_routes = tegra210_mixer_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_mixer_routes), - .controls = tegra210_mixer_gain_ctls, - .num_controls = ARRAY_SIZE(tegra210_mixer_gain_ctls), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_mixer_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_mixer_widgets), + .dapm_routes = tegra210_mixer_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_mixer_routes), + .controls = tegra210_mixer_gain_ctls, + .num_controls = ARRAY_SIZE(tegra210_mixer_gain_ctls), + }, }; static bool tegra210_mixer_wr_reg(struct device *dev, diff --git a/sound/soc/tegra-alt/tegra210_mvc_alt.c b/sound/soc/tegra-alt/tegra210_mvc_alt.c index 3e7dc291..16f490d3 100644 --- a/sound/soc/tegra-alt/tegra210_mvc_alt.c +++ b/sound/soc/tegra-alt/tegra210_mvc_alt.c @@ -543,13 +543,15 @@ static const struct snd_soc_dapm_route tegra210_mvc_routes[] = { static struct snd_soc_codec_driver tegra210_mvc_codec = { .probe = tegra210_mvc_codec_probe, - .dapm_widgets = tegra210_mvc_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_mvc_widgets), - .dapm_routes = tegra210_mvc_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_mvc_routes), - .controls = tegra210_mvc_vol_ctrl, - .num_controls = ARRAY_SIZE(tegra210_mvc_vol_ctrl), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_mvc_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_mvc_widgets), + .dapm_routes = tegra210_mvc_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_mvc_routes), + .controls = tegra210_mvc_vol_ctrl, + .num_controls = ARRAY_SIZE(tegra210_mvc_vol_ctrl), + }, }; static bool tegra210_mvc_wr_rd_reg(struct device *dev, unsigned int reg) diff --git a/sound/soc/tegra-alt/tegra210_ope_alt.c b/sound/soc/tegra-alt/tegra210_ope_alt.c index fb166b0f..1585a832 100644 --- a/sound/soc/tegra-alt/tegra210_ope_alt.c +++ b/sound/soc/tegra-alt/tegra210_ope_alt.c @@ -227,14 +227,16 @@ static const struct snd_kcontrol_new tegra210_ope_controls[] = { static struct snd_soc_codec_driver tegra210_ope_codec = { .probe = tegra210_ope_codec_probe, - .dapm_widgets = tegra210_ope_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_ope_widgets), - .dapm_routes = tegra210_ope_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_ope_routes), - .controls = tegra210_ope_controls, - .num_controls = ARRAY_SIZE(tegra210_ope_controls), .idle_bias_off = 1, .get_regmap = tegra210_ope_init_regmap, + .component_driver = { + .dapm_widgets = tegra210_ope_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_ope_widgets), + .dapm_routes = tegra210_ope_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_ope_routes), + .controls = tegra210_ope_controls, + .num_controls = ARRAY_SIZE(tegra210_ope_controls), + }, }; static bool tegra210_ope_wr_reg(struct device *dev, unsigned int reg) diff --git a/sound/soc/tegra-alt/tegra210_sfc_alt.c b/sound/soc/tegra-alt/tegra210_sfc_alt.c index 843a8655..9724932d 100644 --- a/sound/soc/tegra-alt/tegra210_sfc_alt.c +++ b/sound/soc/tegra-alt/tegra210_sfc_alt.c @@ -743,13 +743,15 @@ static const struct snd_kcontrol_new tegra210_sfc_controls[] = { static struct snd_soc_codec_driver tegra210_sfc_codec = { .probe = tegra210_sfc_codec_probe, - .dapm_widgets = tegra210_sfc_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_sfc_widgets), - .dapm_routes = tegra210_sfc_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_sfc_routes), - .controls = tegra210_sfc_controls, - .num_controls = ARRAY_SIZE(tegra210_sfc_controls), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_sfc_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_sfc_widgets), + .dapm_routes = tegra210_sfc_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_sfc_routes), + .controls = tegra210_sfc_controls, + .num_controls = ARRAY_SIZE(tegra210_sfc_controls), + }, }; static bool tegra210_sfc_wr_reg(struct device *dev, unsigned int reg) diff --git a/sound/soc/tegra-alt/tegra210_spdif_alt.c b/sound/soc/tegra-alt/tegra210_spdif_alt.c index e4e63273..f8e00fcb 100644 --- a/sound/soc/tegra-alt/tegra210_spdif_alt.c +++ b/sound/soc/tegra-alt/tegra210_spdif_alt.c @@ -376,13 +376,15 @@ static const struct snd_soc_dapm_route tegra210_spdif_routes[] = { static struct snd_soc_codec_driver tegra210_spdif_codec = { .probe = tegra210_spdif_codec_probe, - .dapm_widgets = tegra210_spdif_widgets, - .num_dapm_widgets = ARRAY_SIZE(tegra210_spdif_widgets), - .dapm_routes = tegra210_spdif_routes, - .num_dapm_routes = ARRAY_SIZE(tegra210_spdif_routes), - .controls = tegra210_spdif_controls, - .num_controls = ARRAY_SIZE(tegra210_spdif_controls), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_spdif_widgets, + .num_dapm_widgets = ARRAY_SIZE(tegra210_spdif_widgets), + .dapm_routes = tegra210_spdif_routes, + .num_dapm_routes = ARRAY_SIZE(tegra210_spdif_routes), + .controls = tegra210_spdif_controls, + .num_controls = ARRAY_SIZE(tegra210_spdif_controls), + }, }; static bool tegra210_spdif_wr_rd_reg(struct device *dev, unsigned int reg) diff --git a/sound/soc/tegra-alt/tegra210_xbar_alt.c b/sound/soc/tegra-alt/tegra210_xbar_alt.c index 98a875b5..d7595fe9 100644 --- a/sound/soc/tegra-alt/tegra210_xbar_alt.c +++ b/sound/soc/tegra-alt/tegra210_xbar_alt.c @@ -531,11 +531,13 @@ static struct of_dev_auxdata tegra210_xbar_auxdata[] = { static struct snd_soc_codec_driver tegra210_xbar_codec = { .probe = tegra_xbar_codec_probe, - .dapm_widgets = tegra210_xbar_widgets, - .dapm_routes = tegra210_xbar_routes, - .num_dapm_widgets = ARRAY_SIZE(tegra210_xbar_widgets), - .num_dapm_routes = ARRAY_SIZE(tegra210_xbar_routes), .idle_bias_off = 1, + .component_driver = { + .dapm_widgets = tegra210_xbar_widgets, + .dapm_routes = tegra210_xbar_routes, + .num_dapm_widgets = ARRAY_SIZE(tegra210_xbar_widgets), + .num_dapm_routes = ARRAY_SIZE(tegra210_xbar_routes), + }, }; static const struct regmap_config tegra210_xbar_regmap_config = { @@ -550,13 +552,19 @@ static const struct regmap_config tegra210_xbar_regmap_config = { static int tegra210_xbar_registration(struct platform_device *pdev) { int ret; + int num_dapm_widgets, num_dapm_routes; - tegra210_xbar_codec.num_dapm_widgets = (TEGRA210_NUM_MUX_WIDGETS * 3) + - (TEGRA210_NUM_DAIS - TEGRA210_NUM_MUX_WIDGETS) * 2; - tegra210_xbar_codec.num_dapm_routes = + num_dapm_widgets = (TEGRA210_NUM_MUX_WIDGETS * 3) + + (TEGRA210_NUM_DAIS - TEGRA210_NUM_MUX_WIDGETS) * 2; + num_dapm_routes = (TEGRA210_NUM_DAIS - TEGRA210_NUM_MUX_WIDGETS) * 2 + (TEGRA210_NUM_MUX_WIDGETS * TEGRA210_NUM_MUX_INPUT); + tegra210_xbar_codec.component_driver.num_dapm_widgets = + num_dapm_widgets; + tegra210_xbar_codec.component_driver.num_dapm_routes = + num_dapm_routes; + ret = snd_soc_register_codec(&pdev->dev, &tegra210_xbar_codec, tegra210_xbar_dais, TEGRA210_NUM_DAIS);