mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
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:
committed by
Sameer Pujar
parent
f734578a22
commit
3025fca447
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user