mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
ASoC: tegra: Fix build for Linux v6.1
Upstream Linux kernel commit 3989ade2d1e7 ("ASoC: soc.h: remove
num_cpus/codecs") removes the 'num_cpus' member from the
'snd_soc_pcm_runtime' structure because this is also available under the
dai_link structure. This breaks building the Tegra ASoC drivers for
Linux v6.1 and so update the Tegra ASoC drivers to align the latest
mainline. Note that this also works for earlier kernel versions and so
no need to check for kernel version.
Bug 3835208
Change-Id: Ib846e937d761b65276ace73f7817ef8bd21c21d8
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2795754
Reviewed-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
bbde9d8b23
commit
541420a420
@@ -1398,11 +1398,11 @@ static int tegra210_adsp_compr_open(struct snd_soc_component *component,
|
|||||||
struct snd_soc_pcm_runtime *rtd = cstream->device->private_data;
|
struct snd_soc_pcm_runtime *rtd = cstream->device->private_data;
|
||||||
struct tegra210_adsp *adsp = snd_soc_component_get_drvdata(component);
|
struct tegra210_adsp *adsp = snd_soc_component_get_drvdata(component);
|
||||||
struct tegra210_adsp_compr_rtd *prtd;
|
struct tegra210_adsp_compr_rtd *prtd;
|
||||||
uint32_t fe_reg = rtd->dais[rtd->num_cpus]->id + 1;
|
uint32_t fe_reg = rtd->dais[rtd->dai_link->num_cpus]->id + 1;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
dev_vdbg(adsp->dev, "%s : DAI ID %d", __func__, rtd->dais[rtd->num_cpus]->id);
|
dev_vdbg(adsp->dev, "%s : DAI ID %d", __func__, rtd->dais[rtd->dai_link->num_cpus]->id);
|
||||||
|
|
||||||
mutex_lock(&adsp->mutex);
|
mutex_lock(&adsp->mutex);
|
||||||
if (!adsp->init_done) {
|
if (!adsp->init_done) {
|
||||||
@@ -1741,7 +1741,7 @@ static int tegra210_adsp_pcm_open(struct snd_soc_component *component,
|
|||||||
struct snd_soc_component *cmpnt = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
struct snd_soc_component *cmpnt = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
|
||||||
struct tegra210_adsp *adsp = snd_soc_component_get_drvdata(cmpnt);
|
struct tegra210_adsp *adsp = snd_soc_component_get_drvdata(cmpnt);
|
||||||
struct tegra210_adsp_pcm_rtd *prtd;
|
struct tegra210_adsp_pcm_rtd *prtd;
|
||||||
uint32_t fe_reg = rtd->dais[rtd->num_cpus]->id + 1;
|
uint32_t fe_reg = rtd->dais[rtd->dai_link->num_cpus]->id + 1;
|
||||||
uint32_t source;
|
uint32_t source;
|
||||||
int i, ret = 0;
|
int i, ret = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -840,9 +840,9 @@ int tegra_machine_add_codec_jack_control(struct snd_soc_card *card,
|
|||||||
.private_value = (unsigned long)&tegra_machine_jack_state,
|
.private_value = (unsigned long)&tegra_machine_jack_state,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (rtd->dais[rtd->num_cpus]->component->name_prefix)
|
if (rtd->dais[rtd->dai_link->num_cpus]->component->name_prefix)
|
||||||
snprintf(name, sizeof(name), "%s Jack-state",
|
snprintf(name, sizeof(name), "%s Jack-state",
|
||||||
rtd->dais[rtd->num_cpus]->component->name_prefix);
|
rtd->dais[rtd->dai_link->num_cpus]->component->name_prefix);
|
||||||
else
|
else
|
||||||
snprintf(name, sizeof(name), "Jack-state");
|
snprintf(name, sizeof(name), "Jack-state");
|
||||||
|
|
||||||
|
|||||||
@@ -32,11 +32,12 @@ static int tegra_audio_dai_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
|
|
||||||
static int tegra_machine_rt56xx_init(struct snd_soc_pcm_runtime *rtd)
|
static int tegra_machine_rt56xx_init(struct snd_soc_pcm_runtime *rtd)
|
||||||
{
|
{
|
||||||
struct snd_soc_component *cmpnt = rtd->dais[rtd->num_cpus]->component;
|
struct snd_soc_component *cmpnt;
|
||||||
struct snd_soc_card *card = rtd->card;
|
struct snd_soc_card *card = rtd->card;
|
||||||
struct snd_soc_jack *jack;
|
struct snd_soc_jack *jack;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
cmpnt = rtd->dais[rtd->dai_link->num_cpus]->component;
|
||||||
if (!cmpnt->driver->set_jack)
|
if (!cmpnt->driver->set_jack)
|
||||||
goto dai_init;
|
goto dai_init;
|
||||||
|
|
||||||
@@ -88,7 +89,8 @@ static int tegra_machine_fepi_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
struct device *dev = rtd->card->dev;
|
struct device *dev = rtd->card->dev;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], SGTL5000_SYSCLK, 12288000,
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->dai_link->num_cpus],
|
||||||
|
SGTL5000_SYSCLK, 12288000,
|
||||||
SND_SOC_CLOCK_IN);
|
SND_SOC_CLOCK_IN);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(dev, "failed to set sgtl5000 sysclk!\n");
|
dev_err(dev, "failed to set sgtl5000 sysclk!\n");
|
||||||
@@ -107,8 +109,8 @@ static int tegra_machine_respeaker_init(struct snd_soc_pcm_runtime *rtd)
|
|||||||
* and source as PLL irrespective of args passed through
|
* and source as PLL irrespective of args passed through
|
||||||
* this callback
|
* this callback
|
||||||
*/
|
*/
|
||||||
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], 0, 24000000,
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->dai_link->num_cpus],
|
||||||
SND_SOC_CLOCK_IN);
|
0, 24000000, SND_SOC_CLOCK_IN);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(dev, "failed to set ac108 sysclk!\n");
|
dev_err(dev, "failed to set ac108 sysclk!\n");
|
||||||
return err;
|
return err;
|
||||||
@@ -159,17 +161,18 @@ static int set_pll_sysclk(struct device *dev, struct snd_soc_pcm_runtime *rtd,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = snd_soc_dai_set_pll(rtd->dais[rtd->num_cpus], 0,
|
err = snd_soc_dai_set_pll(rtd->dais[rtd->dai_link->num_cpus], 0,
|
||||||
pll_src, bclk_rate, srate * 256);
|
pll_src, bclk_rate, srate * 256);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(dev, "failed to set codec pll\n");
|
dev_err(dev, "failed to set codec pll\n");
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], clk_id,
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->dai_link->num_cpus], clk_id,
|
||||||
srate * 256, SND_SOC_CLOCK_IN);
|
srate * 256, SND_SOC_CLOCK_IN);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(dev, "dais[%d] clock not set\n", rtd->num_cpus);
|
dev_err(dev, "dais[%d] clock not set\n",
|
||||||
|
rtd->dai_link->num_cpus);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,24 +189,24 @@ int tegra_codecs_runtime_setup(struct snd_soc_card *card,
|
|||||||
|
|
||||||
rtd = get_pcm_runtime(card, "rt565x-playback");
|
rtd = get_pcm_runtime(card, "rt565x-playback");
|
||||||
if (rtd) {
|
if (rtd) {
|
||||||
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus],
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->dai_link->num_cpus],
|
||||||
RT5659_SCLK_S_MCLK,
|
RT5659_SCLK_S_MCLK,
|
||||||
aud_mclk, SND_SOC_CLOCK_IN);
|
aud_mclk, SND_SOC_CLOCK_IN);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(card->dev, "dais[%d] clock not set\n",
|
dev_err(card->dev, "dais[%d] clock not set\n",
|
||||||
rtd->num_cpus);
|
rtd->dai_link->num_cpus);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rtd = get_pcm_runtime(card, "rt5640-playback");
|
rtd = get_pcm_runtime(card, "rt5640-playback");
|
||||||
if (rtd) {
|
if (rtd) {
|
||||||
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus],
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->dai_link->num_cpus],
|
||||||
RT5640_SCLK_S_MCLK,
|
RT5640_SCLK_S_MCLK,
|
||||||
aud_mclk, SND_SOC_CLOCK_IN);
|
aud_mclk, SND_SOC_CLOCK_IN);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(card->dev, "dais[%d] clock not set\n",
|
dev_err(card->dev, "dais[%d] clock not set\n",
|
||||||
rtd->num_cpus);
|
rtd->dai_link->num_cpus);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -230,12 +233,13 @@ int tegra_codecs_runtime_setup(struct snd_soc_card *card,
|
|||||||
|
|
||||||
rtd = get_pcm_runtime(card, "dspk-playback-r");
|
rtd = get_pcm_runtime(card, "dspk-playback-r");
|
||||||
if (rtd) {
|
if (rtd) {
|
||||||
if (!strcmp(rtd->dais[rtd->num_cpus]->name, "tas2552-amplifier")) {
|
if (!strcmp(rtd->dais[rtd->dai_link->num_cpus]->name, "tas2552-amplifier")) {
|
||||||
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus],
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->dai_link->num_cpus],
|
||||||
TAS2552_PDM_CLK_IVCLKIN, aud_mclk,
|
TAS2552_PDM_CLK_IVCLKIN, aud_mclk,
|
||||||
SND_SOC_CLOCK_IN);
|
SND_SOC_CLOCK_IN);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(card->dev, "dais[%d] clock not set\n", rtd->num_cpus);
|
dev_err(card->dev, "dais[%d] clock not set\n",
|
||||||
|
rtd->dai_link->num_cpus);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -243,12 +247,13 @@ int tegra_codecs_runtime_setup(struct snd_soc_card *card,
|
|||||||
|
|
||||||
rtd = get_pcm_runtime(card, "dspk-playback-l");
|
rtd = get_pcm_runtime(card, "dspk-playback-l");
|
||||||
if (rtd) {
|
if (rtd) {
|
||||||
if (!strcmp(rtd->dais[rtd->num_cpus]->name, "tas2552-amplifier")) {
|
if (!strcmp(rtd->dais[rtd->dai_link->num_cpus]->name, "tas2552-amplifier")) {
|
||||||
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus],
|
err = snd_soc_dai_set_sysclk(rtd->dais[rtd->dai_link->num_cpus],
|
||||||
TAS2552_PDM_CLK_IVCLKIN, aud_mclk,
|
TAS2552_PDM_CLK_IVCLKIN, aud_mclk,
|
||||||
SND_SOC_CLOCK_IN);
|
SND_SOC_CLOCK_IN);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
dev_err(card->dev, "dais[%d] clock not set\n", rtd->num_cpus);
|
dev_err(card->dev, "dais[%d] clock not set\n",
|
||||||
|
rtd->dai_link->num_cpus);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user