Loading sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c +53 −4 Original line number Diff line number Diff line Loading @@ -841,6 +841,19 @@ static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream, sample_word_size = 16; break; } switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_media_format_block_pcm_format_support_v3( prtd->audio_client, prtd->sample_rate, prtd->num_channels, bit_width, stream_id, use_default_chmap, chmap, sample_word_size); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_media_format_block_pcm_format_support_v4( prtd->audio_client, prtd->sample_rate, Loading @@ -851,6 +864,12 @@ static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream, sample_word_size, ASM_LITTLE_ENDIAN, DEFAULT_QF); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) pr_err("%s: CMD Format block failed\n", __func__); Loading Loading @@ -1124,10 +1143,25 @@ static int msm_compr_configure_dsp_for_playback } else { pr_debug("%s: stream_id %d bits_per_sample %d\n", __func__, ac->stream_id, bits_per_sample); switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_stream_open_write_v3(ac, prtd->codec, bits_per_sample, ac->stream_id, prtd->gapless_state.use_dsp_gapless_mode); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_stream_open_write_v4(ac, prtd->codec, bits_per_sample, ac->stream_id, prtd->gapless_state.use_dsp_gapless_mode); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) { pr_err("%s:ASM open write err[%d] for compr type[%d]\n", __func__, ret, prtd->compr_passthr); Loading Loading @@ -2360,10 +2394,25 @@ static int msm_compr_trigger(struct snd_compr_stream *cstream, int cmd) pr_debug("%s: open_write stream_id %d bits_per_sample %d", __func__, stream_id, bits_per_sample); rc = q6asm_stream_open_write_v4(prtd->audio_client, switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): rc = q6asm_stream_open_write_v3(ac, prtd->codec, bits_per_sample, stream_id, ac->stream_id, prtd->gapless_state.use_dsp_gapless_mode); break; case (Q6_SUBSYS_AVS2_8): rc = q6asm_stream_open_write_v4(ac, prtd->codec, bits_per_sample, ac->stream_id, prtd->gapless_state.use_dsp_gapless_mode); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (rc < 0) { pr_err("%s: Session out open failed for gapless\n", __func__); Loading sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c +75 −14 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ #include <linux/of_device.h> #include <sound/tlv.h> #include <sound/pcm_params.h> #include <sound/q6core.h> #include "msm-pcm-q6-v2.h" #include "msm-pcm-routing-v2.h" Loading Loading @@ -341,10 +342,20 @@ static int msm_pcm_playback_prepare(struct snd_pcm_substream *substream) sample_word_size = 16; break; } switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_open_write_v3(prtd->audio_client, FORMAT_LINEAR_PCM, bits_per_sample); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_open_write_v4(prtd->audio_client, FORMAT_LINEAR_PCM, bits_per_sample); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) { pr_err("%s: q6asm_open_write_v2 failed\n", __func__); q6asm_audio_client_free(prtd->audio_client); Loading @@ -367,12 +378,28 @@ static int msm_pcm_playback_prepare(struct snd_pcm_substream *substream) return ret; } switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_media_format_block_multi_ch_pcm_v3( prtd->audio_client, runtime->rate, runtime->channels, !prtd->set_channel_map, prtd->channel_map, bits_per_sample, sample_word_size); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_media_format_block_multi_ch_pcm_v4( prtd->audio_client, runtime->rate, runtime->channels, !prtd->set_channel_map, prtd->channel_map, bits_per_sample, sample_word_size, ASM_LITTLE_ENDIAN, DEFAULT_QF); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) pr_info("%s: CMD Format block failed\n", __func__); Loading Loading @@ -430,8 +457,23 @@ static int msm_pcm_capture_prepare(struct snd_pcm_substream *substream) __func__, params_channels(params), prtd->audio_client->perf_mode); ret = q6asm_open_read_v4(prtd->audio_client, FORMAT_LINEAR_PCM, switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_open_read_v3(prtd->audio_client, FORMAT_LINEAR_PCM, bits_per_sample); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_open_read_v4(prtd->audio_client, FORMAT_LINEAR_PCM, bits_per_sample); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) { pr_err("%s: q6asm_open_read failed\n", __func__); q6asm_audio_client_free(prtd->audio_client); Loading Loading @@ -498,13 +540,32 @@ static int msm_pcm_capture_prepare(struct snd_pcm_substream *substream) pr_debug("%s: Samp_rate = %d Channel = %d bit width = %d, word size = %d\n", __func__, prtd->samp_rate, prtd->channel_mode, bits_per_sample, sample_word_size); ret = q6asm_enc_cfg_blk_pcm_format_support_v4(prtd->audio_client, switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_enc_cfg_blk_pcm_format_support_v3( prtd->audio_client, prtd->samp_rate, prtd->channel_mode, bits_per_sample, sample_word_size); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_enc_cfg_blk_pcm_format_support_v4( prtd->audio_client, prtd->samp_rate, prtd->channel_mode, bits_per_sample, sample_word_size, ASM_LITTLE_ENDIAN, DEFAULT_QF); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) pr_debug("%s: cmd cfg pcm was block failed", __func__); Loading Loading
sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c +53 −4 Original line number Diff line number Diff line Loading @@ -841,6 +841,19 @@ static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream, sample_word_size = 16; break; } switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_media_format_block_pcm_format_support_v3( prtd->audio_client, prtd->sample_rate, prtd->num_channels, bit_width, stream_id, use_default_chmap, chmap, sample_word_size); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_media_format_block_pcm_format_support_v4( prtd->audio_client, prtd->sample_rate, Loading @@ -851,6 +864,12 @@ static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream, sample_word_size, ASM_LITTLE_ENDIAN, DEFAULT_QF); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) pr_err("%s: CMD Format block failed\n", __func__); Loading Loading @@ -1124,10 +1143,25 @@ static int msm_compr_configure_dsp_for_playback } else { pr_debug("%s: stream_id %d bits_per_sample %d\n", __func__, ac->stream_id, bits_per_sample); switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_stream_open_write_v3(ac, prtd->codec, bits_per_sample, ac->stream_id, prtd->gapless_state.use_dsp_gapless_mode); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_stream_open_write_v4(ac, prtd->codec, bits_per_sample, ac->stream_id, prtd->gapless_state.use_dsp_gapless_mode); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) { pr_err("%s:ASM open write err[%d] for compr type[%d]\n", __func__, ret, prtd->compr_passthr); Loading Loading @@ -2360,10 +2394,25 @@ static int msm_compr_trigger(struct snd_compr_stream *cstream, int cmd) pr_debug("%s: open_write stream_id %d bits_per_sample %d", __func__, stream_id, bits_per_sample); rc = q6asm_stream_open_write_v4(prtd->audio_client, switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): rc = q6asm_stream_open_write_v3(ac, prtd->codec, bits_per_sample, stream_id, ac->stream_id, prtd->gapless_state.use_dsp_gapless_mode); break; case (Q6_SUBSYS_AVS2_8): rc = q6asm_stream_open_write_v4(ac, prtd->codec, bits_per_sample, ac->stream_id, prtd->gapless_state.use_dsp_gapless_mode); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (rc < 0) { pr_err("%s: Session out open failed for gapless\n", __func__); Loading
sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c +75 −14 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ #include <linux/of_device.h> #include <sound/tlv.h> #include <sound/pcm_params.h> #include <sound/q6core.h> #include "msm-pcm-q6-v2.h" #include "msm-pcm-routing-v2.h" Loading Loading @@ -341,10 +342,20 @@ static int msm_pcm_playback_prepare(struct snd_pcm_substream *substream) sample_word_size = 16; break; } switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_open_write_v3(prtd->audio_client, FORMAT_LINEAR_PCM, bits_per_sample); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_open_write_v4(prtd->audio_client, FORMAT_LINEAR_PCM, bits_per_sample); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) { pr_err("%s: q6asm_open_write_v2 failed\n", __func__); q6asm_audio_client_free(prtd->audio_client); Loading @@ -367,12 +378,28 @@ static int msm_pcm_playback_prepare(struct snd_pcm_substream *substream) return ret; } switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_media_format_block_multi_ch_pcm_v3( prtd->audio_client, runtime->rate, runtime->channels, !prtd->set_channel_map, prtd->channel_map, bits_per_sample, sample_word_size); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_media_format_block_multi_ch_pcm_v4( prtd->audio_client, runtime->rate, runtime->channels, !prtd->set_channel_map, prtd->channel_map, bits_per_sample, sample_word_size, ASM_LITTLE_ENDIAN, DEFAULT_QF); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) pr_info("%s: CMD Format block failed\n", __func__); Loading Loading @@ -430,8 +457,23 @@ static int msm_pcm_capture_prepare(struct snd_pcm_substream *substream) __func__, params_channels(params), prtd->audio_client->perf_mode); ret = q6asm_open_read_v4(prtd->audio_client, FORMAT_LINEAR_PCM, switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_open_read_v3(prtd->audio_client, FORMAT_LINEAR_PCM, bits_per_sample); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_open_read_v4(prtd->audio_client, FORMAT_LINEAR_PCM, bits_per_sample); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) { pr_err("%s: q6asm_open_read failed\n", __func__); q6asm_audio_client_free(prtd->audio_client); Loading Loading @@ -498,13 +540,32 @@ static int msm_pcm_capture_prepare(struct snd_pcm_substream *substream) pr_debug("%s: Samp_rate = %d Channel = %d bit width = %d, word size = %d\n", __func__, prtd->samp_rate, prtd->channel_mode, bits_per_sample, sample_word_size); ret = q6asm_enc_cfg_blk_pcm_format_support_v4(prtd->audio_client, switch (q6core_get_avs_version()) { case (Q6_SUBSYS_AVS2_7): ret = q6asm_enc_cfg_blk_pcm_format_support_v3( prtd->audio_client, prtd->samp_rate, prtd->channel_mode, bits_per_sample, sample_word_size); break; case (Q6_SUBSYS_AVS2_8): ret = q6asm_enc_cfg_blk_pcm_format_support_v4( prtd->audio_client, prtd->samp_rate, prtd->channel_mode, bits_per_sample, sample_word_size, ASM_LITTLE_ENDIAN, DEFAULT_QF); break; case (Q6_SUBSYS_INVALID): default: pr_err("%s: INVALID AVS IMAGE\n", __func__); break; } if (ret < 0) pr_debug("%s: cmd cfg pcm was block failed", __func__); Loading