ASoc: Fix for dtmf tone play issue

Fix the data corruption happening because of
misaligned datatypes so that DTMF can be played
for more than 32767 seconds.

Change-Id: I199d6d10e9f184665d8f03a2265d0bcd8ae16590
Signed-off-by: Jhansi Konathala <cjkonat@codeaurora.org>
diff --git a/asoc/msm-pcm-dtmf-v2.c b/asoc/msm-pcm-dtmf-v2.c
index 7f79471..3dc7a26 100644
--- a/asoc/msm-pcm-dtmf-v2.c
+++ b/asoc/msm-pcm-dtmf-v2.c
@@ -20,6 +20,8 @@
 
 #define DRV_NAME "msm-pcm-dtmf-v2"
 
+#define DTMF_MAX_DURATION 65535
+
 enum {
 	DTMF_IN_RX,
 	DTMF_IN_TX,
@@ -94,8 +96,12 @@
 	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",
+	pr_debug("%s: low_freq=%d high_freq=%d duration=%lld gain=%d\n",
 		 __func__, low_freq, high_freq, (int)duration, gain);
+
+	if (duration == DTMF_MAX_DURATION)
+		duration = -1;
+
 	afe_dtmf_generate_rx(duration, high_freq, low_freq, gain);
 	return 0;
 }