| From c5487b9cdea5c1ede38a7ec94db0fc59963c8e86 Mon Sep 17 00:00:00 2001 |
| From: Fabio Estevam <festevam@denx.de> |
| Date: Tue, 15 Feb 2022 09:05:14 -0300 |
| Subject: ASoC: cs4265: Fix the duplicated control name |
| |
| From: Fabio Estevam <festevam@denx.de> |
| |
| commit c5487b9cdea5c1ede38a7ec94db0fc59963c8e86 upstream. |
| |
| Currently, the following error messages are seen during boot: |
| |
| asoc-simple-card sound: control 2:0:0:SPDIF Switch:0 is already present |
| cs4265 1-004f: ASoC: failed to add widget SPDIF dapm kcontrol SPDIF Switch: -16 |
| |
| Quoting Mark Brown: |
| |
| "The driver is just plain buggy, it defines both a regular SPIDF Switch |
| control and a SND_SOC_DAPM_SWITCH() called SPDIF both of which will |
| create an identically named control, it can never have loaded without |
| error. One or both of those has to be renamed or they need to be |
| merged into one thing." |
| |
| Fix the duplicated control name by combining the two SPDIF controls here |
| and move the register bits onto the DAPM widget and have DAPM control them. |
| |
| Fixes: f853d6b3ba34 ("ASoC: cs4265: Add a S/PDIF enable switch") |
| Signed-off-by: Fabio Estevam <festevam@denx.de> |
| Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> |
| Link: https://lore.kernel.org/r/20220215120514.1760628-1-festevam@gmail.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/soc/codecs/cs4265.c | 3 +-- |
| 1 file changed, 1 insertion(+), 2 deletions(-) |
| |
| --- a/sound/soc/codecs/cs4265.c |
| +++ b/sound/soc/codecs/cs4265.c |
| @@ -150,7 +150,6 @@ static const struct snd_kcontrol_new cs4 |
| SOC_SINGLE("E to F Buffer Disable Switch", CS4265_SPDIF_CTL1, |
| 6, 1, 0), |
| SOC_ENUM("C Data Access", cam_mode_enum), |
| - SOC_SINGLE("SPDIF Switch", CS4265_SPDIF_CTL2, 5, 1, 1), |
| SOC_SINGLE("Validity Bit Control Switch", CS4265_SPDIF_CTL2, |
| 3, 1, 0), |
| SOC_ENUM("SPDIF Mono/Stereo", spdif_mono_stereo_enum), |
| @@ -186,7 +185,7 @@ static const struct snd_soc_dapm_widget |
| |
| SND_SOC_DAPM_SWITCH("Loopback", SND_SOC_NOPM, 0, 0, |
| &loopback_ctl), |
| - SND_SOC_DAPM_SWITCH("SPDIF", SND_SOC_NOPM, 0, 0, |
| + SND_SOC_DAPM_SWITCH("SPDIF", CS4265_SPDIF_CTL2, 5, 1, |
| &spdif_switch), |
| SND_SOC_DAPM_SWITCH("DAC", CS4265_PWRCTL, 1, 1, |
| &dac_switch), |