On Fri, Oct 28, 2016 at 04:32:19PM +0100, Srinivas Kandagatla wrote:
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 private_data of snd_pcm_runtime.
Fixes: 6adcbdcd4b6e ("ASoC: lpass-platform: don't use snd_soc_pcm_set_drvdata()") Signed-off-by: Srinivas Kandagatla srinivas.kandagatla@linaro.org
sound/soc/qcom/lpass-platform.c | 151 ++++++++++++++++++---------------------- sound/soc/qcom/lpass.h | 1 - 2 files changed, 67 insertions(+), 85 deletions(-)
After you address Mark's comments:
Acked-by: Kenneth Westfield kwestfie@codeaurora.org