Skip to contentSkip to conversation

ASoC: cs42l73: Fix Output [X|A|V]SP_SCLK Sourcing Mode setting for master mode

RFC PATCH Applied Axel Lin 3 participants 3 messages Jan 31, 2012 – Feb 1, 2012

Subsystems (3)
lore
Share & tools
lore

Axel Lin

author
#0 lore raw

RFC PATCH 1/1 ASoC: cs42l73: Fix Output [X|A|V]SP_SCLK Sourcing Mode setting for master mode

For master mode, set Output [X|A|V]SP_SCLK Sourcing Mode to MCLK Mode.

---
Hi Brian,
I think current code of setting priv->config[id].spc for master mode is wrong:
priv->config[id].spc &= MCK_SCLK_64FS; will set priv->config[id].spc to be 0.

I don't have this hardware, I'd appreciate you can review and test this patch.

Regards,
Axel

 sound/soc/codecs/cs42l73.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
sound/soc/codecs/cs42l73.c +1 -1
index 9d38db8..78979b3 100644
@@ -1113,7 +1113,7 @@ static int cs42l73_pcm_hw_params(struct snd_pcm_substream *substream,
 		priv->config[id].mmcc &= 0xC0;
 		priv->config[id].mmcc |= cs42l73_mclk_coeffs[mclk_coeff].mmcc;
 		priv->config[id].spc &= 0xFC;
-		priv->config[id].spc &= MCK_SCLK_64FS;
+		priv->config[id].spc |= MCK_SCLK_MCLK;
 	} else {
 		/* CS42L73 Slave */
 		priv->config[id].spc &= 0xFC;
Signature · 1 line
1.7.5.4
Acked-by on v1 1/1
#1 lore raw
Quoted 10 lines

For master mode, set Output [X|A|V]SP_SCLK Sourcing Mode to MCLK Mode.

---
Hi Brian,
I think current code of setting priv->config[id].spc for master mode is wrong:
priv->config[id].spc &= MCK_SCLK_64FS; will set priv->config[id].spc to be 0.

I don't have this hardware, I'd appreciate you can review and test this patch.

Hey Axel,

Thanks for the catch. Yes, for most normal slave operations where sclk = mclk you would set it the way you have it.

There is however another case where the SCLK = PREMCLK that puts constraints on the supported rates for the MCLK. Your fix catches the majority of uses for Codec slave mode though.