hal: Add support for native-DSD and native sampling rates

 -set passthrough flag and diable gapless for native dsd
 -Select new backend for native dsd.
 -Add support for e2e playback of clips with sampling rate
  multiple of 44.1.

Change-Id: I6aa0ef5ea176a0923b0b88924ab046f9a11b7b12
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index 48bfb2b..9394ef8 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -80,6 +80,7 @@
     SND_DEVICE_OUT_SPEAKER_VBAT,
     SND_DEVICE_OUT_LINE,
     SND_DEVICE_OUT_HEADPHONES,
+    SND_DEVICE_OUT_HEADPHONES_DSD,
     SND_DEVICE_OUT_HEADPHONES_44_1,
     SND_DEVICE_OUT_SPEAKER_AND_HEADPHONES,
     SND_DEVICE_OUT_SPEAKER_AND_LINE,
@@ -192,13 +193,18 @@
     SND_DEVICE_MAX = SND_DEVICE_IN_END,
 
 };
-
+#define INPUT_SAMPLING_RATE_DSD64       2822400
+#define INPUT_SAMPLING_RATE_DSD128      5644800
 #define DEFAULT_OUTPUT_SAMPLING_RATE    48000
 #define OUTPUT_SAMPLING_RATE_44100      44100
+#define OUTPUT_SAMPLING_RATE_DSD64       176400
+#define OUTPUT_SAMPLING_RATE_DSD128      352800
 #define MAX_CODEC_TX_BACKENDS           1
 enum {
     DEFAULT_CODEC_BACKEND,
     SLIMBUS_0_RX = DEFAULT_CODEC_BACKEND,
+    DSD_NATIVE_BACKEND,
+    SLIMBUS_2_RX = DSD_NATIVE_BACKEND,
     HEADPHONE_44_1_BACKEND,
     SLIMBUS_5_RX = HEADPHONE_44_1_BACKEND,
     HEADPHONE_BACKEND,
@@ -447,7 +453,8 @@
 enum {
     LEGACY_PCM = 0,
     PASSTHROUGH,
-    PASSTHROUGH_CONVERT
+    PASSTHROUGH_CONVERT,
+    PASSTHROUGH_DSD
 };
 /*
  * ID for setting mute and lateny on the device side