Skip to contentSkip to conversation

ASoC: cs4265: SOC_SINGLE register value error fix

PATCH In review Matt Flax 3 participants 8 messages Aug 29, 2018 – Aug 31, 2018

Subsystems (3)
lore
Share & tools
lore

Matt Flax

author
#0 lore raw

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.

---

Identical to the original v1 patch, already acked and reviewed.

---
 sound/soc/codecs/cs4265.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
sound/soc/codecs/cs4265.c +1 -2
index 275677de..15b4ae04 100644
@@ -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),
 };
Signature · 1 line
2.17.1
author
#1 lore raw

PATCH v2 2/3 ASoC: cs4265: Add native 32bit I2S transport

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.

---

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(-)
sound/soc/codecs/cs4265.c +2 -1
index 15b4ae04..17d7e6f0 100644
@@ -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,
Signature · 1 line
2.17.1
maintainer
#2 lore raw

Re: [PATCH v2 2/3] ASoC: cs4265: Add native 32bit I2S transport

Quoted 9 lines · Matt Flax

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.

---

No changes from v1, however have tested the intended functionality and list discussion had firmed up its purpose.
---

Charles?

Reviewed-by
#3 lore raw

Re: [PATCH v2 2/3] ASoC: cs4265: Add native 32bit I2S transport [UNSCANNED]

Quoted 4 lines · Mark Brown
Quoted 3 lines · Matt Flax

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.

Quoted 8 lines
Quoted 6 lines

---

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:

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

author
#4 lore raw

PATCH v2 3/3 ASoC: cs4265: Add a SPDIF enable switch

In reply to Matt Flax

This patch adds a SPDIF enable switch as a SOC_SINGLE.

---

v2:
- Changed to a SOC_SINGLE call

---
 sound/soc/codecs/cs4265.c | 1 +
 1 file changed, 1 insertion(+)
sound/soc/codecs/cs4265.c +1 -0
index 17d7e6f0..d9eebf6a 100644
@@ -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),
Signature · 1 line
2.17.1
maintainer
#6 lore raw

Applied "ASoC: cs4265: Add a S/PDIF enable switch" to the asoc tree

In reply to Matt Flax

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

Quoted 1 line

From f853d6b3ba345297974d877d8ed0f4a91eaca739 Mon Sep 17 00:00:00 2001

From: Matt Flax <[email protected]>
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.

---
 sound/soc/codecs/cs4265.c | 1 +
 1 file changed, 1 insertion(+)
sound/soc/codecs/cs4265.c +1 -0
index 17d7e6f0dcdb..d9eebf6af7a8 100644
@@ -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),
Signature · 1 line
2.19.0.rc1
#7 lore raw
In reply to Matt Flax
Quoted 5 lines · Matt Flax

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

Quoted 7 lines

This patch corrects the register value. alsamixer now runs.

---

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