summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqctecmdr <qctecmdr@localhost>2019-10-24 11:14:24 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2019-10-24 11:14:24 -0700
commita52e59a89d24ca8bd74444aa601b2faabd4b30c7 (patch)
tree30e6a6c811d9e2b00c51c3f0ab2adb3276720cfd
parent8cb3073bc2d09d0289501e595b18feaf4dcc98b9 (diff)
parent369ca761949ffeab59e68ac981568d1f178b1424 (diff)
downloadmsm-extra-a52e59a89d24ca8bd74444aa601b2faabd4b30c7.tar.gz
Merge "Asoc: Fix for dtmf tone play issue"
-rw-r--r--asoc/msm-pcm-dtmf-v2.c12
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;
}