ASoC: cs42l73: Unify the way to define bits of register
Subsystems (3)
PATCH 1/2 ASoC: cs42l73: Unify the way to define bits of register
Current code defines some bits with left shift to the proper bit defined in datasheet, but some don't.
Unify the definition with proper left shift and adjust the code accordingly.
---
Hi,
I don't have this hardware handy.
I'd appreciate if someone can test this serial of patches.
Thanks
Axel
sound/soc/codecs/cs42l73.c | 6 +++--- sound/soc/codecs/cs42l73.h | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-)
sound/soc/codecs/cs42l73.c +3 -3
@@ -1028,13 +1028,13 @@ static int cs42l73_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)switch (format) {case SND_SOC_DAIFMT_DSP_B :if (inv ==SND_SOC_DAIFMT_IB_IF ) - spc |= (PCM_MODE0 <<4 ); + spc |=PCM_MODE0 ;if (inv ==SND_SOC_DAIFMT_IB_NF ) - spc |= (PCM_MODE1 <<4 ); + spc |=PCM_MODE1 ;break ;case SND_SOC_DAIFMT_DSP_A :if (inv ==SND_SOC_DAIFMT_IB_IF ) - spc |= (PCM_MODE1 <<4 ); + spc |=PCM_MODE1 ;break ;default :return -EINVAL ;
sound/soc/codecs/cs42l73.h +9 -9
@@ -162,16 +162,16 @@/* CS42L73_ASPC, CS42L73_XSPC, CS42L73_VSPC */ #define SP_3ST (1 << 7) -#define SPDIF_I2S 0 +#define SPDIF_I2S (0 << 6)#define SPDIF_PCM (1 << 6) -#define PCM_MODE0 0 -#define PCM_MODE1 1 -#define PCM_MODE2 2 -#define PCM_BO_MSBLSB 0 -#define PCM_BO_LSBMSB 1 -#define MCK_SCLK_64FS 0 -#define MCK_SCLK_MCLK 2 -#define MCK_SCLK_PREMCLK 3 +#define PCM_MODE0 (0 << 4) +#define PCM_MODE1 (1 << 4) +#define PCM_MODE2 (2 << 4) +#define PCM_MODE_MASK (3 << 4) +#define PCM_BIT_ORDER (1 << 3) +#define MCK_SCLK_64FS (0 << 0) +#define MCK_SCLK_MCLK (2 << 0) +#define MCK_SCLK_PREMCLK (3 << 0)/* CS42L73_xSPMMCC */ #define MS_MASTER (1 << 7)
Signature · 1 line
1.7.5.4
PATCH 2/2 ASoC: cs42l73: Fix clear wrong bits in cs42l73_set_dai_fmt
What we want is to clear BIT[5:4](PCM_MODE_MASK) and BIT[3](PCM_BIT_ORDER) bits, but current code clears BIT[2:0].
--- sound/soc/codecs/cs42l73.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
sound/soc/codecs/cs42l73.c +2 -1
@@ -1024,7 +1024,8 @@ static int cs42l73_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) }if (spc &SPDIF_PCM ) { - spc &= (31 <<3 );/* Clear PCM mode, set MSB->LSB */ +/* Clear PCM mode, clear PCM_BIT_ORDER bit for MSB->LSB */ + spc &= ~(PCM_MODE_MASK |PCM_BIT_ORDER );switch (format) {case SND_SOC_DAIFMT_DSP_B :if (inv ==SND_SOC_DAIFMT_IB_IF )
Signature · 1 line
1.7.5.4
Quoted 4 lines · Axel Lin
Current code defines some bits with left shift to the proper bit defined in datasheet, but some don't.
Unify the definition with proper left shift and adjust the code accordingly.
Quoted 8 lines
Signed-off-by Axel Lin <[email protected]>---
Hi,
I don't have this hardware handy.
I'd appreciate if someone can test this serial of patches.Thanks
Axel
I'll try and verify this today. The changes looks fine though.
Thanks,
Brian
Quoted 4 lines · Axel Lin
Current code defines some bits with left shift to the proper bit defined in datasheet, but some don't.
Unify the definition with proper left shift and adjust the code accordingly.
Quoted 8 lines
Signed-off-by Axel Lin <[email protected]>---
Hi,
I don't have this hardware handy.
I'd appreciate if someone can test this serial of patches.Thanks
Axel
Tested both and it works great. The style is much better too :) Thanks,
Mark Brown
AppliedQuoted 3 lines · Axel Lin
Current code defines some bits with left shift to the proper bit defined in datasheet, but some don't.
Unify the definition with proper left shift and adjust the code accordingly.
applied, thanks.