asoc: wcd937x: enable headset detection

Enable mbhc on wcd937x for headset insertion and
removal detection.

Change-Id: I0b2ae7ea061a99ad89f9adea00c898dac4442ca6
Signed-off-by: Ramprasad Katkam <katkam@codeaurora.org>
diff --git a/asoc/sm6150.c b/asoc/sm6150.c
index 8d9d32d..46b5c70 100644
--- a/asoc/sm6150.c
+++ b/asoc/sm6150.c
@@ -36,6 +36,7 @@
 #include "codecs/msm-cdc-pinctrl.h"
 #include "codecs/wcd934x/wcd934x.h"
 #include "codecs/wcd934x/wcd934x-mbhc.h"
+#include "codecs/wcd937x/wcd937x-mbhc.h"
 #include "codecs/wsa881x.h"
 #include "codecs/bolero/bolero-cdc.h"
 #include <dt-bindings/sound/audio-codec-port-types.h>
@@ -7925,6 +7926,8 @@
 {
 	struct snd_soc_codec *codec = snd_soc_component_to_codec(component);
 	struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
+	int ret = 0;
+	void *mbhc_calibration;
 
 	snd_soc_dapm_ignore_suspend(dapm, "EAR");
 	snd_soc_dapm_ignore_suspend(dapm, "AUX");
@@ -7936,7 +7939,14 @@
 	snd_soc_dapm_ignore_suspend(dapm, "AMIC4");
 	snd_soc_dapm_sync(dapm);
 
-	return 0;
+	mbhc_calibration = def_wcd_mbhc_cal();
+	if (!mbhc_calibration) {
+		return -ENOMEM;
+	}
+	wcd_mbhc_cfg.calibration = mbhc_calibration;
+	ret = wcd937x_mbhc_hs_detect(codec, &wcd_mbhc_cfg);
+
+	return ret;
 }
 
 static int msm_init_aux_dev(struct platform_device *pdev,