Message ID | 1650352619-17370-1-git-send-email-quic_srivasam@quicinc.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | ASoC: qcom: SC7280: Update machine driver startup, shutdown callbacks | expand |
On 19/04/2022 08:16, Srinivasa Rao Mandadapu wrote: > Update machine driver startup, shutdown callback functions to support > codec DMA paths. Without this change, platforms with WCD codec is failing > to register sound card. > > Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com> > Co-developed-by: Venkata Prasad Potturu <quic_potturu@quicinc.com> > Signed-off-by: Venkata Prasad Potturu <quic_potturu@quicinc.com> > --- > sound/soc/qcom/sc7280.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/sound/soc/qcom/sc7280.c b/sound/soc/qcom/sc7280.c > index 4ef4034..d64df11 100644 > --- a/sound/soc/qcom/sc7280.c > +++ b/sound/soc/qcom/sc7280.c > @@ -295,6 +295,10 @@ static void sc7280_snd_shutdown(struct snd_pcm_substream *substream) > break; > case LPASS_DP_RX: > break; > + case LPASS_CDC_DMA_RX0 ... LPASS_CDC_DMA_RX9: > + case LPASS_CDC_DMA_TX0 ... LPASS_CDC_DMA_TX8: > + case LPASS_CDC_DMA_VA_TX0 ... LPASS_CDC_DMA_VA_TX8: > + break; > default: > dev_err(rtd->dev, "%s: invalid dai id 0x%x\n", __func__, > cpu_dai->id); Why not just make sc7280_snd_startup code like this: static int sc7280_snd_startup(struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0); int ret = 0; switch (cpu_dai->id) { case MI2S_PRIMARY: ret = sc7280_rt5682_init(rtd); break; default: break; } return ret; } and sc7280_snd_shutdown with something similar --srini > @@ -316,6 +320,10 @@ static int sc7280_snd_startup(struct snd_pcm_substream *substream) > break; > case LPASS_DP_RX: > break; > + case LPASS_CDC_DMA_RX0 ... LPASS_CDC_DMA_RX9: > + case LPASS_CDC_DMA_TX0 ... LPASS_CDC_DMA_TX8: > + case LPASS_CDC_DMA_VA_TX0 ... LPASS_CDC_DMA_VA_TX8: > + break; > default: > dev_err(rtd->dev, "%s: invalid dai id 0x%x\n", __func__, > cpu_dai->id);
On 4/19/2022 2:49 PM, Srinivas Kandagatla wrote: Thanks for your time Srini!! > > > On 19/04/2022 08:16, Srinivasa Rao Mandadapu wrote: >> Update machine driver startup, shutdown callback functions to support >> codec DMA paths. Without this change, platforms with WCD codec is >> failing >> to register sound card. >> >> Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com> >> Co-developed-by: Venkata Prasad Potturu <quic_potturu@quicinc.com> >> Signed-off-by: Venkata Prasad Potturu <quic_potturu@quicinc.com> >> --- >> sound/soc/qcom/sc7280.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/sound/soc/qcom/sc7280.c b/sound/soc/qcom/sc7280.c >> index 4ef4034..d64df11 100644 >> --- a/sound/soc/qcom/sc7280.c >> +++ b/sound/soc/qcom/sc7280.c >> @@ -295,6 +295,10 @@ static void sc7280_snd_shutdown(struct >> snd_pcm_substream *substream) >> break; >> case LPASS_DP_RX: >> break; >> + case LPASS_CDC_DMA_RX0 ... LPASS_CDC_DMA_RX9: >> + case LPASS_CDC_DMA_TX0 ... LPASS_CDC_DMA_TX8: >> + case LPASS_CDC_DMA_VA_TX0 ... LPASS_CDC_DMA_VA_TX8: >> + break; >> default: >> dev_err(rtd->dev, "%s: invalid dai id 0x%x\n", __func__, >> cpu_dai->id); > > Why not just make sc7280_snd_startup code like this: > > static int sc7280_snd_startup(struct snd_pcm_substream *substream) > { > struct snd_soc_pcm_runtime *rtd = substream->private_data; > struct snd_soc_dai *cpu_dai = asoc_rtd_to_cpu(rtd, 0); > int ret = 0; > > switch (cpu_dai->id) { > case MI2S_PRIMARY: > ret = sc7280_rt5682_init(rtd); > break; > default: > break; > } > return ret; > } > > and sc7280_snd_shutdown with something similar Yes. we can do as you suggested. Then Shall I do it as fix to a commit? i.e. c5198db ASoC: qcom: Add driver support for ALC5682I-VS > > --srini >> @@ -316,6 +320,10 @@ static int sc7280_snd_startup(struct >> snd_pcm_substream *substream) >> break; >> case LPASS_DP_RX: >> break; >> + case LPASS_CDC_DMA_RX0 ... LPASS_CDC_DMA_RX9: >> + case LPASS_CDC_DMA_TX0 ... LPASS_CDC_DMA_TX8: >> + case LPASS_CDC_DMA_VA_TX0 ... LPASS_CDC_DMA_VA_TX8: >> + break; >> default: >> dev_err(rtd->dev, "%s: invalid dai id 0x%x\n", __func__, >> cpu_dai->id);
diff --git a/sound/soc/qcom/sc7280.c b/sound/soc/qcom/sc7280.c index 4ef4034..d64df11 100644 --- a/sound/soc/qcom/sc7280.c +++ b/sound/soc/qcom/sc7280.c @@ -295,6 +295,10 @@ static void sc7280_snd_shutdown(struct snd_pcm_substream *substream) break; case LPASS_DP_RX: break; + case LPASS_CDC_DMA_RX0 ... LPASS_CDC_DMA_RX9: + case LPASS_CDC_DMA_TX0 ... LPASS_CDC_DMA_TX8: + case LPASS_CDC_DMA_VA_TX0 ... LPASS_CDC_DMA_VA_TX8: + break; default: dev_err(rtd->dev, "%s: invalid dai id 0x%x\n", __func__, cpu_dai->id); @@ -316,6 +320,10 @@ static int sc7280_snd_startup(struct snd_pcm_substream *substream) break; case LPASS_DP_RX: break; + case LPASS_CDC_DMA_RX0 ... LPASS_CDC_DMA_RX9: + case LPASS_CDC_DMA_TX0 ... LPASS_CDC_DMA_TX8: + case LPASS_CDC_DMA_VA_TX0 ... LPASS_CDC_DMA_VA_TX8: + break; default: dev_err(rtd->dev, "%s: invalid dai id 0x%x\n", __func__, cpu_dai->id);