Merge "dsp: adm: add to check output/input channel"

This commit is contained in:
qctecmdr 2021-03-23 00:39:57 -07:00 • committed by Gerrit - the friendly Code Review server
commit 50d8130a5d

View file

@ -1935,6 +1935,11 @@ static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
++i) {
be_id = channel_input[fe_id][i] - 1;
if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
pr_err("%s: Received out of bounds be_id %d\n",
__func__, be_id);
return -EINVAL;
}
channel_mixer[fe_id].input_channels[i] =
msm_bedais[be_id].channel;
@ -3685,10 +3690,10 @@ static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
u16 fe_id = 0;
u16 fe_id = 0, out_ch = 0;
fe_id = ((struct soc_multi_mixer_control *)
kcontrol->private_value)->shift;
out_ch = ucontrol->value.integer.value[0];
if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
pr_err("%s: invalid FE %d\n", __func__, fe_id);
return -EINVAL;
@ -3697,6 +3702,12 @@ static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
fe_id,
(unsigned int)(ucontrol->value.integer.value[0]));
if (out_ch < 0 ||
out_ch > ADM_MAX_CHANNELS) {
pr_err("%s: invalid output channel %d\n", __func__,
out_ch);
return -EINVAL;
}
channel_mixer[fe_id].output_channel =
(unsigned int)(ucontrol->value.integer.value[0]);