• Jerome Brunet's avatar
    ASoC: dai playback and capture active may be greater than 1 · 40c57963
    Jerome Brunet authored
    At the moment playback_active and capture_active are using only 1 bit so
    the maximum active count is 1.
    
    However, snd_soc_runtime_activate() may be called several time on the
    same dai. This happens when a dai is part of several dai_links. It is
    often the case for "snd-soc-dummy-dai".
    
    This is a problem if snd_soc_runtime_activate() is called an even number
    of times on a dai. In this case the active count overflow back to 0. As
    consequence, ASoC functions, such as soc_dpcm_runtime_update(), won't run
    correctly.
    
    Storing these usage counts on plain 'unsigned int' solves the problem.
    
    Fixes: f0fba2ad ("ASoC: multi-component - ASoC Multi-Component Support")
    Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    40c57963
soc-dai.h 11.1 KB