Message ID | 20200313101627.1561365-4-vkoul@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ALSA: compress: Add wma, alac and ape support | expand |
On 13/03/2020 10:16, Vinod Koul wrote: > Codec profile is required to be passed for WMA codecs so that we know > the codec profile present and tell DSP accordingly, so update this API > to pass the codec profile as argument > > Signed-off-by: Vinod Koul <vkoul@kernel.org> LGTM, Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > --- > sound/soc/qcom/qdsp6/q6asm-dai.c | 4 ++-- > sound/soc/qcom/qdsp6/q6asm.c | 2 +- > sound/soc/qcom/qdsp6/q6asm.h | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c > index c0d422d0ab94..8f245d03b6f5 100644 > --- a/sound/soc/qcom/qdsp6/q6asm-dai.c > +++ b/sound/soc/qcom/qdsp6/q6asm-dai.c > @@ -250,7 +250,7 @@ static int q6asm_dai_prepare(struct snd_soc_component *component, > > if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { > ret = q6asm_open_write(prtd->audio_client, FORMAT_LINEAR_PCM, > - prtd->bits_per_sample); > + 0, prtd->bits_per_sample); > } else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { > ret = q6asm_open_read(prtd->audio_client, FORMAT_LINEAR_PCM, > prtd->bits_per_sample); > @@ -652,7 +652,7 @@ static int q6asm_dai_compr_set_params(struct snd_compr_stream *stream, > prtd->bits_per_sample = 16; > if (dir == SND_COMPRESS_PLAYBACK) { > ret = q6asm_open_write(prtd->audio_client, params->codec.id, > - prtd->bits_per_sample); > + params->codec.profile, prtd->bits_per_sample); > > if (ret < 0) { > dev_err(dev, "q6asm_open_write failed\n"); > diff --git a/sound/soc/qcom/qdsp6/q6asm.c b/sound/soc/qcom/qdsp6/q6asm.c > index 36e0eab13a98..64eb7b6ba305 100644 > --- a/sound/soc/qcom/qdsp6/q6asm.c > +++ b/sound/soc/qcom/qdsp6/q6asm.c > @@ -858,7 +858,7 @@ static int q6asm_ac_send_cmd_sync(struct audio_client *ac, struct apr_pkt *pkt) > * Return: Will be an negative value on error or zero on success > */ > int q6asm_open_write(struct audio_client *ac, uint32_t format, > - uint16_t bits_per_sample) > + u32 codec_profile, uint16_t bits_per_sample) > { > struct asm_stream_cmd_open_write_v3 *open; > struct apr_pkt *pkt; > diff --git a/sound/soc/qcom/qdsp6/q6asm.h b/sound/soc/qcom/qdsp6/q6asm.h > index 6764f55f7078..1cff7f68b95d 100644 > --- a/sound/soc/qcom/qdsp6/q6asm.h > +++ b/sound/soc/qcom/qdsp6/q6asm.h > @@ -55,7 +55,7 @@ void q6asm_audio_client_free(struct audio_client *ac); > int q6asm_write_async(struct audio_client *ac, uint32_t len, uint32_t msw_ts, > uint32_t lsw_ts, uint32_t flags); > int q6asm_open_write(struct audio_client *ac, uint32_t format, > - uint16_t bits_per_sample); > + u32 codec_profile, uint16_t bits_per_sample); > > int q6asm_open_read(struct audio_client *ac, uint32_t format, > uint16_t bits_per_sample); >
diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c index c0d422d0ab94..8f245d03b6f5 100644 --- a/sound/soc/qcom/qdsp6/q6asm-dai.c +++ b/sound/soc/qcom/qdsp6/q6asm-dai.c @@ -250,7 +250,7 @@ static int q6asm_dai_prepare(struct snd_soc_component *component, if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { ret = q6asm_open_write(prtd->audio_client, FORMAT_LINEAR_PCM, - prtd->bits_per_sample); + 0, prtd->bits_per_sample); } else if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) { ret = q6asm_open_read(prtd->audio_client, FORMAT_LINEAR_PCM, prtd->bits_per_sample); @@ -652,7 +652,7 @@ static int q6asm_dai_compr_set_params(struct snd_compr_stream *stream, prtd->bits_per_sample = 16; if (dir == SND_COMPRESS_PLAYBACK) { ret = q6asm_open_write(prtd->audio_client, params->codec.id, - prtd->bits_per_sample); + params->codec.profile, prtd->bits_per_sample); if (ret < 0) { dev_err(dev, "q6asm_open_write failed\n"); diff --git a/sound/soc/qcom/qdsp6/q6asm.c b/sound/soc/qcom/qdsp6/q6asm.c index 36e0eab13a98..64eb7b6ba305 100644 --- a/sound/soc/qcom/qdsp6/q6asm.c +++ b/sound/soc/qcom/qdsp6/q6asm.c @@ -858,7 +858,7 @@ static int q6asm_ac_send_cmd_sync(struct audio_client *ac, struct apr_pkt *pkt) * Return: Will be an negative value on error or zero on success */ int q6asm_open_write(struct audio_client *ac, uint32_t format, - uint16_t bits_per_sample) + u32 codec_profile, uint16_t bits_per_sample) { struct asm_stream_cmd_open_write_v3 *open; struct apr_pkt *pkt; diff --git a/sound/soc/qcom/qdsp6/q6asm.h b/sound/soc/qcom/qdsp6/q6asm.h index 6764f55f7078..1cff7f68b95d 100644 --- a/sound/soc/qcom/qdsp6/q6asm.h +++ b/sound/soc/qcom/qdsp6/q6asm.h @@ -55,7 +55,7 @@ void q6asm_audio_client_free(struct audio_client *ac); int q6asm_write_async(struct audio_client *ac, uint32_t len, uint32_t msw_ts, uint32_t lsw_ts, uint32_t flags); int q6asm_open_write(struct audio_client *ac, uint32_t format, - uint16_t bits_per_sample); + u32 codec_profile, uint16_t bits_per_sample); int q6asm_open_read(struct audio_client *ac, uint32_t format, uint16_t bits_per_sample);
Codec profile is required to be passed for WMA codecs so that we know the codec profile present and tell DSP accordingly, so update this API to pass the codec profile as argument Signed-off-by: Vinod Koul <vkoul@kernel.org> --- sound/soc/qcom/qdsp6/q6asm-dai.c | 4 ++-- sound/soc/qcom/qdsp6/q6asm.c | 2 +- sound/soc/qcom/qdsp6/q6asm.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-)