• Srinivas Kandagatla's avatar
    ASoC: lpass-platform: Fix broken pcm data usage · 022d00ee
    Srinivas Kandagatla authored
    This patch fixes lpass-platform driver which was broken in v4.9-rc1.
    lpass_pcm_data data structure holds information specific to stream.
    Holding a single private pointer to it in global lpass_data
    will not work, because it would be overwritten by for each pcm instance.
    
    This code was breaking playback when we have both playback and capture
    pcm streams, as playback settings are over written by capture settings.
    
    Fix this by moving channel allocation logic out of pcm_new to pcm_open
    so that we can store the stream specific information in private_data of
    snd_pcm_runtime.
    
    Fixes: 6adcbdcd ("ASoC: lpass-platform: don't use snd_soc_pcm_set_drvdata()")
    Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    022d00ee
lpass-platform.c 16.9 KB