• Jörg Krause's avatar
    ASoC: mxs-saif: fix setting master base rate · bcb8c270
    Jörg Krause authored
    The SAIF base oversample rates are either 512*fs or 384*fs. An additional
    divider exists within the SAIF to generate sub-multiples of these two base
    rates if MCLK is required by the codec.
    
     * The sub-rates for the 512x base rate are: 256x, 128x, 64x, and 32x.
     * The sub-rates for the 384x base rate are: 192x, 96x, and 48x.
    
    Setting the base rate depending on the modulo operation with 32 and 48
    give wrong results for some mclk.
    
    If mclk=18.432MHz both modulo operations results in 0. As testing the
    result with 32 is done first, a wrong base rate of 512*fs is set instead
    of the correct 384*fs.
    
    Fix this by setting the base rate depending on the calculated sub-rate.
    Signed-off-by: default avatarJörg Krause <joerg.krause@embedded.rocks>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    bcb8c270
mxs-saif.c 20.9 KB