• Tushar Behera's avatar
    ASoC: samsung: Don't clear clock setting during i2s_startup · d66eac3e
    Tushar Behera authored
    In exiting kernel, if DAIFMT flags are set in dai_link and I2S is
    set to run in master mode, the I2S clocks are not getting configured
    resulting in no output.
    
    Existing code clears the current I2S clock settings during i2s_startup
    and requires that the clocks are reconfigured. It then assumes that
    sound-card driver would call snd_soc_dai_{set_sysclk/set_fmt} to
    configure the root clock.
    
    1. Since I2S clock settings remain fixed for a board, it would be better
    to set the clocks once during sound-card probe.
    
    2. Also if the DAIFMT flags are set in dai_link, snd_soc_dai_set_fmt is
    called during DAI probe.
    
    If both these conditions are true, then I2S clock remains unconfigured
    during audio playback. Fix this by removing the code to clear
    rclk_srcrate in i2s_startup. Instead, reset this during DAI probe.
    Signed-off-by: default avatarTushar Behera <tushar.behera@linaro.org>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    d66eac3e
i2s.c 30.8 KB