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

Commit c29b12e2 authored by Soumya Managoli's avatar Soumya Managoli Committed by Gerrit - the friendly Code Review server
Browse files

ASoC: msm: qdsp6v2: Handle invalid session for dtmf enable



If session id is invalid then dtmf voice info will also
be invalid.

Add check to return error if session id is invalid.

CRs-Fixed: 2306771
Change-Id: I362340f9f666c95949eaa94d0ced4cb3a1b9abab
Signed-off-by: default avatarSoumya Managoli <smanag@codeaurora.org>
parent e106251f
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -60,6 +60,28 @@ static struct snd_pcm_hardware msm_pcm_hardware = {
	.fifo_size =            0,
};

static int is_valid_session_id(uint32_t session_id)
{
	int idx = 0;

	switch (session_id) {
	case VOICE_SESSION_VSID:
	case VOICE2_SESSION_VSID:
	case VOLTE_SESSION_VSID:
	case QCHAT_SESSION_VSID:
	case VOWLAN_SESSION_VSID:
	case VOICEMMODE1_VSID:
	case VOICEMMODE2_VSID:
	case ALL_SESSION_VSID:
		idx = 1;
		break;
	default:
		pr_debug("%s: Invalid session_id : %x\n", __func__, session_id);
		break;
	}
	return idx;
}

static int get_idx_for_session(uint32_t session_id)
{
	int idx = 0;
@@ -684,6 +706,11 @@ static int msm_dtmf_detect_rx_vsid_cb_put(struct snd_kcontrol *kcontrol,
	uint32_t session_id = ucontrol->value.integer.value[0];
	uint32_t enable = ucontrol->value.integer.value[1];

	if (!is_valid_session_id(session_id)) {
		pr_err(" %s Invalid session_id : %x\n", __func__, session_id);
		return -EINVAL;
	}

	if (enable)
		enable = 1;