From 8e36d597565224010a65a28a810dcf960fca0c0d Mon Sep 17 00:00:00 2001 From: Bitan Biswas Date: Wed, 17 Jun 2020 02:25:12 -0700 Subject: [PATCH] k5.9: Fix linux-5.8-rc3 merge build Resolve linux-5.8-rc3 merge conflicts in k5.9 branch (currently tracking mainline with linux-5.7.0) Fix build errors in k5.9 branch after merge of linux-5.8-rc3 bug 200617764 Change-Id: I3a358fef6e8b7c5926fd0de05a03cee539547e8f Signed-off-by: Bitan Biswas --- sound/soc/tegra/tegra210_adsp.c | 55 +++++++------ sound/soc/tegra/tegra_asoc_machine.c | 4 +- sound/soc/tegra/tegra_asoc_utils.c | 102 ++++++++----------------- sound/soc/tegra/tegra_asoc_utils.h | 6 +- sound/soc/tegra/tegra_machine_driver.c | 32 ++++---- 5 files changed, 85 insertions(+), 114 deletions(-) diff --git a/sound/soc/tegra/tegra210_adsp.c b/sound/soc/tegra/tegra210_adsp.c index 77bd5cdb..3006eeaf 100644 --- a/sound/soc/tegra/tegra210_adsp.c +++ b/sound/soc/tegra/tegra210_adsp.c @@ -1377,17 +1377,17 @@ static int tegra210_adsp_compr_msg_handler(struct tegra210_adsp_app *app, } /* Compress call-back APIs */ -static int tegra210_adsp_compr_open(struct snd_compr_stream *cstream) +static int tegra210_adsp_compr_open(struct snd_soc_component *component, + struct snd_compr_stream *cstream) { struct snd_soc_pcm_runtime *rtd = cstream->device->private_data; - 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(component); struct tegra210_adsp_compr_rtd *prtd; - uint32_t fe_reg = rtd->codec_dai->id + 1; + uint32_t fe_reg = rtd->dais[rtd->num_cpus]->id + 1; int ret; int i; - dev_vdbg(adsp->dev, "%s : DAI ID %d", __func__, rtd->codec_dai->id); + dev_vdbg(adsp->dev, "%s : DAI ID %d", __func__, rtd->dais[rtd->num_cpus]->id); if (!adsp->init_done) return -ENODEV; @@ -1435,7 +1435,8 @@ static int tegra210_adsp_compr_open(struct snd_compr_stream *cstream) return ret; } -static int tegra210_adsp_compr_free(struct snd_compr_stream *cstream) +static int tegra210_adsp_compr_free(struct snd_soc_component *component, + struct snd_compr_stream *cstream) { struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data; unsigned long flags; @@ -1463,8 +1464,9 @@ static int tegra210_adsp_compr_free(struct snd_compr_stream *cstream) return 0; } -static int tegra210_adsp_compr_set_params(struct snd_compr_stream *cstream, - struct snd_compr_params *params) +static int tegra210_adsp_compr_set_params(struct snd_soc_component *component, + struct snd_compr_stream *cstream, + struct snd_compr_params *params) { struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data; int ret = 0; @@ -1511,8 +1513,9 @@ static int tegra210_adsp_compr_set_params(struct snd_compr_stream *cstream, return 0; } -static int tegra210_adsp_compr_get_params(struct snd_compr_stream *cstream, - struct snd_codec *codec) +static int tegra210_adsp_compr_get_params(struct snd_soc_component *component, + struct snd_compr_stream *cstream, + struct snd_codec *codec) { struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data; @@ -1520,8 +1523,8 @@ static int tegra210_adsp_compr_get_params(struct snd_compr_stream *cstream, return 0; } -static int tegra210_adsp_compr_trigger(struct snd_compr_stream *cstream, - int cmd) +static int tegra210_adsp_compr_trigger(struct snd_soc_component *component, + struct snd_compr_stream *cstream, int cmd) { struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data; int ret = 0; @@ -1590,8 +1593,9 @@ static int tegra210_adsp_compr_trigger(struct snd_compr_stream *cstream, return 0; } -static int tegra210_adsp_compr_copy(struct snd_compr_stream *cstream, - char __user *buf, size_t count) +static int tegra210_adsp_compr_copy(struct snd_soc_component *component, + struct snd_compr_stream *cstream, + char __user *buf, size_t count) { struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data; struct snd_compr_runtime *runtime = cstream->runtime; @@ -1627,8 +1631,9 @@ static int tegra210_adsp_compr_copy(struct snd_compr_stream *cstream, return count; } -static int tegra210_adsp_compr_pointer(struct snd_compr_stream *cstream, - struct snd_compr_tstamp *tstamp) +static int tegra210_adsp_compr_pointer(struct snd_soc_component *component, + struct snd_compr_stream *cstream, + struct snd_compr_tstamp *tstamp) { struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data; struct tegra210_adsp_app *app = prtd->fe_apm; @@ -1651,8 +1656,9 @@ static int tegra210_adsp_compr_pointer(struct snd_compr_stream *cstream, return 0; } -static int tegra210_adsp_compr_get_caps(struct snd_compr_stream *cstream, - struct snd_compr_caps *caps) +static int tegra210_adsp_compr_get_caps(struct snd_soc_component *component, + struct snd_compr_stream *cstream, + struct snd_compr_caps *caps) { if (cstream->direction == SND_COMPRESS_PLAYBACK) memcpy(caps, &tegra210_adsp_compr_caps[SND_COMPRESS_PLAYBACK], @@ -1664,8 +1670,9 @@ static int tegra210_adsp_compr_get_caps(struct snd_compr_stream *cstream, return 0; } -static int tegra210_adsp_compr_codec_caps(struct snd_compr_stream *cstream, - struct snd_compr_codec_caps *codec_caps) +static int tegra210_adsp_compr_codec_caps(struct snd_soc_component *component, + struct snd_compr_stream *cstream, + struct snd_compr_codec_caps *codec_caps) { struct tegra210_adsp_compr_rtd *prtd = cstream->runtime->private_data; @@ -1690,7 +1697,7 @@ static int tegra210_adsp_compr_codec_caps(struct snd_compr_stream *cstream, return 0; } -static struct snd_compr_ops tegra210_adsp_compr_ops = { +static struct snd_compress_ops tegra210_adsp_compress_ops = { .open = tegra210_adsp_compr_open, .free = tegra210_adsp_compr_free, .set_params = tegra210_adsp_compr_set_params, @@ -1710,7 +1717,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 tegra210_adsp *adsp = snd_soc_component_get_drvdata(cmpnt); struct tegra210_adsp_pcm_rtd *prtd; - uint32_t fe_reg = rtd->codec_dai->id + 1; + uint32_t fe_reg = rtd->dais[rtd->num_cpus]->id + 1; uint32_t source; int i, ret = 0; @@ -4403,7 +4410,7 @@ static struct snd_soc_component_driver tegra210_adsp_cmpnt = { .trigger = tegra210_adsp_pcm_trigger, .pointer = tegra210_adsp_pcm_pointer, - .compr_ops = &tegra210_adsp_compr_ops, + .compress_ops = &tegra210_adsp_compress_ops, .read = tegra210_adsp_read, .write = tegra210_adsp_write, }; @@ -4660,7 +4667,7 @@ static int tegra210_adsp_audio_probe(struct platform_device *pdev) /* enable/disable compr-ops from DT */ of_property_read_u32(pdev->dev.of_node, "compr-ops", &compr_ops); if (!compr_ops) - tegra210_adsp_cmpnt.compr_ops = NULL; + tegra210_adsp_cmpnt.compress_ops = NULL; if (of_property_read_u32_index(pdev->dev.of_node, "nvidia,adma_ch_page", 0, &adma_ch_page)) { diff --git a/sound/soc/tegra/tegra_asoc_machine.c b/sound/soc/tegra/tegra_asoc_machine.c index f2f520e5..c2660fe2 100644 --- a/sound/soc/tegra/tegra_asoc_machine.c +++ b/sound/soc/tegra/tegra_asoc_machine.c @@ -755,9 +755,9 @@ int tegra_machine_add_codec_jack_control(struct snd_soc_card *card, .private_value = (unsigned long)&tegra_machine_jack_state, }; - if (rtd->codec_dai->component->name_prefix) + if (rtd->dais[rtd->num_cpus]->component->name_prefix) snprintf(name, sizeof(name), "%s Jack-state", - rtd->codec_dai->component->name_prefix); + rtd->dais[rtd->num_cpus]->component->name_prefix); else snprintf(name, sizeof(name), "Jack-state"); diff --git a/sound/soc/tegra/tegra_asoc_utils.c b/sound/soc/tegra/tegra_asoc_utils.c index d1551316..9fe2d2d3 100644 --- a/sound/soc/tegra/tegra_asoc_utils.c +++ b/sound/soc/tegra/tegra_asoc_utils.c @@ -73,21 +73,17 @@ int tegra_asoc_utils_set_rate(struct tegra_asoc_utils_data *data, int srate, data->set_baseclock = 0; data->set_mclk = 0; -<<<<<<< HEAD - clk_disable_unprepare(data->clk_aud_mclk); - clk_disable_unprepare(data->clk_pll_out); - clk_disable_unprepare(data->clk_pll); -======= clk_disable_unprepare(data->clk_cdev1); ->>>>>>> v5.8-rc3 + clk_disable_unprepare(data->clk_pll_a_out0); + clk_disable_unprepare(data->clk_pll_a); - err = clk_set_rate(data->clk_pll, new_baseclock); + err = clk_set_rate(data->clk_pll_a, new_baseclock); if (err) { dev_err(data->dev, "Can't set base pll rate: %d\n", err); return err; } - err = clk_set_rate(data->clk_pll_out, mclk); + err = clk_set_rate(data->clk_pll_a_out0, mclk); if (err) { dev_err(data->dev, "Can't set pll_out rate: %d\n", err); return err; @@ -95,25 +91,21 @@ int tegra_asoc_utils_set_rate(struct tegra_asoc_utils_data *data, int srate, /* Don't set cdev1/extern1 rate; it's locked to pll_out */ -<<<<<<< HEAD - err = clk_prepare_enable(data->clk_pll); + err = clk_prepare_enable(data->clk_pll_a); if (err) { dev_err(data->dev, "Can't enable pll: %d\n", err); return err; } - err = clk_prepare_enable(data->clk_pll_out); + err = clk_prepare_enable(data->clk_pll_a_out0); if (err) { dev_err(data->dev, "Can't enable pll_out: %d\n", err); return err; } - err = clk_prepare_enable(data->clk_aud_mclk); -======= err = clk_prepare_enable(data->clk_cdev1); ->>>>>>> v5.8-rc3 if (err) { - dev_err(data->dev, "Can't enable aud_mclk: %d\n", err); + dev_err(data->dev, "Can't enable clk_cdev1: %d\n", err); return err; } @@ -130,25 +122,21 @@ int tegra_asoc_utils_set_ac97_rate(struct tegra_asoc_utils_data *data) const int ac97_rate = 24576000; int err; -<<<<<<< HEAD - clk_disable_unprepare(data->clk_aud_mclk); - clk_disable_unprepare(data->clk_pll_out); - clk_disable_unprepare(data->clk_pll); -======= clk_disable_unprepare(data->clk_cdev1); ->>>>>>> v5.8-rc3 + clk_disable_unprepare(data->clk_pll_a_out0); + clk_disable_unprepare(data->clk_pll_a); /* * AC97 rate is fixed at 24.576MHz and is used for both the host * controller and the external codec */ - err = clk_set_rate(data->clk_pll, pll_rate); + err = clk_set_rate(data->clk_pll_a, pll_rate); if (err) { dev_err(data->dev, "Can't set pll_a rate: %d\n", err); return err; } - err = clk_set_rate(data->clk_pll_out, ac97_rate); + err = clk_set_rate(data->clk_pll_a_out0, ac97_rate); if (err) { dev_err(data->dev, "Can't set pll_a_out0 rate: %d\n", err); return err; @@ -156,23 +144,19 @@ int tegra_asoc_utils_set_ac97_rate(struct tegra_asoc_utils_data *data) /* Don't set cdev1/extern1 rate; it's locked to pll_a_out0 */ -<<<<<<< HEAD - err = clk_prepare_enable(data->clk_pll); + err = clk_prepare_enable(data->clk_pll_a); if (err) { dev_err(data->dev, "Can't enable pll_a: %d\n", err); return err; } - err = clk_prepare_enable(data->clk_pll_out); + err = clk_prepare_enable(data->clk_pll_a_out0); if (err) { dev_err(data->dev, "Can't enable pll_a_out0: %d\n", err); return err; } - err = clk_prepare_enable(data->clk_aud_mclk); -======= err = clk_prepare_enable(data->clk_cdev1); ->>>>>>> v5.8-rc3 if (err) { dev_err(data->dev, "Can't enable cdev1: %d\n", err); return err; @@ -220,9 +204,9 @@ int tegra_asoc_utils_set_tegra210_rate(struct tegra_asoc_utils_data *data, aud_mclk = sample_rate * data->mclk_fs; if (data->set_baseclock != new_pll_base) { - err = clk_set_rate(data->clk_pll, new_pll_base); + err = clk_set_rate(data->clk_pll_a, new_pll_base); if (err) { - dev_err(data->dev, "Can't set clk_pll rate: %d\n", + dev_err(data->dev, "Can't set clk_pll_a rate: %d\n", err); return err; } @@ -230,9 +214,9 @@ int tegra_asoc_utils_set_tegra210_rate(struct tegra_asoc_utils_data *data, } if (data->set_pll_out != pll_out) { - err = clk_set_rate(data->clk_pll_out, pll_out); + err = clk_set_rate(data->clk_pll_a_out0, pll_out); if (err) { - dev_err(data->dev, "Can't set clk_pll_out rate: %d\n", + dev_err(data->dev, "Can't set clk_pll_a_out0 rate: %d\n", err); return err; } @@ -240,7 +224,7 @@ int tegra_asoc_utils_set_tegra210_rate(struct tegra_asoc_utils_data *data, } if (data->set_mclk != aud_mclk) { - err = clk_set_rate(data->clk_aud_mclk, aud_mclk); + err = clk_set_rate(data->clk_cdev1, aud_mclk); if (err) { dev_err(data->dev, "Can't set clk_cdev1 rate: %d\n", err); @@ -257,9 +241,9 @@ int tegra_asoc_utils_clk_enable(struct tegra_asoc_utils_data *data) { int err; - err = clk_prepare_enable(data->clk_aud_mclk); + err = clk_prepare_enable(data->clk_cdev1); if (err) { - dev_err(data->dev, "Can't enable clock aud_mclk\n"); + dev_err(data->dev, "Can't enable clock cdev1\n"); return err; } @@ -269,7 +253,7 @@ EXPORT_SYMBOL_GPL(tegra_asoc_utils_clk_enable); void tegra_asoc_utils_clk_disable(struct tegra_asoc_utils_data *data) { - clk_disable_unprepare(data->clk_aud_mclk); + clk_disable_unprepare(data->clk_cdev1); } EXPORT_SYMBOL_GPL(tegra_asoc_utils_clk_disable); @@ -300,36 +284,6 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data, return -EINVAL; } -<<<<<<< HEAD - data->clk_pll = devm_clk_get(dev, "pll_a"); - if (IS_ERR(data->clk_pll)) { - dev_err(data->dev, "Can't retrieve clk pll_a\n"); - return PTR_ERR(data->clk_pll); - } - - data->clk_pll_out = devm_clk_get(dev, "pll_a_out0"); - if (IS_ERR(data->clk_pll_out)) { - dev_err(data->dev, "Can't retrieve clk pll_a_out0\n"); - return PTR_ERR(data->clk_pll_out); - } - - data->clk_aud_mclk = devm_clk_get(dev, "extern1"); - if (IS_ERR(data->clk_aud_mclk)) { - dev_err(data->dev, "Can't retrieve clk aud_mclk\n"); - return PTR_ERR(data->clk_aud_mclk); - } - - if (data->soc < TEGRA_ASOC_UTILS_SOC_TEGRA210) { - ret = tegra_asoc_utils_set_rate(data, 44100, 256 * 44100); - if (ret) - return ret; - } - - if (data->soc < TEGRA_ASOC_UTILS_SOC_TEGRA186) - data->pll_base_rate = tegra210_pll_base_rate; - else - data->pll_base_rate = tegra186_pll_base_rate; -======= data->clk_pll_a = devm_clk_get(dev, "pll_a"); if (IS_ERR(data->clk_pll_a)) { dev_err(data->dev, "Can't retrieve clk pll_a\n"); @@ -342,12 +296,23 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data, return PTR_ERR(data->clk_pll_a_out0); } - data->clk_cdev1 = devm_clk_get(dev, "mclk"); + /* FIXME: data->clk_cdev1 = devm_clk_get(dev, "mclk"); */ + data->clk_cdev1 = devm_clk_get(dev, "extern1"); if (IS_ERR(data->clk_cdev1)) { dev_err(data->dev, "Can't retrieve clk cdev1\n"); return PTR_ERR(data->clk_cdev1); } + if (data->soc < TEGRA_ASOC_UTILS_SOC_TEGRA210) { + ret = tegra_asoc_utils_set_rate(data, 44100, 256 * 44100); + if (ret) + return ret; + } + + if (data->soc < TEGRA_ASOC_UTILS_SOC_TEGRA186) + data->pll_base_rate = tegra210_pll_base_rate; + else + data->pll_base_rate = tegra186_pll_base_rate; /* * If clock parents are not set in DT, configure here to use clk_out_1 * as mclk and extern1 as parent for Tegra30 and higher. @@ -397,7 +362,6 @@ int tegra_asoc_utils_init(struct tegra_asoc_utils_data *data, dev_err(data->dev, "Can't enable cdev1: %d\n", ret); return ret; } ->>>>>>> v5.8-rc3 return 0; } diff --git a/sound/soc/tegra/tegra_asoc_utils.h b/sound/soc/tegra/tegra_asoc_utils.h index 75fb8a35..6b88b770 100644 --- a/sound/soc/tegra/tegra_asoc_utils.h +++ b/sound/soc/tegra/tegra_asoc_utils.h @@ -25,9 +25,9 @@ enum tegra_asoc_utils_soc { struct tegra_asoc_utils_data { struct device *dev; enum tegra_asoc_utils_soc soc; - struct clk *clk_pll; - struct clk *clk_pll_out; - struct clk *clk_aud_mclk; + struct clk *clk_pll_a; + struct clk *clk_pll_a_out0; + struct clk *clk_cdev1; int set_baseclock; int set_mclk; unsigned int set_pll_out; diff --git a/sound/soc/tegra/tegra_machine_driver.c b/sound/soc/tegra/tegra_machine_driver.c index 1d2fe299..b12c9438 100644 --- a/sound/soc/tegra/tegra_machine_driver.c +++ b/sound/soc/tegra/tegra_machine_driver.c @@ -183,12 +183,12 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime, if (fmt == SND_SOC_DAIFMT_DSP_A || fmt == SND_SOC_DAIFMT_DSP_B) { err = snd_soc_dai_set_tdm_slot( - rtd->cpu_dai, mask, + rtd->dais[0], mask, mask, 0, 0); if (err < 0) { dev_err(card->dev, "%s cpu DAI slot mask not set\n", - rtd->cpu_dai->name); + rtd->dais[0]->name); return err; } } @@ -196,10 +196,10 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime, rtd = get_pcm_runtime(card, "rt565x-playback"); if (rtd) { - err = snd_soc_dai_set_sysclk(rtd->codec_dai, RT5659_SCLK_S_MCLK, + err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], RT5659_SCLK_S_MCLK, aud_mclk, SND_SOC_CLOCK_IN); if (err < 0) { - dev_err(card->dev, "codec_dai clock not set\n"); + dev_err(card->dev, "dais[%d] clock not set\n", rtd->num_cpus); return err; } } @@ -228,7 +228,7 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime, return -EINVAL; } - err = snd_soc_dai_set_pll(rtd->codec_dai, 0, + err = snd_soc_dai_set_pll(rtd->dais[rtd->num_cpus], 0, RT5659_PLL1_S_BCLK1, bclk_rate, srate * 256); if (err < 0) { @@ -236,22 +236,22 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime, return err; } - err = snd_soc_dai_set_sysclk(rtd->codec_dai, RT5659_SCLK_S_PLL1, + err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], RT5659_SCLK_S_PLL1, srate * 256, SND_SOC_CLOCK_IN); if (err < 0) { - dev_err(card->dev, "codec_dai clock not set\n"); + dev_err(card->dev, "dais[%d] clock not set\n", rtd->num_cpus); return err; } } rtd = get_pcm_runtime(card, "dspk-playback-r"); if (rtd) { - if (!strcmp(rtd->codec_dai->name, "tas2552-amplifier")) { - err = snd_soc_dai_set_sysclk(rtd->codec_dai, + if (!strcmp(rtd->dais[rtd->num_cpus]->name, "tas2552-amplifier")) { + err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], TAS2552_PDM_CLK_IVCLKIN, aud_mclk, SND_SOC_CLOCK_IN); if (err < 0) { - dev_err(card->dev, "codec_dai clock not set\n"); + dev_err(card->dev, "dais[%d] clock not set\n", rtd->num_cpus); return err; } } @@ -259,12 +259,12 @@ static int tegra_machine_dai_init(struct snd_soc_pcm_runtime *runtime, rtd = get_pcm_runtime(card, "dspk-playback-l"); if (rtd) { - if (!strcmp(rtd->codec_dai->name, "tas2552-amplifier")) { - err = snd_soc_dai_set_sysclk(rtd->codec_dai, + if (!strcmp(rtd->dais[rtd->num_cpus]->name, "tas2552-amplifier")) { + err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], TAS2552_PDM_CLK_IVCLKIN, aud_mclk, SND_SOC_CLOCK_IN); if (err < 0) { - dev_err(card->dev, "codec_dai clock not set\n"); + dev_err(card->dev, "dais[%d] clock not set\n", rtd->num_cpus); return err; } } @@ -367,7 +367,7 @@ static int tegra_machine_respeaker_init(struct snd_soc_pcm_runtime *rtd) * and source as PLL irrespective of args passed through * this callback */ - err = snd_soc_dai_set_sysclk(rtd->codec_dai, 0, 24000000, + err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], 0, 24000000, SND_SOC_CLOCK_IN); if (err) { dev_err(dev, "failed to set ac108 sysclk!\n"); @@ -382,7 +382,7 @@ static int tegra_machine_fepi_init(struct snd_soc_pcm_runtime *rtd) struct device *dev = rtd->card->dev; int err; - err = snd_soc_dai_set_sysclk(rtd->codec_dai, SGTL5000_SYSCLK, 12288000, + err = snd_soc_dai_set_sysclk(rtd->dais[rtd->num_cpus], SGTL5000_SYSCLK, 12288000, SND_SOC_CLOCK_IN); if (err) { dev_err(dev, "failed to set sgtl5000 sysclk!\n"); @@ -418,7 +418,7 @@ static int tegra_machine_rt565x_init(struct snd_soc_pcm_runtime *rtd) /* FIXME */ #if 0 - err = rt5659_set_jack_detect(rtd->codec_dai->component, jack); + err = rt5659_set_jack_detect(rtd->dais[rtd->num_cpus]->component, jack); if (err) { dev_err(card->dev, "Failed to set jack for RT565x: %d\n", err); return err;