ASoC: cs42l73: Fix Output [X|A|V]SP_SCLK Sourcing Mode setting for master mode
Subsystems (3)
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
@@ -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
Quoted 10 lines
For master mode, set Output [X|A|V]SP_SCLK Sourcing Mode to MCLK Mode.
Signed-off-by Axel Lin <[email protected]>---
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.
Mark Brown
AppliedQuoted 1 line · Axel Lin
For master mode, set Output [X|A|V]SP_SCLK Sourcing Mode to MCLK Mode.
Applied, thanks.