[alsa-devel] [PATCH v2 1/3] ASoC: cs4265: SOC_SINGLE register value error fix
The cs4265 driver declares the "MMTLR Data Switch" register setting with a 0 register value rather then the 0x12 register (CS4265_SPDIF_CTL2). This incorrect value causes alsamixer to fault with the output : cannot load mixer controls: Input/output error
This patch corrects the register value. alsamixer now runs.
Signed-off-by: Matt Flax flatmax@flatmax.org ---
Acked-by: Paul Handrigan Paul.Handrigan@cirrus.com Reviewed-by: Charles Keepax ckeepax@opensource.cirrus.com
Identical to the original v1 patch, already acked and reviewed. --- sound/soc/codecs/cs4265.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sound/soc/codecs/cs4265.c b/sound/soc/codecs/cs4265.c index 275677de..15b4ae04 100644 --- a/sound/soc/codecs/cs4265.c +++ b/sound/soc/codecs/cs4265.c @@ -157,8 +157,7 @@ static const struct snd_kcontrol_new cs4265_snd_controls[] = { SOC_SINGLE("Validity Bit Control Switch", CS4265_SPDIF_CTL2, 3, 1, 0), SOC_ENUM("SPDIF Mono/Stereo", spdif_mono_stereo_enum), - SOC_SINGLE("MMTLR Data Switch", 0, - 1, 1, 0), + SOC_SINGLE("MMTLR Data Switch", CS4265_SPDIF_CTL2, 0, 1, 0), SOC_ENUM("Mono Channel Select", spdif_mono_select_enum), SND_SOC_BYTES("C Data Buffer", CS4265_C_DATA_BUFF, 24), };
The cs4265 uses 32 bit transport on the I2S bus. This patch enables native 32 bit mode for machine drivers which use this sound card driver.
Signed-off-by: Matt Flax flatmax@flatmax.org ---
No changes from v1, however have tested the intended functionality and list discussion had firmed up its purpose. --- sound/soc/codecs/cs4265.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/codecs/cs4265.c b/sound/soc/codecs/cs4265.c index 15b4ae04..17d7e6f0 100644 --- a/sound/soc/codecs/cs4265.c +++ b/sound/soc/codecs/cs4265.c @@ -495,7 +495,8 @@ static int cs4265_set_bias_level(struct snd_soc_component *component, SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_192000)
#define CS4265_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U16_LE | \ - SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_U24_LE) + SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_U24_LE | \ + SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_U32_LE)
static const struct snd_soc_dai_ops cs4265_ops = { .hw_params = cs4265_pcm_hw_params,
On Thu, Aug 30, 2018 at 09:38:01AM +1000, Matt Flax wrote:
The cs4265 uses 32 bit transport on the I2S bus. This patch enables native 32 bit mode for machine drivers which use this sound card driver.
Signed-off-by: Matt Flax flatmax@flatmax.org
No changes from v1, however have tested the intended functionality and list discussion had firmed up its purpose.
Charles?
On Thu, Aug 30, 2018 at 04:41:40PM +0100, Mark Brown wrote:
On Thu, Aug 30, 2018 at 09:38:01AM +1000, Matt Flax wrote:
The cs4265 uses 32 bit transport on the I2S bus. This patch enables native 32 bit mode for machine drivers which use this sound card driver.
Signed-off-by: Matt Flax flatmax@flatmax.org
No changes from v1, however have tested the intended functionality and list discussion had firmed up its purpose.
Charles?
I think this one looks fine to me:
Reviewed-by: Charles Keepax ckeepax@opensource.cirrus.com
Only slightly doubt I had was that the CODEC doesn't actually support 32bit only 24bit. It will however happily accept the 32-bit from the bus you just loose some precision whilst playing it, so feels like that is basically the same as supporting it to me. Unless I have missed something again :-)
Thanks, Charles
This patch adds a SPDIF enable switch as a SOC_SINGLE.
Signed-off-by: Matt Flax flatmax@flatmax.org ---
v2: - Changed to a SOC_SINGLE call --- sound/soc/codecs/cs4265.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/cs4265.c b/sound/soc/codecs/cs4265.c index 17d7e6f0..d9eebf6a 100644 --- a/sound/soc/codecs/cs4265.c +++ b/sound/soc/codecs/cs4265.c @@ -154,6 +154,7 @@ static const struct snd_kcontrol_new cs4265_snd_controls[] = { 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),
On Thu, Aug 30, 2018 at 09:38:02AM +1000, Matt Flax wrote:
This patch adds a SPDIF enable switch as a SOC_SINGLE.
Signed-off-by: Matt Flax flatmax@flatmax.org
Reviewed-by: Charles Keepax ckeepax@opensource.cirrus.com
Thanks, Charles
The patch
ASoC: cs4265: Add a S/PDIF enable switch
has been applied to the asoc tree at
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks, Mark
From f853d6b3ba345297974d877d8ed0f4a91eaca739 Mon Sep 17 00:00:00 2001
From: Matt Flax flatmax@flatmax.org Date: Thu, 30 Aug 2018 09:38:02 +1000 Subject: [PATCH] ASoC: cs4265: Add a S/PDIF enable switch
This patch adds a S/PDIF enable switch as a SOC_SINGLE.
Signed-off-by: Matt Flax flatmax@flatmax.org Reviewed-by: Charles Keepax ckeepax@opensource.cirrus.com Signed-off-by: Mark Brown broonie@kernel.org --- sound/soc/codecs/cs4265.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/soc/codecs/cs4265.c b/sound/soc/codecs/cs4265.c index 17d7e6f0dcdb..d9eebf6af7a8 100644 --- a/sound/soc/codecs/cs4265.c +++ b/sound/soc/codecs/cs4265.c @@ -154,6 +154,7 @@ static const struct snd_kcontrol_new cs4265_snd_controls[] = { 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),
On Thu, Aug 30, 2018 at 09:38:00AM +1000, Matt Flax wrote:
The cs4265 driver declares the "MMTLR Data Switch" register setting with a 0 register value rather then the 0x12 register (CS4265_SPDIF_CTL2). This incorrect value causes alsamixer to fault with the output : cannot load mixer controls: Input/output error
This patch corrects the register value. alsamixer now runs.
Signed-off-by: Matt Flax flatmax@flatmax.org
Acked-by: Paul Handrigan Paul.Handrigan@cirrus.com Reviewed-by: Charles Keepax ckeepax@opensource.cirrus.com
These wanted to be above the --- so they are added into the commit message when the maintainer applies the commit. Probably not worth resending for it, but keep in mind for future.
Thanks, Charles
participants (3)
-
Charles Keepax
-
Mark Brown
-
Matt Flax