[alsa-devel] [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.
Signed-off-by: Axel Lin axel.lin@gmail.com --- 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(-)
diff --git a/sound/soc/codecs/cs42l73.c b/sound/soc/codecs/cs42l73.c index 6fe259a..0306e72 100644 --- a/sound/soc/codecs/cs42l73.c +++ b/sound/soc/codecs/cs42l73.c @@ -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; diff --git a/sound/soc/codecs/cs42l73.h b/sound/soc/codecs/cs42l73.h index 7c3bf7f..f30a4c4 100644 --- a/sound/soc/codecs/cs42l73.h +++ b/sound/soc/codecs/cs42l73.h @@ -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)
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].
Signed-off-by: Axel Lin axel.lin@gmail.com --- sound/soc/codecs/cs42l73.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/sound/soc/codecs/cs42l73.c b/sound/soc/codecs/cs42l73.c index 0306e72..a2af595 100644 --- a/sound/soc/codecs/cs42l73.c +++ b/sound/soc/codecs/cs42l73.c @@ -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)
On Fri, 18 Nov 2011, Axel Lin wrote:
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.
Signed-off-by: Axel Lin axel.lin@gmail.com
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
On Fri, 18 Nov 2011, Axel Lin wrote:
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.
Signed-off-by: Axel Lin axel.lin@gmail.com
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,
Acked-by: Brian Austin brian.austin@cirrus.com
On Fri, Nov 18, 2011 at 04:05:13PM +0800, Axel Lin wrote:
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.
participants (3)
-
Axel Lin
-
Brian Austin
-
Mark Brown