• Nicolin Chen's avatar
    ASoC: soc-pcm: move DAIs parameters cleaning into hw_free() · d3383420
    Nicolin Chen authored
    We're now applying soc_hw_params_symmetry() to reject unmatched parameters
    while we clear parameters in soc_pcm_close(). So here's a use case might be
    broken by this mechanism: aplay -Dhw:0 44100.wav 48000.wav 32000.wav
    
    In this case, we call soc_pcm_open()->soc_pcm_hw_params()->soc_pcm_hw_free()
    ->soc_pcm_hw_params()->soc_pcm_hw_free()->soc_pcm_close() in order. As we
    only clear parameters in soc_pcm_close(). The parameters would be remained
    in the system even if the playback of 44100.wav is finished.
    
    Thus, this patch is trying to move parameters cleaning into hw_free() so that
    the system can continue to serve this kind of use case.
    
    Also, since we set them in hw_params(), it should be better to clear them in
    hw_free() for symmetry.
    Signed-off-by: default avatarNicolin Chen <b42378@freescale.com>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    d3383420
soc-pcm.c 68.3 KB