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 <rlokhande@nvidia.com>
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
(cherry picked from commit 9528e52063467df94bc37fe2ad10d74a1c573848)
Reviewed-on: https://git-master.nvidia.com/r/1533079
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
This commit is contained in:
Ravindra Lokhande
2017-03-21 11:13:52 +05:30
committed by Sameer Pujar
parent f734578a22
commit 3025fca447
13 changed files with 119 additions and 87 deletions

View File

@@ -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,
};

View File

@@ -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,

View File

@@ -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 = {

View File

@@ -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,

View File

@@ -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 */

View File

@@ -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)

View File

@@ -31,13 +31,14 @@
#include <linux/pinctrl/consumer.h>
#include <linux/of_device.h>
#include <linux/debugfs.h>
#include <linux/tegra-soc.h>
#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)

View File

@@ -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,

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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);