• Hebbar, Gururaja's avatar
    ASoC: tlv320aic3x: Fix codec pll configure bug · c9fe573a
    Hebbar, Gururaja authored
    In sound/soc/codecs/tlv320aic3x.c
    
            data = snd_soc_read(codec, AIC3X_PLL_PROGA_REG);
            snd_soc_write(codec, AIC3X_PLL_PROGA_REG,
                          data | (pll_p << PLLP_SHIFT));
    
    In the above code, pll-p value is OR'ed with previous value without
    clearing it. Bug is not seen if pll-p value doesn't change across
    Sampling frequency.
    
    However on some platforms (like AM335x EVM-SK), pll-p may have different
    values across different sampling frequencies. In such case, above code
    configures the pll with a wrong value.
    Because of this bug, when a audio stream is played with pll value
    different from previous stream, audio is heard as differently(like its
    stretched).
    Signed-off-by: default avatarHebbar, Gururaja <gururaja.hebbar@ti.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    Cc: stable@vger.kernel.org
    c9fe573a
tlv320aic3x.c 48.6 KB