## Description: add some description
## Origin/Author: add some origin or author
## Bug: bug URL
Index: alsa-lib-1.1.2/src/conf/ucm/msm8974-taiko-mtp-snd-card/HiFi
===================================================================
--- /dev/null
+++ alsa-lib-1.1.2/src/conf/ucm/msm8974-taiko-mtp-snd-card/HiFi
@@ -0,0 +1,259 @@
+SectionVerb {
+	EnableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+		cset "name='MultiMedia1 Mixer SLIM_0_TX' 1"
+	]
+
+	DisableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
+		cset "name='MultiMedia1 Mixer SLIM_0_TX' 0"
+	]
+
+	Value {
+		TQ "HiFi"
+		
+		CapturePCM "hw:msm8974taikomtp,0"
+		PlaybackPCM "hw:msm8974taikomtp,0"
+	}
+}
+
+SectionDevice."Earpiece" {
+	#Name "Earpiece"
+	Comment "Earpiece speaker"
+
+	# FIXME
+	ConflictingDevice [
+		"Headphones"
+		"Speaker"
+	]
+
+	EnableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		# We need to disable this while setting up the route, else the
+		# driver will hang if the stream is open.
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
+
+		cset "name='SLIM RX1 MUX' AIF1_PB"
+		cset "name='SLIM_0_RX Channels' One"
+		cset "name='RX1 MIX1 INP1' RX1"
+		cset "name='CLASS_H_DSM MUX' DSM_HPHL_RX1"
+		cset "name='RX1 Digital Volume' 65"
+		cset "name='EAR PA Gain' POS_6_DB"
+		cset "name='DAC1 Switch' 1"
+
+		# Route has been set up, re-enable the mixer.
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+	]
+
+	DisableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		# See comment in EnableSequence
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
+
+		cset "name='SLIM RX1 MUX' ZERO"
+		cset "name='RX1 MIX1 INP1' ZERO"
+		cset "name='CLASS_H_DSM MUX' ZERO"
+		cset "name='RX1 Digital Volume' 0"
+		cset "name='DAC1 Switch' 0"
+
+		# See comment in EnableSequence
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+	]
+
+	Value {
+		PlaybackChannels "2"
+	}
+}
+
+SectionDevice."Speaker" {
+	#Name "Speaker"
+	Comment "Main speaker"
+
+	# FIXME
+	ConflictingDevice [
+		"Earpiece"
+		"Headphones"
+	]
+
+	EnableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		# We need to disable this while setting up the route, else the
+		# driver will hang if the stream is open.
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
+
+		cset "name='SLIM RX1 MUX' AIF1_PB"
+		cset "name='SLIM_0_RX Channels' One"
+		cset "name='RX7 MIX1 INP1' RX1"
+		cset "name='RX7 Digital Volume' 88"
+		cset "name='SPK DRV Volume' 6"
+
+		# Route has been set up, re-enable the mixer.
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+	]
+
+	DisableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		# See comment in EnableSequence
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
+
+		cset "name='SLIM RX1 MUX' ZERO"
+		cset "name='RX7 MIX1 INP1' ZERO"
+		cset "name='RX7 Digital Volume' 0"
+		cset "name='SPK DRV Volume' 0"
+
+		# See comment in EnableSequence
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+	]
+
+	Value {
+		PlaybackChannels "2"
+		PlaybackPriority "150"
+	}
+}
+
+SectionDevice."Headphones" {
+	#Name "Headphones"
+	Comment "Headphones"
+
+	# FIXME
+	ConflictingDevice [
+		"Earpiece"
+		"Speaker"
+	]
+
+	EnableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		# We need to disable this while setting up the route, else the
+		# driver will hang if the stream is open.
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
+
+		cset "name='SLIM RX1 MUX' AIF1_PB"
+		cset "name='SLIM RX2 MUX' AIF1_PB"
+		cset "name='SLIM_0_RX Channels' Two"
+		cset "name='RX1 MIX1 INP1' RX1"
+		cset "name='RX2 MIX1 INP1' RX2"
+		cset "name='CLASS_H_DSM MUX' DSM_HPHL_RX1"
+		cset "name='HPHL DAC Switch' 1"
+		cset "name='HPHL Volume' 15"
+		cset "name='HPHR Volume' 15"
+		cset "name='RX1 Digital Volume' 83"
+		cset "name='RX2 Digital Volume' 83"
+
+
+
+		# Route has been set up, re-enable the mixer.
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+	]
+
+	DisableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		# See comment in EnableSequence
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
+
+		cset "name='SLIM RX1 MUX' ZERO"
+		cset "name='SLIM RX2 MUX' ZERO"
+		cset "name='RX1 MIX1 INP1' ZERO"
+		cset "name='RX2 MIX1 INP1' ZERO"
+		cset "name='CLASS_H_DSM MUX' ZERO"
+		cset "name='HPHL DAC Switch' 0"
+		cset "name='HPHL Volume' 0"
+		cset "name='HPHR Volume' 0"
+		cset "name='RX1 Digital Volume' 0"
+		cset "name='RX2 Digital Volume' 0"
+
+		# See comment in EnableSequence
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+	]
+
+	Value {
+		PlaybackChannels "2"
+	}
+}
+
+SectionDevice."Headset" {
+	#Name "Headset"
+	Comment "Headset Microphone"
+
+	ConflictingDevice [
+		"Handset"
+	]
+
+	EnableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		cset "name='MultiMedia1 Mixer SLIM_0_TX' 0"
+		cset "name='AIF1_CAP Mixer SLIM TX7' 1"		
+		cset "name='SLIM_0_TX Channels' One"
+		cset "name='SLIM TX7 MUX' DEC5"
+		cset "name='DEC5 MUX' ADC2"
+		cset "name='DEC5 Volume' 84"
+		cset "name='ADC2 Volume' 16"
+		cset "name='IIR1 INP1 MUX' DEC5"
+		cset "name='MultiMedia1 Mixer SLIM_0_TX' 1"
+	]
+
+	DisableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		cset "name='MultiMedia1 Mixer SLIM_0_TX' 0"
+		cset "name='AIF1_CAP Mixer SLIM TX7' 0"
+		cset "name='SLIM TX7 MUX' ZERO"
+		cset "name='DEC5 MUX' ZERO"
+		cset "name='ADC2 Volume' 0"
+		cset "name='DEC5 Volume' 0"
+		cset "name='IIR1 INP1 MUX' ZERO"
+	]
+
+	Value {
+		CaptureChannels "1"
+	}
+}
+
+SectionDevice."Handset" {
+	#Name "Handset"
+	Comment "Handset Microphone"
+
+	ConflictingDevice [
+		"Headset"
+	]
+
+	EnableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		cset "name='MultiMedia1 Mixer SLIM_0_TX' 0"
+		cset "name='AIF1_CAP Mixer SLIM TX7' 1"
+		cset "name='SLIM_0_TX Channels' One"
+		cset "name='SLIM TX7 MUX' DEC6"
+		cset "name='DEC6 MUX' ADC1"
+		cset "name='ADC1 Volume' 16"
+		cset "name='DEC6 Volume' 86"
+		cset "name='IIR1 INP1 MUX' DEC6"
+		cset "name='MultiMedia1 Mixer SLIM_0_TX' 1"
+	]
+
+	DisableSequence [
+		cdev "hw:msm8974taikomtp"
+
+		cset "name='MultiMedia1 Mixer SLIM_0_TX' 0"
+		cset "name='AIF1_CAP Mixer SLIM TX7' 0"
+		cset "name='SLIM TX7 MUX' ZERO"
+		cset "name='DEC6 MUX' ZERO"
+		cset "name='ADC1 Volume' 0"
+		cset "name='DEC6 Volume' 0"
+		cset "name='IIR1 INP1 MUX' ZERO"
+	]
+
+	Value {
+		CaptureChannels "1"
+	}
+}
Index: alsa-lib-1.1.2/src/conf/ucm/msm8974-taiko-mtp-snd-card/VoiceCall
===================================================================
--- /dev/null
+++ alsa-lib-1.1.2/src/conf/ucm/msm8974-taiko-mtp-snd-card/VoiceCall
@@ -0,0 +1,119 @@
+# There is no mixer setup here - it is handled by PulseAudio's audio HAL module.
+
+SectionVerb {
+	EnableSequence [
+		cdev "hw:msm8974taikomtp"
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+	]
+
+	DisableSequence [
+		cdev "hw:msm8974taikomtp"
+		cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
+	]
+
+	Value {
+		CapturePCM "hw:msm8974taikomtp,0"
+		PlaybackPCM "hw:msm8974taikomtp,0"
+	}
+}
+
+SectionDevice."Earpiece" {
+	#Name "Earpiece"
+	Comment "Earpiece speaker"
+
+	# FIXME
+	ConflictingDevice [
+		"Headphones"
+		"Speaker"
+	]
+
+	EnableSequence [
+	]
+
+	DisableSequence [
+	]
+
+	Value {
+		PlaybackChannels "2"
+	}
+}
+
+SectionDevice."Speaker" {
+	#Name "Speaker"
+	Comment "Main speaker"
+
+	# FIXME
+	ConflictingDevice [
+		"Earpiece"
+		"Headphones"
+	]
+
+	EnableSequence [
+	]
+
+	DisableSequence [
+	]
+
+	Value {
+		PlaybackChannels "2"
+	}
+}
+
+SectionDevice."Headphones" {
+	#Name "Headphones"
+	Comment "Headphones"
+
+	# FIXME
+	ConflictingDevice [
+		"Earpiece"
+		"Speaker"
+	]
+
+	EnableSequence [
+	]
+
+	DisableSequence [
+	]
+
+	Value {
+		PlaybackChannels "2"
+	}
+}
+
+SectionDevice."Headset" {
+	#Name "Headset"
+	Comment "Headset Microphone"
+
+	ConflictingDevice [
+		"Handset"
+	]
+
+	EnableSequence [
+	]
+
+	DisableSequence [
+	]
+
+	Value {
+		CaptureChannels "1"
+	}
+}
+
+SectionDevice."Handset" {
+	#Name "Handset"
+	Comment "Handset Microphone"
+
+	ConflictingDevice [
+		"Headset"
+	]
+
+	EnableSequence [
+	]
+
+	DisableSequence [
+	]
+
+	Value {
+		CaptureChannels "1"
+	}
+}
Index: alsa-lib-1.1.2/src/conf/ucm/msm8974-taiko-mtp-snd-card/msm8974-taiko-mtp-snd-card.conf
===================================================================
--- /dev/null
+++ alsa-lib-1.1.2/src/conf/ucm/msm8974-taiko-mtp-snd-card/msm8974-taiko-mtp-snd-card.conf
@@ -0,0 +1,8 @@
+SectionUseCase."HiFi" {
+	File "HiFi"
+	Comment "Play HiFi quality Music."
+}
+SectionUseCase."Voice Call" {
+	File "VoiceCall"
+	Comment "Make a phone call"
+}
Index: alsa-lib-1.1.2/configure.ac
===================================================================
--- alsa-lib-1.1.2.orig/configure.ac
+++ alsa-lib-1.1.2/configure.ac
@@ -682,6 +682,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pict
 	  src/conf/ucm/tegra-rt5640/Makefile \
 	  src/conf/ucm/Manta-I2S/Makefile \
 	  src/conf/ucm/Manta-SPDIF/Makefile \
+	  src/conf/ucm/msm8974-taiko-mtp-snd-card/Makefile \
 	  src/conf/topology/Makefile \
 	  src/conf/topology/broadwell/Makefile \
 	  modules/Makefile modules/mixer/Makefile modules/mixer/simple/Makefile \
Index: alsa-lib-1.1.2/src/conf/ucm/msm8974-taiko-mtp-snd-card/Makefile.am
===================================================================
--- /dev/null
+++ alsa-lib-1.1.2/src/conf/ucm/msm8974-taiko-mtp-snd-card/Makefile.am
@@ -0,0 +1,4 @@
+alsaconfigdir = @ALSA_CONFIG_DIR@
+ucmdir = $(alsaconfigdir)/ucm/msm8974-taiko-mtp-snd-card
+ucm_DATA = msm8974-taiko-mtp-snd-card.conf HiFi VoiceCall
+EXTRA_DIST = $(ucm_DATA)
Index: alsa-lib-1.1.2/src/conf/ucm/Makefile.am
===================================================================
--- alsa-lib-1.1.2.orig/src/conf/ucm/Makefile.am
+++ alsa-lib-1.1.2/src/conf/ucm/Makefile.am
@@ -1 +1 @@
-SUBDIRS=DAISY-I2S PandaBoard PandaBoardES SDP4430 tegraalc5632 PAZ00 GoogleNyan broadwell-rt286 skylake-rt286 VEYRON-I2S chtrt5645 DB410c apq8064-tabla-snd-card Tuna tegra-rt5640 Manta-I2S Manta-SPDIF
+SUBDIRS=DAISY-I2S PandaBoard PandaBoardES SDP4430 tegraalc5632 PAZ00 GoogleNyan broadwell-rt286 skylake-rt286 VEYRON-I2S chtrt5645 DB410c apq8064-tabla-snd-card Tuna tegra-rt5640 Manta-I2S Manta-SPDIF msm8974-taiko-mtp-snd-card
