Commit 95409545 authored by Brent Lu's avatar Brent Lu Committed by Mark Brown

ASoC: Intel: sof_rt5682: cleanup unnecessary quirk flag

Remove SOF_RT5682_MCLK_24MHZ flag from JSL and CML/WHL board configs
since the information could be retrieved from SOF API. The macro
itself is removed as well.
Signed-off-by: default avatarBrent Lu <brent.lu@intel.com>
Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20230915124852.1696857-2-yung-chuan.liao@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 642d1de6
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#define SOF_RT5682_SSP_CODEC(quirk) ((quirk) & GENMASK(2, 0)) #define SOF_RT5682_SSP_CODEC(quirk) ((quirk) & GENMASK(2, 0))
#define SOF_RT5682_SSP_CODEC_MASK (GENMASK(2, 0)) #define SOF_RT5682_SSP_CODEC_MASK (GENMASK(2, 0))
#define SOF_RT5682_MCLK_EN BIT(3) #define SOF_RT5682_MCLK_EN BIT(3)
#define SOF_RT5682_MCLK_24MHZ BIT(4)
#define SOF_SPEAKER_AMP_PRESENT BIT(5) #define SOF_SPEAKER_AMP_PRESENT BIT(5)
#define SOF_RT5682_SSP_AMP_SHIFT 6 #define SOF_RT5682_SSP_AMP_SHIFT 6
#define SOF_RT5682_SSP_AMP_MASK (GENMASK(8, 6)) #define SOF_RT5682_SSP_AMP_MASK (GENMASK(8, 6))
...@@ -119,7 +118,6 @@ static const struct dmi_system_id sof_rt5682_quirk_table[] = { ...@@ -119,7 +118,6 @@ static const struct dmi_system_id sof_rt5682_quirk_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "WhiskeyLake Client"), DMI_MATCH(DMI_PRODUCT_NAME, "WhiskeyLake Client"),
}, },
.driver_data = (void *)(SOF_RT5682_MCLK_EN | .driver_data = (void *)(SOF_RT5682_MCLK_EN |
SOF_RT5682_MCLK_24MHZ |
SOF_RT5682_SSP_CODEC(1)), SOF_RT5682_SSP_CODEC(1)),
}, },
{ {
...@@ -133,7 +131,6 @@ static const struct dmi_system_id sof_rt5682_quirk_table[] = { ...@@ -133,7 +131,6 @@ static const struct dmi_system_id sof_rt5682_quirk_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "Dooly"), DMI_MATCH(DMI_PRODUCT_NAME, "Dooly"),
}, },
.driver_data = (void *)(SOF_RT5682_MCLK_EN | .driver_data = (void *)(SOF_RT5682_MCLK_EN |
SOF_RT5682_MCLK_24MHZ |
SOF_RT5682_SSP_CODEC(0) | SOF_RT5682_SSP_CODEC(0) |
SOF_SPEAKER_AMP_PRESENT | SOF_SPEAKER_AMP_PRESENT |
SOF_RT1015_SPEAKER_AMP_PRESENT | SOF_RT1015_SPEAKER_AMP_PRESENT |
...@@ -145,7 +142,6 @@ static const struct dmi_system_id sof_rt5682_quirk_table[] = { ...@@ -145,7 +142,6 @@ static const struct dmi_system_id sof_rt5682_quirk_table[] = {
DMI_MATCH(DMI_PRODUCT_FAMILY, "Google_Hatch"), DMI_MATCH(DMI_PRODUCT_FAMILY, "Google_Hatch"),
}, },
.driver_data = (void *)(SOF_RT5682_MCLK_EN | .driver_data = (void *)(SOF_RT5682_MCLK_EN |
SOF_RT5682_MCLK_24MHZ |
SOF_RT5682_SSP_CODEC(0) | SOF_RT5682_SSP_CODEC(0) |
SOF_SPEAKER_AMP_PRESENT | SOF_SPEAKER_AMP_PRESENT |
SOF_RT5682_SSP_AMP(1)), SOF_RT5682_SSP_AMP(1)),
...@@ -295,11 +291,19 @@ static int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd) ...@@ -295,11 +291,19 @@ static int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component; struct snd_soc_component *component = asoc_rtd_to_codec(rtd, 0)->component;
struct snd_soc_jack *jack; struct snd_soc_jack *jack;
int extra_jack_data; int extra_jack_data;
int ret; int ret, mclk_freq;
if (sof_rt5682_quirk & SOF_RT5682_MCLK_EN) {
mclk_freq = sof_dai_get_mclk(rtd);
if (mclk_freq <= 0) {
dev_err(rtd->dev, "invalid mclk freq %d\n", mclk_freq);
return -EINVAL;
}
/* need to enable ASRC function for 24MHz mclk rate */ /* need to enable ASRC function for 24MHz mclk rate */
if ((sof_rt5682_quirk & SOF_RT5682_MCLK_EN) && if (mclk_freq == 24000000) {
(sof_rt5682_quirk & SOF_RT5682_MCLK_24MHZ)) { dev_info(rtd->dev, "enable ASRC\n");
if (sof_rt5682_quirk & SOF_RT5682S_HEADPHONE_CODEC_PRESENT) if (sof_rt5682_quirk & SOF_RT5682S_HEADPHONE_CODEC_PRESENT)
rt5682s_sel_asrc_clk_src(component, rt5682s_sel_asrc_clk_src(component,
RT5682S_DA_STEREO1_FILTER | RT5682S_DA_STEREO1_FILTER |
...@@ -341,6 +345,7 @@ static int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd) ...@@ -341,6 +345,7 @@ static int sof_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
if (ret) if (ret)
dev_err(rtd->dev, "unable to set MCLK rate\n"); dev_err(rtd->dev, "unable to set MCLK rate\n");
} }
}
/* /*
* Headset buttons map to the google Reference headset. * Headset buttons map to the google Reference headset.
...@@ -413,17 +418,9 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream, ...@@ -413,17 +418,9 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream,
/* get the tplg configured mclk. */ /* get the tplg configured mclk. */
pll_in = sof_dai_get_mclk(rtd); pll_in = sof_dai_get_mclk(rtd);
if (pll_in <= 0) {
/* mclk from the quirk is the first choice */ dev_err(rtd->dev, "invalid mclk freq %d\n", pll_in);
if (sof_rt5682_quirk & SOF_RT5682_MCLK_24MHZ) { return -EINVAL;
if (pll_in != 24000000)
dev_warn(rtd->dev, "configure wrong mclk in tplg, please use 24MHz.\n");
pll_in = 24000000;
} else if (pll_in == 0) {
/* use default mclk if not specified correct in topology */
pll_in = 19200000;
} else if (pll_in < 0) {
return pll_in;
} }
} else { } else {
if (sof_rt5682_quirk & SOF_RT5682S_HEADPHONE_CODEC_PRESENT) if (sof_rt5682_quirk & SOF_RT5682S_HEADPHONE_CODEC_PRESENT)
...@@ -451,7 +448,12 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream, ...@@ -451,7 +448,12 @@ static int sof_rt5682_hw_params(struct snd_pcm_substream *substream,
/* when MCLK is 512FS, no need to set PLL configuration additionally. */ /* when MCLK is 512FS, no need to set PLL configuration additionally. */
if (pll_in == pll_out) if (pll_in == pll_out)
if (sof_rt5682_quirk & SOF_RT5682S_HEADPHONE_CODEC_PRESENT)
clk_id = RT5682S_SCLK_S_MCLK; clk_id = RT5682S_SCLK_S_MCLK;
else if (sof_rt5682_quirk & SOF_RT5650_HEADPHONE_CODEC_PRESENT)
clk_id = RT5645_SCLK_S_MCLK;
else
clk_id = RT5682_SCLK_S_MCLK;
else { else {
/* Configure pll for codec */ /* Configure pll for codec */
ret = snd_soc_dai_set_pll(codec_dai, pll_id, pll_source, pll_in, ret = snd_soc_dai_set_pll(codec_dai, pll_id, pll_source, pll_in,
...@@ -1071,7 +1073,6 @@ static const struct platform_device_id board_ids[] = { ...@@ -1071,7 +1073,6 @@ static const struct platform_device_id board_ids[] = {
{ {
.name = "cml_rt1015_rt5682", .name = "cml_rt1015_rt5682",
.driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN |
SOF_RT5682_MCLK_24MHZ |
SOF_RT5682_SSP_CODEC(0) | SOF_RT5682_SSP_CODEC(0) |
SOF_SPEAKER_AMP_PRESENT | SOF_SPEAKER_AMP_PRESENT |
SOF_RT1015_SPEAKER_AMP_PRESENT | SOF_RT1015_SPEAKER_AMP_PRESENT |
...@@ -1080,7 +1081,6 @@ static const struct platform_device_id board_ids[] = { ...@@ -1080,7 +1081,6 @@ static const struct platform_device_id board_ids[] = {
{ {
.name = "jsl_rt5682_rt1015", .name = "jsl_rt5682_rt1015",
.driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN |
SOF_RT5682_MCLK_24MHZ |
SOF_RT5682_SSP_CODEC(0) | SOF_RT5682_SSP_CODEC(0) |
SOF_SPEAKER_AMP_PRESENT | SOF_SPEAKER_AMP_PRESENT |
SOF_RT1015_SPEAKER_AMP_PRESENT | SOF_RT1015_SPEAKER_AMP_PRESENT |
...@@ -1089,7 +1089,6 @@ static const struct platform_device_id board_ids[] = { ...@@ -1089,7 +1089,6 @@ static const struct platform_device_id board_ids[] = {
{ {
.name = "jsl_rt5682_mx98360", .name = "jsl_rt5682_mx98360",
.driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN |
SOF_RT5682_MCLK_24MHZ |
SOF_RT5682_SSP_CODEC(0) | SOF_RT5682_SSP_CODEC(0) |
SOF_SPEAKER_AMP_PRESENT | SOF_SPEAKER_AMP_PRESENT |
SOF_MAX98360A_SPEAKER_AMP_PRESENT | SOF_MAX98360A_SPEAKER_AMP_PRESENT |
...@@ -1098,7 +1097,6 @@ static const struct platform_device_id board_ids[] = { ...@@ -1098,7 +1097,6 @@ static const struct platform_device_id board_ids[] = {
{ {
.name = "jsl_rt5682_rt1015p", .name = "jsl_rt5682_rt1015p",
.driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN |
SOF_RT5682_MCLK_24MHZ |
SOF_RT5682_SSP_CODEC(0) | SOF_RT5682_SSP_CODEC(0) |
SOF_SPEAKER_AMP_PRESENT | SOF_SPEAKER_AMP_PRESENT |
SOF_RT1015P_SPEAKER_AMP_PRESENT | SOF_RT1015P_SPEAKER_AMP_PRESENT |
...@@ -1107,7 +1105,6 @@ static const struct platform_device_id board_ids[] = { ...@@ -1107,7 +1105,6 @@ static const struct platform_device_id board_ids[] = {
{ {
.name = "jsl_rt5682", .name = "jsl_rt5682",
.driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN |
SOF_RT5682_MCLK_24MHZ |
SOF_RT5682_SSP_CODEC(0)), SOF_RT5682_SSP_CODEC(0)),
}, },
{ {
...@@ -1271,7 +1268,6 @@ static const struct platform_device_id board_ids[] = { ...@@ -1271,7 +1268,6 @@ static const struct platform_device_id board_ids[] = {
{ {
.name = "jsl_rt5650", .name = "jsl_rt5650",
.driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN |
SOF_RT5682_MCLK_24MHZ |
SOF_RT5682_SSP_CODEC(0) | SOF_RT5682_SSP_CODEC(0) |
SOF_SPEAKER_AMP_PRESENT | SOF_SPEAKER_AMP_PRESENT |
SOF_RT5682_SSP_AMP(1)), SOF_RT5682_SSP_AMP(1)),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment