Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: cs53l30: Correct clock inversion check

SND_SOC_DAIFMT_IB_NF = 0x3 (11b) | SND_SOC_DAIFMT_IB_IF = 0x4 (100b)
creates a mask 0x7 (111b) which also includes SND_SOC_DAIFMT_NB_IF
= 0x2 (10b).

So this patch uses the traditional way to check the clock inversion.

Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Nicolin Chen and committed by
Mark Brown
88b1c01f 53d4b031

+7 -1
+7 -1
sound/soc/codecs/cs53l30.c
··· 599 599 } 600 600 601 601 /* Check to see if the SCLK is inverted */ 602 - if (fmt & (SND_SOC_DAIFMT_IB_NF | SND_SOC_DAIFMT_IB_IF)) 602 + switch (fmt & SND_SOC_DAIFMT_INV_MASK) { 603 + case SND_SOC_DAIFMT_IB_NF: 604 + case SND_SOC_DAIFMT_IB_IF: 603 605 aspcfg ^= CS53L30_ASP_SCLK_INV; 606 + break; 607 + default: 608 + break; 609 + } 604 610 605 611 regmap_update_bits(priv->regmap, CS53L30_ASPCFG_CTL, 606 612 CS53L30_ASP_MS | CS53L30_ASP_SCLK_INV, aspcfg);