diff options
author | qctecmdr <qctecmdr@localhost> | 2019-10-24 11:14:24 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-10-24 11:14:24 -0700 |
commit | a52e59a89d24ca8bd74444aa601b2faabd4b30c7 (patch) | |
tree | 30e6a6c811d9e2b00c51c3f0ab2adb3276720cfd | |
parent | 8cb3073bc2d09d0289501e595b18feaf4dcc98b9 (diff) | |
parent | 369ca761949ffeab59e68ac981568d1f178b1424 (diff) | |
download | msm-extra-a52e59a89d24ca8bd74444aa601b2faabd4b30c7.tar.gz |
Merge "Asoc: Fix for dtmf tone play issue"
-rw-r--r-- | asoc/msm-pcm-dtmf-v2.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/asoc/msm-pcm-dtmf-v2.c b/asoc/msm-pcm-dtmf-v2.c index c8a837f7..269d2b4c 100644 --- a/asoc/msm-pcm-dtmf-v2.c +++ b/asoc/msm-pcm-dtmf-v2.c @@ -26,6 +26,8 @@ #include "msm-pcm-q6-v2.h" #include "msm-pcm-routing-v2.h" +#define DTMF_MAX_DURATION 65535 + enum { DTMF_IN_RX, DTMF_IN_TX, @@ -97,12 +99,14 @@ static int msm_dtmf_rx_generate_put(struct snd_kcontrol *kcontrol, { uint16_t low_freq = ucontrol->value.integer.value[0]; uint16_t high_freq = ucontrol->value.integer.value[1]; - int16_t duration = ucontrol->value.integer.value[2]; + int64_t duration = ucontrol->value.integer.value[2]; uint16_t gain = ucontrol->value.integer.value[3]; - pr_debug("%s: low_freq=%d high_freq=%d duration=%d gain=%d\n", - __func__, low_freq, high_freq, (int)duration, gain); - afe_dtmf_generate_rx((int64_t) duration, high_freq, low_freq, gain); + pr_debug("%s: low_freq=%d high_freq=%d duration=%lld gain=%d\n", + __func__, low_freq, high_freq, duration, gain); + if (duration == DTMF_MAX_DURATION) + duration = -1; + afe_dtmf_generate_rx(duration, high_freq, low_freq, gain); return 0; } |