Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7a7e91b4 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "dsp: asm: Add check for num_channels before calling q6asm_map_channels"

parents 84eff29a 6a14cfb6
Loading
Loading
Loading
Loading
+69 −1
Original line number Diff line number Diff line
@@ -3794,6 +3794,12 @@ int q6asm_open_shared_io(struct audio_client *ac,
	if (!ac || !config)
		return -EINVAL;

	if (config->channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__,
			config->channels);
		return -EINVAL;
	}

	bufsz = config->bufsz;
	bufcnt = config->bufcnt;
	num_watermarks = 0;
@@ -4312,6 +4318,12 @@ int q6asm_set_encdec_chan_map(struct audio_client *ac,
	u8 *channel_mapping;
	int rc = 0;

	if (num_channels > MAX_CHAN_MAP_CHANNELS) {
		pr_err("%s: Invalid channel count %d\n", __func__,
			num_channels);
		return -EINVAL;
	}

	pr_debug("%s: Session %d, num_channels = %d\n",
			 __func__, ac->session, num_channels);
	q6asm_add_hdr(ac, &chan_map.hdr, sizeof(chan_map), TRUE);
@@ -4393,6 +4405,12 @@ int q6asm_enc_cfg_blk_pcm_v4(struct audio_client *ac,
		goto fail_cmd;
	}

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		rc = -EINVAL;
		goto fail_cmd;
	}

	pr_debug("%s: session[%d]rate[%d]ch[%d]bps[%d]wordsize[%d]\n", __func__,
		 ac->session, rate, channels,
		 bits_per_sample, sample_word_size);
@@ -4492,6 +4510,12 @@ int q6asm_enc_cfg_blk_pcm_v3(struct audio_client *ac,
		goto fail_cmd;
	}

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		rc = -EINVAL;
		goto fail_cmd;
	}

	pr_debug("%s: session[%d]rate[%d]ch[%d]bps[%d]wordsize[%d]\n", __func__,
		 ac->session, rate, channels,
		 bits_per_sample, sample_word_size);
@@ -4588,6 +4612,11 @@ int q6asm_enc_cfg_blk_pcm_v2(struct audio_client *ac,
		return -EINVAL;
	}

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		return -EINVAL;
	}

	pr_debug("%s: Session %d, rate = %d, channels = %d\n", __func__,
			 ac->session, rate, channels);

@@ -4765,9 +4794,13 @@ int q6asm_enc_cfg_blk_pcm_native(struct audio_client *ac,
	struct asm_multi_channel_pcm_enc_cfg_v2  enc_cfg;
	u8 *channel_mapping;
	u32 frames_per_buf = 0;

	int rc = 0;

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		return -EINVAL;
	}

	pr_debug("%s: Session %d, rate = %d, channels = %d\n", __func__,
			 ac->session, rate, channels);

@@ -5329,6 +5362,11 @@ static int __q6asm_media_format_block_pcm(struct audio_client *ac,
	u8 *channel_mapping;
	int rc = 0;

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		return -EINVAL;
	}

	pr_debug("%s: session[%d]rate[%d]ch[%d]\n", __func__, ac->session, rate,
		channels);

@@ -5411,6 +5449,11 @@ static int __q6asm_media_format_block_pcm_v3(struct audio_client *ac,
	u8 *channel_mapping;
	int rc;

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		return -EINVAL;
	}

	pr_debug("%s: session[%d]rate[%d]ch[%d]bps[%d]wordsize[%d]\n", __func__,
		 ac->session, rate, channels,
		 bits_per_sample, sample_word_size);
@@ -5494,6 +5537,11 @@ static int __q6asm_media_format_block_pcm_v4(struct audio_client *ac,
	u8 *channel_mapping;
	int rc;

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		return -EINVAL;
	}

	pr_debug("%s: session[%d]rate[%d]ch[%d]bps[%d]wordsize[%d]\n", __func__,
		 ac->session, rate, channels,
		 bits_per_sample, sample_word_size);
@@ -5705,6 +5753,11 @@ static int __q6asm_media_format_block_multi_ch_pcm(struct audio_client *ac,
	u8 *channel_mapping;
	int rc = 0;

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		return -EINVAL;
	}

	pr_debug("%s: session[%d]rate[%d]ch[%d]\n", __func__, ac->session, rate,
		channels);

@@ -5772,6 +5825,11 @@ static int __q6asm_media_format_block_multi_ch_pcm_v3(struct audio_client *ac,
	u8 *channel_mapping;
	int rc;

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		return -EINVAL;
	}

	pr_debug("%s: session[%d]rate[%d]ch[%d]bps[%d]wordsize[%d]\n", __func__,
		 ac->session, rate, channels,
		 bits_per_sample, sample_word_size);
@@ -5843,6 +5901,11 @@ static int __q6asm_media_format_block_multi_ch_pcm_v4(struct audio_client *ac,
	u8 *channel_mapping;
	int rc;

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		return -EINVAL;
	}

	pr_debug("%s: session[%d]rate[%d]ch[%d]bps[%d]wordsize[%d]\n", __func__,
		 ac->session, rate, channels,
		 bits_per_sample, sample_word_size);
@@ -6000,6 +6063,11 @@ int q6asm_media_format_block_gen_compr(struct audio_client *ac,
	u8 *channel_mapping;
	int rc = 0;

	if (channels > PCM_FORMAT_MAX_NUM_CHANNEL) {
		pr_err("%s: Invalid channel count %d\n", __func__, channels);
		return -EINVAL;
	}

	pr_debug("%s: session[%d]rate[%d]ch[%d]bps[%d]\n",
		 __func__, ac->session, rate,
		 channels, bits_per_sample);