• Sheetal's avatar
    ASoC: tegra: Fix SFC conversion for few rates · d900d9a4
    Sheetal authored
    Sample rate conversions for rates greater than 48kHz are found to be
    failing. It means x->y conversions fail when either x or y is greater
    than 48kHz.
    
    This happens because, tegra210_sfc_rate_to_idx() returns incorrect
    index for rates greater than 48kHz. This actually depends on the
    tegra210_sfc_rates[] array and it is not in sync with frequency
    values of SFC TX/RX register. To be precise, 64kHz entry is missing
    in above array defined in the driver. Due to this wrong index is
    returned and this results in incorrect programming of coefficients.
    
    To fix this, align the tegra210_sfc_rates[] array with SFC register
    specification and thus add 64kHz entry to it. Also, the coefficient
    table is updated to reflect that none of the conversions are supported
    for 64kHz.
    
    Fixes: b2f74ec5 ("ASoC: tegra: Add Tegra210 based SFC driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarSheetal <sheetal@nvidia.com>
    Reviewed-by: default avatarMohan Kumar D <mkumard@nvidia.com>
    Reviewed-by: default avatarSameer Pujar <spujar@nvidia.com>
    Link: https://lore.kernel.org/r/Message-Id: <1687433656-7892-2-git-send-email-spujar@nvidia.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    d900d9a4
tegra210_sfc.h 2.02 KB