mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 18:41:58 +09:00
ASoC: fsl_esai: fix register setting issue in RIGHT_J mode
commitcc29ea0073upstream. The ESAI_xCR_xWA is xCR's bit, not the xCCR's bit, driver set it to wrong register, correct it. Fixes43d24e76b6("ASoC: fsl_esai: Add ESAI CPU DAI driver") Cc: <stable@vger.kernel.org> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Fabio Estevam <festevam@gmail.com> Ackedy-by: Nicolin Chen <nicoleotsuka@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1cbd3417c4
commit
fb7c62a5ef
@@ -395,7 +395,8 @@ static int fsl_esai_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
|
||||
break;
|
||||
case SND_SOC_DAIFMT_RIGHT_J:
|
||||
/* Data on rising edge of bclk, frame high, right aligned */
|
||||
xccr |= ESAI_xCCR_xCKP | ESAI_xCCR_xHCKP | ESAI_xCR_xWA;
|
||||
xccr |= ESAI_xCCR_xCKP | ESAI_xCCR_xHCKP;
|
||||
xcr |= ESAI_xCR_xWA;
|
||||
break;
|
||||
case SND_SOC_DAIFMT_DSP_A:
|
||||
/* Data on rising edge of bclk, frame high, 1clk before data */
|
||||
@@ -452,12 +453,12 @@ static int fsl_esai_set_dai_fmt(struct snd_soc_dai *dai, unsigned int fmt)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
mask = ESAI_xCR_xFSL | ESAI_xCR_xFSR;
|
||||
mask = ESAI_xCR_xFSL | ESAI_xCR_xFSR | ESAI_xCR_xWA;
|
||||
regmap_update_bits(esai_priv->regmap, REG_ESAI_TCR, mask, xcr);
|
||||
regmap_update_bits(esai_priv->regmap, REG_ESAI_RCR, mask, xcr);
|
||||
|
||||
mask = ESAI_xCCR_xCKP | ESAI_xCCR_xHCKP | ESAI_xCCR_xFSP |
|
||||
ESAI_xCCR_xFSD | ESAI_xCCR_xCKD | ESAI_xCR_xWA;
|
||||
ESAI_xCCR_xFSD | ESAI_xCCR_xCKD;
|
||||
regmap_update_bits(esai_priv->regmap, REG_ESAI_TCCR, mask, xccr);
|
||||
regmap_update_bits(esai_priv->regmap, REG_ESAI_RCCR, mask, xccr);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user