aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf/machine/include/qcom-sdm845.inc4
-rw-r--r--recipes-kernel/linux/linux-linaro-qcomlt_5.2.bb2
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0001-conf-ucm-Add-ucm-files-for-DB820c-board.patch238
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0002-ucm-Add-ucm-files-for-DB845c-HDMI-audio.patch107
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0003-ucm-Add-ucm-files-for-DB845c-analog-audio.patch247
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0004-DB845c-fix-Defaults.patch134
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0005-WIP-make-card-name-explicit.patch235
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0006-DB845c-Add-headset-mixer-controls.patch152
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0007-Lenovo-YOGA-C630-13Q50-Add-ucm-for-Speaker-and-Heads.patch179
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0008-ucm-DB845c-update-volume-controls.patch55
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0009-ucm-DB845c-remove-headphones-for-now.patch137
-rw-r--r--recipes-multimedia/alsa/alsa-lib/0010-ucm-DB845c-adjust-default-volume-of-speakers.patch65
-rw-r--r--recipes-multimedia/alsa/alsa-lib_1.1.%.bbappend18
-rw-r--r--recipes-multimedia/pulseaudio/pulseaudio_%.bbappend3
-rw-r--r--recipes-support/pd-mapper/pd-mapper_git.bb26
-rw-r--r--recipes-support/tqftpserv/tqftpserv_git.bb26
16 files changed, 1626 insertions, 2 deletions
diff --git a/conf/machine/include/qcom-sdm845.inc b/conf/machine/include/qcom-sdm845.inc
index f58f19b..7f6a1c2 100644
--- a/conf/machine/include/qcom-sdm845.inc
+++ b/conf/machine/include/qcom-sdm845.inc
@@ -24,9 +24,11 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-linaro-qcomlt"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \
+ adsprpc \
+ pd-mapper \
qrtr \
rmtfs \
- adsprpc \
+ tqftpserv \
"
IMAGE_FSTYPES ?= "ext4.gz"
diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.2.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.2.bb
index e49a463..41d6fe0 100644
--- a/recipes-kernel/linux/linux-linaro-qcomlt_5.2.bb
+++ b/recipes-kernel/linux/linux-linaro-qcomlt_5.2.bb
@@ -11,7 +11,7 @@ require recipes-kernel/linux/linux-qcom-bootimg.inc
LOCALVERSION ?= "-linaro-lt-qcom"
SRCBRANCH ?= "release/db845c/qcomlt-5.2"
-SRCREV ?= "b062b8936709168c9159849e83bfd2f60d95afd6"
+SRCREV ?= "13e8268d9b5cf3980b6e2766bf00439001c363fd"
COMPATIBLE_MACHINE = "(sdm845)"
diff --git a/recipes-multimedia/alsa/alsa-lib/0001-conf-ucm-Add-ucm-files-for-DB820c-board.patch b/recipes-multimedia/alsa/alsa-lib/0001-conf-ucm-Add-ucm-files-for-DB820c-board.patch
new file mode 100644
index 0000000..6fe8b19
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0001-conf-ucm-Add-ucm-files-for-DB820c-board.patch
@@ -0,0 +1,238 @@
+From 3f8f1126d551b0ab6dedf9247d5c80c7b5f0ebec Mon Sep 17 00:00:00 2001
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Date: Fri, 28 Apr 2017 12:32:59 +0100
+Subject: [PATCH 1/9] conf/ucm: Add ucm files for DB820c board
+
+DB820c board is based of MSM8996 Qualcomm SoC, which has support for both
+Digital and Analog audio. Digital audio is over HDMI and analog is over
+WCD9335 codec via SLIMbus.
+
+Board itself has HDMI port, a 3.5mm audio Jack and an Audio expansion
+connector.
+This patch adds ucm support for HDMI port and 3.5mm jack.
+
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+---
+ configure.ac | 1 +
+ src/conf/ucm/DB820c/DB820c.conf | 9 +++
+ src/conf/ucm/DB820c/HDMI | 37 +++++++++++
+ src/conf/ucm/DB820c/HiFi | 110 ++++++++++++++++++++++++++++++++
+ src/conf/ucm/DB820c/Makefile.am | 4 ++
+ src/conf/ucm/Makefile.am | 1 +
+ 6 files changed, 162 insertions(+)
+ create mode 100644 src/conf/ucm/DB820c/DB820c.conf
+ create mode 100644 src/conf/ucm/DB820c/HDMI
+ create mode 100644 src/conf/ucm/DB820c/HiFi
+ create mode 100644 src/conf/ucm/DB820c/Makefile.am
+
+diff --git a/configure.ac b/configure.ac
+index a0c346ef..e9e1a369 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -747,6 +747,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \
+ src/conf/ucm/cube-i1_TF-Defaultstring-CherryTrailCR/Makefile \
+ src/conf/ucm/DAISY-I2S/Makefile \
+ src/conf/ucm/DB410c/Makefile \
++ src/conf/ucm/DB820c/Makefile \
+ src/conf/ucm/Dell-WD15-Dock/Makefile \
+ src/conf/ucm/GoogleNyan/Makefile \
+ src/conf/ucm/gpd-win-pocket-rt5645/Makefile \
+diff --git a/src/conf/ucm/DB820c/DB820c.conf b/src/conf/ucm/DB820c/DB820c.conf
+new file mode 100644
+index 00000000..58b7ff4e
+--- /dev/null
++++ b/src/conf/ucm/DB820c/DB820c.conf
+@@ -0,0 +1,9 @@
++SectionUseCase."HiFi" {
++ File "HiFi"
++ Comment "HiFi quality Music."
++}
++
++SectionUseCase."HDMI" {
++ File "HDMI"
++ Comment "HDMI output."
++}
+diff --git a/src/conf/ucm/DB820c/HDMI b/src/conf/ucm/DB820c/HDMI
+new file mode 100644
+index 00000000..39b28692
+--- /dev/null
++++ b/src/conf/ucm/DB820c/HDMI
+@@ -0,0 +1,37 @@
++# Use case configuration for DB820c board.
++# Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
++
++SectionVerb {
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='HDMI Mixer MultiMedia1' 1"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='HDMI Mixer MultiMedia1' 0"
++ ]
++ Value {
++ TQ "HiFi"
++ PlaybackPCM "plughw:0,0"
++ }
++}
++
++SectionDevice."HDMI-stereo" {
++ #Name "HDMI-stereo"
++ Comment "HDMI Digital Stereo Output"
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='HDMI Mixer MultiMedia1' 1"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='HDMI Mixer MultiMedia1' 0"
++ ]
++
++ Value {
++ PlaybackChannels "2"
++ }
++}
+diff --git a/src/conf/ucm/DB820c/HiFi b/src/conf/ucm/DB820c/HiFi
+new file mode 100644
+index 00000000..4457329f
+--- /dev/null
++++ b/src/conf/ucm/DB820c/HiFi
+@@ -0,0 +1,110 @@
++# Use case configuration for DB820c board.
++# Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
++
++SectionVerb {
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='SLIM RX0 MUX' ZERO"
++ cset "name='SLIM RX1 MUX' ZERO"
++ cset "name='SLIM RX2 MUX' ZERO"
++ cset "name='SLIM RX3 MUX' ZERO"
++ cset "name='SLIM RX4 MUX' ZERO"
++ cset "name='SLIM RX5 MUX' AIF4_PB"
++ cset "name='SLIM RX6 MUX' AIF4_PB"
++ cset "name='SLIM RX7 MUX' ZERO"
++ cset "name='RX INT1_2 MUX' RX5"
++ cset "name='RX INT2_2 MUX' RX6"
++ ## gain to 0dB
++ cset "name='RX5 Digital Volume' 68"
++ ## gain to 0dB
++ cset "name='RX6 Digital Volume' 68"
++ cset "name='SLIMBUS_6_RX Audio Mixer MultiMedia2' 1"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
++ cset "name='RX INT1 DEM MUX' CLSH_DSM_OUT"
++ cset "name='RX INT2 DEM MUX' CLSH_DSM_OUT"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
++ cset "name='SLIM TX0 MUX' DEC0"
++ cset "name='ADC2 Volume' 12"
++ cset "name='ADC MUX0' AMIC"
++ cset "name='AMIC MUX0' ADC2"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='SLIMBUS_6_RX Audio Mixer MultiMedia2' 0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
++ ]
++
++ # ALSA PCM
++ Value {
++ # ALSA PCM device for HiFi
++ PlaybackPCM "plughw:0,1"
++ CapturePCM "plughw:0,2"
++ }
++}
++
++SectionDevice."Headphones" {
++ Comment "Headphones playback"
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='SLIM RX0 MUX' ZERO"
++ cset "name='SLIM RX1 MUX' ZERO"
++ cset "name='SLIM RX2 MUX' ZERO"
++ cset "name='SLIM RX3 MUX' ZERO"
++ cset "name='SLIM RX4 MUX' ZERO"
++ cset "name='SLIM RX5 MUX' AIF4_PB"
++ cset "name='SLIM RX6 MUX' AIF4_PB"
++ cset "name='SLIM RX7 MUX' ZERO"
++ cset "name='RX INT1_2 MUX' RX5"
++ cset "name='RX INT2_2 MUX' RX6"
++ ## gain to 0dB
++ cset "name='RX5 Digital Volume' 68"
++ ## gain to 0dB
++ cset "name='RX6 Digital Volume' 68"
++ cset "name='SLIMBUS_6_RX Audio Mixer MultiMedia2' 1"
++ cset "name='RX INT1 DEM MUX' CLSH_DSM_OUT"
++ cset "name='RX INT2 DEM MUX' CLSH_DSM_OUT"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='RX5 Digital Volume' 0"
++ cset "name='RX6 Digital Volume' 0"
++ cset "name='SLIM RX5 MUX' ZERO"
++ cset "name='SLIM RX6 MUX' ZERO"
++ cset "name='SLIMBUS_6_RX Audio Mixer MultiMedia2' 0"
++ ]
++
++ Value {
++ PlaybackChannels "2"
++ }
++}
++
++SectionDevice."Handset" {
++ Comment "Headset Microphone"
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
++ cset "name='SLIM TX0 MUX' DEC0"
++ cset "name='ADC2 Volume' 12"
++ cset "name='ADC MUX0' AMIC"
++ cset "name='AMIC MUX0' ADC2"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 0"
++ cset "name='AMIC MUX0' ZERO"
++ cset "name='SLIM TX0 MUX' ZERO"
++ cset "name='ADC2 Volume' 0"
++ ]
++
++ Value {
++ CaptureChannels "1"
++ }
++}
+diff --git a/src/conf/ucm/DB820c/Makefile.am b/src/conf/ucm/DB820c/Makefile.am
+new file mode 100644
+index 00000000..16e985e5
+--- /dev/null
++++ b/src/conf/ucm/DB820c/Makefile.am
+@@ -0,0 +1,4 @@
++alsaconfigdir = @ALSA_CONFIG_DIR@
++ucmdir = $(alsaconfigdir)/ucm/DB820c
++ucm_DATA = DB820c.conf HDMI HiFi
++EXTRA_DIST = $(ucm_DATA)
+diff --git a/src/conf/ucm/Makefile.am b/src/conf/ucm/Makefile.am
+index ee850ee6..e9f88ed6 100644
+--- a/src/conf/ucm/Makefile.am
++++ b/src/conf/ucm/Makefile.am
+@@ -31,6 +31,7 @@ chtrt5650 \
+ cube-i1_TF-Defaultstring-CherryTrailCR \
+ DAISY-I2S \
+ DB410c \
++DB820c \
+ Dell-WD15-Dock \
+ GoogleNyan \
+ gpd-win-pocket-rt5645 \
+--
+2.23.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib/0002-ucm-Add-ucm-files-for-DB845c-HDMI-audio.patch b/recipes-multimedia/alsa/alsa-lib/0002-ucm-Add-ucm-files-for-DB845c-HDMI-audio.patch
new file mode 100644
index 0000000..c7dc3f5
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0002-ucm-Add-ucm-files-for-DB845c-HDMI-audio.patch
@@ -0,0 +1,107 @@
+From 294653f6c664ac20a9b96afc736c1aeca1ce079b Mon Sep 17 00:00:00 2001
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Date: Wed, 17 Apr 2019 15:20:27 +0100
+Subject: [PATCH 2/9] ucm: Add: ucm files for DB845c HDMI audio
+
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+---
+ configure.ac | 1 +
+ src/conf/ucm/DB845c/DB845c.conf | 4 ++++
+ src/conf/ucm/DB845c/HDMI | 37 +++++++++++++++++++++++++++++++++
+ src/conf/ucm/DB845c/Makefile.am | 4 ++++
+ src/conf/ucm/Makefile.am | 1 +
+ 5 files changed, 47 insertions(+)
+ create mode 100644 src/conf/ucm/DB845c/DB845c.conf
+ create mode 100644 src/conf/ucm/DB845c/HDMI
+ create mode 100644 src/conf/ucm/DB845c/Makefile.am
+
+diff --git a/configure.ac b/configure.ac
+index e9e1a369..382d7fb1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -748,6 +748,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \
+ src/conf/ucm/DAISY-I2S/Makefile \
+ src/conf/ucm/DB410c/Makefile \
+ src/conf/ucm/DB820c/Makefile \
++ src/conf/ucm/DB845c/Makefile \
+ src/conf/ucm/Dell-WD15-Dock/Makefile \
+ src/conf/ucm/GoogleNyan/Makefile \
+ src/conf/ucm/gpd-win-pocket-rt5645/Makefile \
+diff --git a/src/conf/ucm/DB845c/DB845c.conf b/src/conf/ucm/DB845c/DB845c.conf
+new file mode 100644
+index 00000000..49c688e5
+--- /dev/null
++++ b/src/conf/ucm/DB845c/DB845c.conf
+@@ -0,0 +1,4 @@
++SectionUseCase."HDMI" {
++ File "HDMI"
++ Comment "HDMI output."
++}
+diff --git a/src/conf/ucm/DB845c/HDMI b/src/conf/ucm/DB845c/HDMI
+new file mode 100644
+index 00000000..fdac94e5
+--- /dev/null
++++ b/src/conf/ucm/DB845c/HDMI
+@@ -0,0 +1,37 @@
++# Use case configuration for DB845c board.
++# Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
++
++SectionVerb {
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 0"
++ ]
++ Value {
++ TQ "HiFi"
++ PlaybackPCM "plughw:0,0"
++ }
++}
++
++SectionDevice."HDMI-stereo" {
++ #Name "HDMI-stereo"
++ Comment "HDMI Digital Stereo Output"
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 0"
++ ]
++
++ Value {
++ PlaybackChannels "2"
++ }
++}
+diff --git a/src/conf/ucm/DB845c/Makefile.am b/src/conf/ucm/DB845c/Makefile.am
+new file mode 100644
+index 00000000..34b28d86
+--- /dev/null
++++ b/src/conf/ucm/DB845c/Makefile.am
+@@ -0,0 +1,4 @@
++alsaconfigdir = @ALSA_CONFIG_DIR@
++ucmdir = $(alsaconfigdir)/ucm/DB845c
++ucm_DATA = DB845c.conf HDMI
++EXTRA_DIST = $(ucm_DATA)
+diff --git a/src/conf/ucm/Makefile.am b/src/conf/ucm/Makefile.am
+index e9f88ed6..46d246ea 100644
+--- a/src/conf/ucm/Makefile.am
++++ b/src/conf/ucm/Makefile.am
+@@ -32,6 +32,7 @@ cube-i1_TF-Defaultstring-CherryTrailCR \
+ DAISY-I2S \
+ DB410c \
+ DB820c \
++DB845c \
+ Dell-WD15-Dock \
+ GoogleNyan \
+ gpd-win-pocket-rt5645 \
+--
+2.23.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib/0003-ucm-Add-ucm-files-for-DB845c-analog-audio.patch b/recipes-multimedia/alsa/alsa-lib/0003-ucm-Add-ucm-files-for-DB845c-analog-audio.patch
new file mode 100644
index 0000000..b57b9c4
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0003-ucm-Add-ucm-files-for-DB845c-analog-audio.patch
@@ -0,0 +1,247 @@
+From c6df679f67d74e6a086b9399846fe7d5172e1e54 Mon Sep 17 00:00:00 2001
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Date: Thu, 4 Jul 2019 09:57:24 +0100
+Subject: [PATCH 3/9] ucm: Add: ucm files for DB845c analog audio
+
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+---
+ src/conf/ucm/DB845c/DB845c.conf | 5 +
+ src/conf/ucm/DB845c/HiFi | 202 ++++++++++++++++++++++++++++++++
+ src/conf/ucm/DB845c/Makefile.am | 2 +-
+ 3 files changed, 208 insertions(+), 1 deletion(-)
+ create mode 100644 src/conf/ucm/DB845c/HiFi
+
+diff --git a/src/conf/ucm/DB845c/DB845c.conf b/src/conf/ucm/DB845c/DB845c.conf
+index 49c688e5..58b7ff4e 100644
+--- a/src/conf/ucm/DB845c/DB845c.conf
++++ b/src/conf/ucm/DB845c/DB845c.conf
+@@ -1,3 +1,8 @@
++SectionUseCase."HiFi" {
++ File "HiFi"
++ Comment "HiFi quality Music."
++}
++
+ SectionUseCase."HDMI" {
+ File "HDMI"
+ Comment "HDMI output."
+diff --git a/src/conf/ucm/DB845c/HiFi b/src/conf/ucm/DB845c/HiFi
+new file mode 100644
+index 00000000..36df8c1f
+--- /dev/null
++++ b/src/conf/ucm/DB845c/HiFi
+@@ -0,0 +1,202 @@
++# Use case configuration for DB845c board.
++# Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
++
++SectionVerb {
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='SLIM RX0 MUX' AIF1_PB"
++ cset "name='SLIM RX1 MUX' ZERO"
++ cset "name='SLIM RX2 MUX' ZERO"
++ cset "name='SLIM RX3 MUX' ZERO"
++ cset "name='SLIM RX4 MUX' ZERO"
++ cset "name='SLIM RX5 MUX' ZERO"
++ cset "name='SLIM RX6 MUX' ZERO"
++ cset "name='SLIM RX7 MUX' ZERO"
++ cset "name='RX INT7_1 MIX1 INP0' RX0"
++ cset "name='RX INT8_1 MIX1 INP0' RX0"
++ ## gain to 0dB
++ cset "name='RX0 Digital Volume' 68"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
++ cset "name='CDC_IF TX0 MUX' DEC0"
++ cset "name='ADC MUX0' DMIC"
++ cset "name='DMIC MUX0' DMIC0"
++ cset "name='DEC0 Volume' 68"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
++ ]
++
++ # ALSA PCM
++ Value {
++ # ALSA PCM device for HiFi
++ PlaybackPCM "plughw:0,1"
++ CapturePCM "plughw:0,2"
++ }
++}
++
++SectionDevice."Speakers" {
++ Comment "Speakers playback"
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='SLIM RX0 MUX' AIF1_PB"
++ cset "name='SLIM RX1 MUX' ZERO"
++ cset "name='SLIM RX2 MUX' ZERO"
++ cset "name='SLIM RX3 MUX' ZERO"
++ cset "name='SLIM RX4 MUX' ZERO"
++ cset "name='SLIM RX5 MUX' ZERO"
++ cset "name='SLIM RX6 MUX' ZERO"
++ cset "name='SLIM RX7 MUX' ZERO"
++ cset "name='RX INT7_1 MIX1 INP0' RX0"
++ cset "name='RX INT8_1 MIX1 INP0' RX0"
++ ## gain to 0dB
++ cset "name='RX0 Digital Volume' 68"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
++ cset "name='COMP7 Switch' 1"
++ cset "name='COMP8 Switch' 1"
++ ## Speakers
++ cset "name='SpkrLeft COMP Switch' 1"
++ cset "name='SpkrLeft BOOST Switch' 1"
++ cset "name='SpkrLeft VISENSE Switch' 1"
++ cset "name='SpkrRight COMP Switch' 1"
++ cset "name='SpkrRight BOOST Switch' 1"
++ cset "name='SpkrRight VISENSE Switch' 1"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='RX0 Digital Volume' 0"
++ cset "name='SLIM RX0 MUX' ZERO"
++ cset "name='COMP7 Switch' 0"
++ cset "name='COMP8 Switch' 0"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 0"
++ cset "name='SpkrLeft COMP Switch' 0"
++ cset "name='SpkrLeft BOOST Switch' 0"
++ cset "name='SpkrLeft VISENSE Switch' 0"
++ cset "name='SpkrRight COMP Switch' 0"
++ cset "name='SpkrRight BOOST Switch' 0"
++ cset "name='SpkrRight VISENSE Switch' 0"
++ ]
++
++ Value {
++ PlaybackChannels "2"
++ }
++}
++
++SectionDevice."DMIC0" {
++ Comment "Digital Microphone0"
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
++ cset "name='CDC_IF TX0 MUX' DEC0"
++ cset "name='ADC MUX0' DMIC"
++ cset "name='DMIC MUX0' DMIC0"
++ cset "name='DEC0 Volume' 68"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 0"
++ cset "name='CDC_IF TX0 MUX' ZERO"
++ cset "name='ADC MUX0' ZERO"
++ cset "name='DMIC MUX0' ZERO"
++ cset "name='DEC0 Volume' 0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
++ ]
++
++ Value {
++ CaptureChannels "1"
++ }
++}
++
++SectionDevice."DMIC1" {
++ Comment "Digital Microphone1"
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
++ cset "name='CDC_IF TX0 MUX' DEC0"
++ cset "name='ADC MUX0' DMIC"
++ cset "name='DMIC MUX0' DMIC1"
++ cset "name='DEC0 Volume' 68"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 0"
++ cset "name='CDC_IF TX0 MUX' ZERO"
++ cset "name='ADC MUX0' ZERO"
++ cset "name='DMIC MUX0' ZERO"
++ cset "name='DEC0 Volume' 0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
++ ]
++
++ Value {
++ CaptureChannels "1"
++ }
++}
++
++SectionDevice."DMIC2" {
++ Comment "Digital Microphone0"
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
++ cset "name='CDC_IF TX0 MUX' DEC0"
++ cset "name='ADC MUX0' DMIC"
++ cset "name='DMIC MUX0' DMIC2"
++ cset "name='DEC0 Volume' 68"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 0"
++ cset "name='CDC_IF TX0 MUX' ZERO"
++ cset "name='ADC MUX0' ZERO"
++ cset "name='DMIC MUX0' ZERO"
++ cset "name='DEC0 Volume' 0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
++ ]
++
++ Value {
++ CaptureChannels "1"
++ }
++}
++
++SectionDevice."DMIC4" {
++ Comment "Digital Microphone0"
++
++ EnableSequence [
++ cdev "hw:0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
++ cset "name='CDC_IF TX0 MUX' DEC0"
++ cset "name='ADC MUX0' DMIC"
++ cset "name='DMIC MUX0' DMIC3"
++ cset "name='DEC0 Volume' 68"
++ ]
++
++ DisableSequence [
++ cdev "hw:0"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 0"
++ cset "name='CDC_IF TX0 MUX' ZERO"
++ cset "name='ADC MUX0' ZERO"
++ cset "name='DMIC MUX0' ZERO"
++ cset "name='DEC0 Volume' 0"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
++ ]
++
++ Value {
++ CaptureChannels "1"
++ }
++}
+diff --git a/src/conf/ucm/DB845c/Makefile.am b/src/conf/ucm/DB845c/Makefile.am
+index 34b28d86..f80ab889 100644
+--- a/src/conf/ucm/DB845c/Makefile.am
++++ b/src/conf/ucm/DB845c/Makefile.am
+@@ -1,4 +1,4 @@
+ alsaconfigdir = @ALSA_CONFIG_DIR@
+ ucmdir = $(alsaconfigdir)/ucm/DB845c
+-ucm_DATA = DB845c.conf HDMI
++ucm_DATA = DB845c.conf HDMI HiFi
+ EXTRA_DIST = $(ucm_DATA)
+--
+2.23.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib/0004-DB845c-fix-Defaults.patch b/recipes-multimedia/alsa/alsa-lib/0004-DB845c-fix-Defaults.patch
new file mode 100644
index 0000000..ffee642
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0004-DB845c-fix-Defaults.patch
@@ -0,0 +1,134 @@
+From 3c908d2df1d12ce370020bb8b39ac5b70deaaf78 Mon Sep 17 00:00:00 2001
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Date: Thu, 19 Sep 2019 12:30:35 +0100
+Subject: [PATCH 4/9] DB845c: fix Defaults
+
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+---
+ src/conf/ucm/DB845c/DB845c.conf | 19 +++++++++++++++++++
+ src/conf/ucm/DB845c/HDMI | 22 +++++++++++-----------
+ src/conf/ucm/DB845c/HiFi | 20 ++++----------------
+ 3 files changed, 34 insertions(+), 27 deletions(-)
+
+diff --git a/src/conf/ucm/DB845c/DB845c.conf b/src/conf/ucm/DB845c/DB845c.conf
+index 58b7ff4e..c4f958e0 100644
+--- a/src/conf/ucm/DB845c/DB845c.conf
++++ b/src/conf/ucm/DB845c/DB845c.conf
+@@ -7,3 +7,22 @@ SectionUseCase."HDMI" {
+ File "HDMI"
+ Comment "HDMI output."
+ }
++
++SectionDefaults [
++ cdev "hw:0"
++ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
++ cset "name='SLIM RX0 MUX' AIF1_PB"
++ cset "name='CDC_IF RX0 MUX' SLIM RX0"
++ cset "name='RX INT7_1 MIX1 INP0' RX0"
++ cset "name='RX INT8_1 MIX1 INP0' RX0"
++ ## gain to 0dB
++ cset "name='RX0 Digital Volume' 68"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
++ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
++ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
++ cset "name='CDC_IF TX0 MUX' DEC0"
++ cset "name='ADC MUX0' DMIC"
++ cset "name='DMIC MUX0' DMIC0"
++ cset "name='DEC0 Volume' 68"
++]
+diff --git a/src/conf/ucm/DB845c/HDMI b/src/conf/ucm/DB845c/HDMI
+index fdac94e5..8354033d 100644
+--- a/src/conf/ucm/DB845c/HDMI
++++ b/src/conf/ucm/DB845c/HDMI
+@@ -3,17 +3,17 @@
+
+ SectionVerb {
+ EnableSequence [
+- cdev "hw:0"
+- cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
++ cdev "hw:0"
++ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
+ ]
+
+ DisableSequence [
+- cdev "hw:0"
+- cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 0"
+- ]
+- Value {
++ cdev "hw:0"
++ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 0"
++ ]
++ Value {
+ TQ "HiFi"
+- PlaybackPCM "plughw:0,0"
++ PlaybackPCM "hw:0,0"
+ }
+ }
+
+@@ -22,13 +22,13 @@ SectionDevice."HDMI-stereo" {
+ Comment "HDMI Digital Stereo Output"
+
+ EnableSequence [
+- cdev "hw:0"
+- cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
++ cdev "hw:0"
++ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
+ ]
+
+ DisableSequence [
+- cdev "hw:0"
+- cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 0"
++ cdev "hw:0"
++ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 0"
+ ]
+
+ Value {
+diff --git a/src/conf/ucm/DB845c/HiFi b/src/conf/ucm/DB845c/HiFi
+index 36df8c1f..e8ede5b3 100644
+--- a/src/conf/ucm/DB845c/HiFi
++++ b/src/conf/ucm/DB845c/HiFi
+@@ -6,13 +6,7 @@ SectionVerb {
+ EnableSequence [
+ cdev "hw:0"
+ cset "name='SLIM RX0 MUX' AIF1_PB"
+- cset "name='SLIM RX1 MUX' ZERO"
+- cset "name='SLIM RX2 MUX' ZERO"
+- cset "name='SLIM RX3 MUX' ZERO"
+- cset "name='SLIM RX4 MUX' ZERO"
+- cset "name='SLIM RX5 MUX' ZERO"
+- cset "name='SLIM RX6 MUX' ZERO"
+- cset "name='SLIM RX7 MUX' ZERO"
++ cset "name='CDC_IF RX0 MUX' SLIM RX0"
+ cset "name='RX INT7_1 MIX1 INP0' RX0"
+ cset "name='RX INT8_1 MIX1 INP0' RX0"
+ ## gain to 0dB
+@@ -35,8 +29,8 @@ SectionVerb {
+ # ALSA PCM
+ Value {
+ # ALSA PCM device for HiFi
+- PlaybackPCM "plughw:0,1"
+- CapturePCM "plughw:0,2"
++ PlaybackPCM "hw:0,1"
++ CapturePCM "hw:0,2"
+ }
+ }
+
+@@ -46,13 +40,7 @@ SectionDevice."Speakers" {
+ EnableSequence [
+ cdev "hw:0"
+ cset "name='SLIM RX0 MUX' AIF1_PB"
+- cset "name='SLIM RX1 MUX' ZERO"
+- cset "name='SLIM RX2 MUX' ZERO"
+- cset "name='SLIM RX3 MUX' ZERO"
+- cset "name='SLIM RX4 MUX' ZERO"
+- cset "name='SLIM RX5 MUX' ZERO"
+- cset "name='SLIM RX6 MUX' ZERO"
+- cset "name='SLIM RX7 MUX' ZERO"
++ cset "name='CDC_IF RX0 MUX' SLIM RX0"
+ cset "name='RX INT7_1 MIX1 INP0' RX0"
+ cset "name='RX INT8_1 MIX1 INP0' RX0"
+ ## gain to 0dB
+--
+2.23.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib/0005-WIP-make-card-name-explicit.patch b/recipes-multimedia/alsa/alsa-lib/0005-WIP-make-card-name-explicit.patch
new file mode 100644
index 0000000..c19ce27
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0005-WIP-make-card-name-explicit.patch
@@ -0,0 +1,235 @@
+From 2b92828b0e8ff30cfe7cbd12db6e96c3860333d7 Mon Sep 17 00:00:00 2001
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Date: Fri, 20 Sep 2019 13:12:05 +0100
+Subject: [PATCH 5/9] WIP: make card name explicit
+
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+---
+ src/conf/ucm/DB845c/DB845c.conf | 2 +-
+ src/conf/ucm/DB845c/HDMI | 10 +--
+ src/conf/ucm/DB845c/HiFi | 124 ++------------------------------
+ 3 files changed, 12 insertions(+), 124 deletions(-)
+
+diff --git a/src/conf/ucm/DB845c/DB845c.conf b/src/conf/ucm/DB845c/DB845c.conf
+index c4f958e0..d3cf0b7d 100644
+--- a/src/conf/ucm/DB845c/DB845c.conf
++++ b/src/conf/ucm/DB845c/DB845c.conf
+@@ -9,7 +9,7 @@ SectionUseCase."HDMI" {
+ }
+
+ SectionDefaults [
+- cdev "hw:0"
++ cdev "hw:DB845c"
+ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
+ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
+ cset "name='SLIM RX0 MUX' AIF1_PB"
+diff --git a/src/conf/ucm/DB845c/HDMI b/src/conf/ucm/DB845c/HDMI
+index 8354033d..435e6d82 100644
+--- a/src/conf/ucm/DB845c/HDMI
++++ b/src/conf/ucm/DB845c/HDMI
+@@ -3,17 +3,17 @@
+
+ SectionVerb {
+ EnableSequence [
+- cdev "hw:0"
++ cdev "hw:DB845c"
+ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
+ ]
+
+ DisableSequence [
+- cdev "hw:0"
++ cdev "hw:DB845c"
+ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 0"
+ ]
+ Value {
+ TQ "HiFi"
+- PlaybackPCM "hw:0,0"
++ PlaybackPCM "hw:DB845c,0"
+ }
+ }
+
+@@ -22,12 +22,12 @@ SectionDevice."HDMI-stereo" {
+ Comment "HDMI Digital Stereo Output"
+
+ EnableSequence [
+- cdev "hw:0"
++ cdev "hw:DB845c"
+ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
+ ]
+
+ DisableSequence [
+- cdev "hw:0"
++ cdev "hw:DB845c"
+ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 0"
+ ]
+
+diff --git a/src/conf/ucm/DB845c/HiFi b/src/conf/ucm/DB845c/HiFi
+index e8ede5b3..f83213c8 100644
+--- a/src/conf/ucm/DB845c/HiFi
++++ b/src/conf/ucm/DB845c/HiFi
+@@ -4,7 +4,7 @@
+ SectionVerb {
+
+ EnableSequence [
+- cdev "hw:0"
++ cdev "hw:DB845c"
+ cset "name='SLIM RX0 MUX' AIF1_PB"
+ cset "name='CDC_IF RX0 MUX' SLIM RX0"
+ cset "name='RX INT7_1 MIX1 INP0' RX0"
+@@ -21,7 +21,7 @@ SectionVerb {
+ ]
+
+ DisableSequence [
+- cdev "hw:0"
++ cdev "hw:DB845c"
+ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 0"
+ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
+ ]
+@@ -29,8 +29,8 @@ SectionVerb {
+ # ALSA PCM
+ Value {
+ # ALSA PCM device for HiFi
+- PlaybackPCM "hw:0,1"
+- CapturePCM "hw:0,2"
++ PlaybackPCM "hw:DB845c,1"
++ CapturePCM "hw:DB845c,2"
+ }
+ }
+
+@@ -38,7 +38,7 @@ SectionDevice."Speakers" {
+ Comment "Speakers playback"
+
+ EnableSequence [
+- cdev "hw:0"
++ cdev "hw:DB845c"
+ cset "name='SLIM RX0 MUX' AIF1_PB"
+ cset "name='CDC_IF RX0 MUX' SLIM RX0"
+ cset "name='RX INT7_1 MIX1 INP0' RX0"
+@@ -58,7 +58,7 @@ SectionDevice."Speakers" {
+ ]
+
+ DisableSequence [
+- cdev "hw:0"
++ cdev "hw:DB845c"
+ cset "name='RX0 Digital Volume' 0"
+ cset "name='SLIM RX0 MUX' ZERO"
+ cset "name='COMP7 Switch' 0"
+@@ -76,115 +76,3 @@ SectionDevice."Speakers" {
+ PlaybackChannels "2"
+ }
+ }
+-
+-SectionDevice."DMIC0" {
+- Comment "Digital Microphone0"
+-
+- EnableSequence [
+- cdev "hw:0"
+- cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
+- cset "name='AIF1_CAP Mixer SLIM TX0' 1"
+- cset "name='CDC_IF TX0 MUX' DEC0"
+- cset "name='ADC MUX0' DMIC"
+- cset "name='DMIC MUX0' DMIC0"
+- cset "name='DEC0 Volume' 68"
+- ]
+-
+- DisableSequence [
+- cdev "hw:0"
+- cset "name='AIF1_CAP Mixer SLIM TX0' 0"
+- cset "name='CDC_IF TX0 MUX' ZERO"
+- cset "name='ADC MUX0' ZERO"
+- cset "name='DMIC MUX0' ZERO"
+- cset "name='DEC0 Volume' 0"
+- cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
+- ]
+-
+- Value {
+- CaptureChannels "1"
+- }
+-}
+-
+-SectionDevice."DMIC1" {
+- Comment "Digital Microphone1"
+-
+- EnableSequence [
+- cdev "hw:0"
+- cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
+- cset "name='AIF1_CAP Mixer SLIM TX0' 1"
+- cset "name='CDC_IF TX0 MUX' DEC0"
+- cset "name='ADC MUX0' DMIC"
+- cset "name='DMIC MUX0' DMIC1"
+- cset "name='DEC0 Volume' 68"
+- ]
+-
+- DisableSequence [
+- cdev "hw:0"
+- cset "name='AIF1_CAP Mixer SLIM TX0' 0"
+- cset "name='CDC_IF TX0 MUX' ZERO"
+- cset "name='ADC MUX0' ZERO"
+- cset "name='DMIC MUX0' ZERO"
+- cset "name='DEC0 Volume' 0"
+- cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
+- ]
+-
+- Value {
+- CaptureChannels "1"
+- }
+-}
+-
+-SectionDevice."DMIC2" {
+- Comment "Digital Microphone0"
+-
+- EnableSequence [
+- cdev "hw:0"
+- cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
+- cset "name='AIF1_CAP Mixer SLIM TX0' 1"
+- cset "name='CDC_IF TX0 MUX' DEC0"
+- cset "name='ADC MUX0' DMIC"
+- cset "name='DMIC MUX0' DMIC2"
+- cset "name='DEC0 Volume' 68"
+- ]
+-
+- DisableSequence [
+- cdev "hw:0"
+- cset "name='AIF1_CAP Mixer SLIM TX0' 0"
+- cset "name='CDC_IF TX0 MUX' ZERO"
+- cset "name='ADC MUX0' ZERO"
+- cset "name='DMIC MUX0' ZERO"
+- cset "name='DEC0 Volume' 0"
+- cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
+- ]
+-
+- Value {
+- CaptureChannels "1"
+- }
+-}
+-
+-SectionDevice."DMIC4" {
+- Comment "Digital Microphone0"
+-
+- EnableSequence [
+- cdev "hw:0"
+- cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
+- cset "name='AIF1_CAP Mixer SLIM TX0' 1"
+- cset "name='CDC_IF TX0 MUX' DEC0"
+- cset "name='ADC MUX0' DMIC"
+- cset "name='DMIC MUX0' DMIC3"
+- cset "name='DEC0 Volume' 68"
+- ]
+-
+- DisableSequence [
+- cdev "hw:0"
+- cset "name='AIF1_CAP Mixer SLIM TX0' 0"
+- cset "name='CDC_IF TX0 MUX' ZERO"
+- cset "name='ADC MUX0' ZERO"
+- cset "name='DMIC MUX0' ZERO"
+- cset "name='DEC0 Volume' 0"
+- cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
+- ]
+-
+- Value {
+- CaptureChannels "1"
+- }
+-}
+--
+2.23.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib/0006-DB845c-Add-headset-mixer-controls.patch b/recipes-multimedia/alsa/alsa-lib/0006-DB845c-Add-headset-mixer-controls.patch
new file mode 100644
index 0000000..fe0a375
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0006-DB845c-Add-headset-mixer-controls.patch
@@ -0,0 +1,152 @@
+From 95da046a766a82ac2a44a2ff7746adb0621aa693 Mon Sep 17 00:00:00 2001
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Date: Fri, 18 Oct 2019 00:33:02 +0100
+Subject: [PATCH 6/9] DB845c: Add headset mixer controls
+
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+---
+ src/conf/ucm/DB845c/HiFi | 91 +++++++++++++++++++++++++++-------------
+ 1 file changed, 63 insertions(+), 28 deletions(-)
+
+diff --git a/src/conf/ucm/DB845c/HiFi b/src/conf/ucm/DB845c/HiFi
+index f83213c8..7efd93df 100644
+--- a/src/conf/ucm/DB845c/HiFi
++++ b/src/conf/ucm/DB845c/HiFi
+@@ -5,32 +5,23 @@ SectionVerb {
+
+ EnableSequence [
+ cdev "hw:DB845c"
+- cset "name='SLIM RX0 MUX' AIF1_PB"
+- cset "name='CDC_IF RX0 MUX' SLIM RX0"
+- cset "name='RX INT7_1 MIX1 INP0' RX0"
+- cset "name='RX INT8_1 MIX1 INP0' RX0"
++ cset "name='SLIM RX6 MUX' AIF1_PB"
++ cset "name='SLIM RX7 MUX' AIF1_PB"
++ cset "name='RX INT7_1 MIX1 INP0' RX6"
++ cset "name='RX INT8_1 MIX1 INP0' RX7"
+ ## gain to 0dB
+- cset "name='RX0 Digital Volume' 68"
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
+- cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
+- cset "name='AIF1_CAP Mixer SLIM TX0' 1"
+- cset "name='CDC_IF TX0 MUX' DEC0"
+- cset "name='ADC MUX0' DMIC"
+- cset "name='DMIC MUX0' DMIC0"
+- cset "name='DEC0 Volume' 68"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+ ]
+
+ DisableSequence [
+ cdev "hw:DB845c"
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 0"
+- cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 0"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
+ ]
+
+ # ALSA PCM
+ Value {
+ # ALSA PCM device for HiFi
+- PlaybackPCM "hw:DB845c,1"
+- CapturePCM "hw:DB845c,2"
++ PlaybackPCM "hw:DB845c,0"
+ }
+ }
+
+@@ -39,34 +30,38 @@ SectionDevice."Speakers" {
+
+ EnableSequence [
+ cdev "hw:DB845c"
+- cset "name='SLIM RX0 MUX' AIF1_PB"
+- cset "name='CDC_IF RX0 MUX' SLIM RX0"
+- cset "name='RX INT7_1 MIX1 INP0' RX0"
+- cset "name='RX INT8_1 MIX1 INP0' RX0"
+- ## gain to 0dB
+- cset "name='RX0 Digital Volume' 68"
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
++ cset "name='SLIM RX6 MUX' AIF1_PB"
++ cset "name='SLIM RX7 MUX' AIF1_PB"
++ cset "name='SLIM RX1 MUX' ZERO"
++ cset "name='SLIM RX2 MUX' ZERO"
++ cset "name='RX INT7_1 MIX1 INP0' RX6"
++ cset "name='RX INT8_1 MIX1 INP0' RX7"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+ cset "name='COMP7 Switch' 1"
+ cset "name='COMP8 Switch' 1"
+ ## Speakers
+ cset "name='SpkrLeft COMP Switch' 1"
+ cset "name='SpkrLeft BOOST Switch' 1"
+- cset "name='SpkrLeft VISENSE Switch' 1"
++ cset "name='SpkrLeft DAC Switch' 1"
++ cset "name='SpkrLeft VISENSE Switch' 0"
+ cset "name='SpkrRight COMP Switch' 1"
+ cset "name='SpkrRight BOOST Switch' 1"
+- cset "name='SpkrRight VISENSE Switch' 1"
++ cset "name='SpkrRight DAC Switch' 1"
++ cset "name='SpkrRight VISENSE Switch' 0"
+ ]
+
+ DisableSequence [
+ cdev "hw:DB845c"
+- cset "name='RX0 Digital Volume' 0"
+- cset "name='SLIM RX0 MUX' ZERO"
++ cset "name='SLIM RX6 MUX' ZERO"
++ cset "name='SLIM RX7 MUX' ZERO"
+ cset "name='COMP7 Switch' 0"
+ cset "name='COMP8 Switch' 0"
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 0"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
++ cset "name='SpkrLeft DAC Switch' 0"
+ cset "name='SpkrLeft COMP Switch' 0"
+ cset "name='SpkrLeft BOOST Switch' 0"
+ cset "name='SpkrLeft VISENSE Switch' 0"
++ cset "name='SpkrRight DAC Switch' 0"
+ cset "name='SpkrRight COMP Switch' 0"
+ cset "name='SpkrRight BOOST Switch' 0"
+ cset "name='SpkrRight VISENSE Switch' 0"
+@@ -76,3 +71,43 @@ SectionDevice."Speakers" {
+ PlaybackChannels "2"
+ }
+ }
++
++SectionDevice."HeadPhones" {
++ Comment "HeadPhones playback"
++
++ EnableSequence [
++ cdev "hw:DB845c"
++ cset "name='SLIM RX1 MUX' AIF1_PB"
++ cset "name='SLIM RX2 MUX' AIF1_PB"
++ cset "name='SLIM RX7 MUX' ZERO"
++ cset "name='SLIM RX6 MUX' ZERO"
++ cset "name='RX INT1_2 MUX' RX1"
++ cset "name='RX INT2_2 MUX' RX2"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
++ cset "name='COMP1 Switch' 1"
++ cset "name='COMP2 Switch' 1"
++ cset "name='RX1 Digital Volume' 68"
++ cset "name='RX2 Digital Volume' 68"
++ cset "name='RX INT1 DEM MUX' CLSH_DSM_OUT"
++ cset "name='RX INT2 DEM MUX' CLSH_DSM_OUT"
++ ]
++
++ DisableSequence [
++ cdev "hw:DB845c"
++ cset "name='SLIM RX1 MUX' ZERO"
++ cset "name='SLIM RX2 MUX' ZERO"
++ cset "name='RX INT1_2 MUX' ZERO"
++ cset "name='RX INT2_2 MUX' ZERO"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
++ cset "name='COMP1 Switch' 0"
++ cset "name='COMP2 Switch' 0"
++ cset "name='RX1 Digital Volume' 68"
++ cset "name='RX2 Digital Volume' 68"
++ cset "name='RX INT1 DEM MUX' ZERO"
++ cset "name='RX INT2 DEM MUX' ZERO"
++ ]
++
++ Value {
++ PlaybackChannels "2"
++ }
++}
+--
+2.23.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib/0007-Lenovo-YOGA-C630-13Q50-Add-ucm-for-Speaker-and-Heads.patch b/recipes-multimedia/alsa/alsa-lib/0007-Lenovo-YOGA-C630-13Q50-Add-ucm-for-Speaker-and-Heads.patch
new file mode 100644
index 0000000..c24d4e6
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0007-Lenovo-YOGA-C630-13Q50-Add-ucm-for-Speaker-and-Heads.patch
@@ -0,0 +1,179 @@
+From 00b13011d51bd23dc37af5d006cd158cb808b4e1 Mon Sep 17 00:00:00 2001
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Date: Fri, 18 Oct 2019 00:37:29 +0100
+Subject: [PATCH 7/9] Lenovo-YOGA-C630-13Q50: Add ucm for Speaker and Headset
+
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+---
+ configure.ac | 1 +
+ src/conf/ucm/Lenovo-YOGA-C630-13Q50/HiFi | 113 ++++++++++++++++++
+ .../Lenovo-YOGA-C630-13Q50.conf | 13 ++
+ .../ucm/Lenovo-YOGA-C630-13Q50/Makefile.am | 4 +
+ 4 files changed, 131 insertions(+)
+ create mode 100644 src/conf/ucm/Lenovo-YOGA-C630-13Q50/HiFi
+ create mode 100644 src/conf/ucm/Lenovo-YOGA-C630-13Q50/Lenovo-YOGA-C630-13Q50.conf
+ create mode 100644 src/conf/ucm/Lenovo-YOGA-C630-13Q50/Makefile.am
+
+diff --git a/configure.ac b/configure.ac
+index 382d7fb1..88812aa6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -756,6 +756,7 @@ AC_OUTPUT(Makefile doc/Makefile doc/pictures/Makefile doc/doxygen.cfg \
+ src/conf/ucm/HDAudio-Lenovo-DualCodecs/Makefile \
+ src/conf/ucm/kblrt5660/Makefile \
+ src/conf/ucm/LENOVO-80XF-LenovoMIIX320_10ICR-LNVNB161216/Makefile \
++ src/conf/ucm/Lenovo-YOGA-C630-13Q50/Makefile \
+ src/conf/ucm/PandaBoard/Makefile \
+ src/conf/ucm/PandaBoardES/Makefile \
+ src/conf/ucm/PAZ00/Makefile \
+diff --git a/src/conf/ucm/Lenovo-YOGA-C630-13Q50/HiFi b/src/conf/ucm/Lenovo-YOGA-C630-13Q50/HiFi
+new file mode 100644
+index 00000000..b3ba8be0
+--- /dev/null
++++ b/src/conf/ucm/Lenovo-YOGA-C630-13Q50/HiFi
+@@ -0,0 +1,113 @@
++# Use case configuration for Lenovo-YOGA-C630-13Q50 board.
++# Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
++
++SectionVerb {
++
++ EnableSequence [
++ cdev "hw:Lenovo-YOGA-C630-13Q50"
++ cset "name='SLIM RX6 MUX' AIF1_PB"
++ cset "name='SLIM RX7 MUX' AIF1_PB"
++ cset "name='RX INT7_1 MIX1 INP0' RX6"
++ cset "name='RX INT8_1 MIX1 INP0' RX7"
++ ## gain to 0dB
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
++ ]
++
++ DisableSequence [
++ cdev "hw:Lenovo-YOGA-C630-13Q50"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
++ ]
++
++ # ALSA PCM
++ Value {
++ # ALSA PCM device for HiFi
++ PlaybackPCM "hw:Lenovo-YOGA-C630-13Q50,0"
++ }
++}
++
++SectionDevice."Speakers" {
++ Comment "Speakers playback"
++
++ EnableSequence [
++ cdev "hw:Lenovo-YOGA-C630-13Q50"
++ cset "name='SLIM RX6 MUX' AIF1_PB"
++ cset "name='SLIM RX7 MUX' AIF1_PB"
++ cset "name='SLIM RX1 MUX' ZERO"
++ cset "name='SLIM RX2 MUX' ZERO"
++ cset "name='RX INT7_1 MIX1 INP0' RX6"
++ cset "name='RX INT8_1 MIX1 INP0' RX7"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
++ cset "name='COMP7 Switch' 1"
++ cset "name='COMP8 Switch' 1"
++ ## Speakers
++ cset "name='SpkrLeft COMP Switch' 1"
++ cset "name='SpkrLeft BOOST Switch' 1"
++ cset "name='SpkrLeft DAC Switch' 1"
++ cset "name='SpkrLeft VISENSE Switch' 0"
++ cset "name='SpkrRight COMP Switch' 1"
++ cset "name='SpkrRight BOOST Switch' 1"
++ cset "name='SpkrRight DAC Switch' 1"
++ cset "name='SpkrRight VISENSE Switch' 0"
++ ]
++
++ DisableSequence [
++ cdev "hw:Lenovo-YOGA-C630-13Q50"
++ cset "name='SLIM RX6 MUX' ZERO"
++ cset "name='SLIM RX7 MUX' ZERO"
++ cset "name='COMP7 Switch' 0"
++ cset "name='COMP8 Switch' 0"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
++ cset "name='SpkrLeft DAC Switch' 0"
++ cset "name='SpkrLeft COMP Switch' 0"
++ cset "name='SpkrLeft BOOST Switch' 0"
++ cset "name='SpkrLeft VISENSE Switch' 0"
++ cset "name='SpkrRight DAC Switch' 0"
++ cset "name='SpkrRight COMP Switch' 0"
++ cset "name='SpkrRight BOOST Switch' 0"
++ cset "name='SpkrRight VISENSE Switch' 0"
++ ]
++
++ Value {
++ PlaybackChannels "2"
++ }
++}
++
++SectionDevice."HeadPhones" {
++ Comment "HeadPhones playback"
++
++ EnableSequence [
++ cdev "hw:Lenovo-YOGA-C630-13Q50"
++ cset "name='SLIM RX1 MUX' AIF1_PB"
++ cset "name='SLIM RX2 MUX' AIF1_PB"
++ cset "name='SLIM RX7 MUX' ZERO"
++ cset "name='SLIM RX6 MUX' ZERO"
++ cset "name='RX INT1_2 MUX' RX1"
++ cset "name='RX INT2_2 MUX' RX2"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
++ cset "name='COMP1 Switch' 1"
++ cset "name='COMP2 Switch' 1"
++ cset "name='RX1 Digital Volume' 68"
++ cset "name='RX2 Digital Volume' 68"
++ cset "name='RX INT1 DEM MUX' CLSH_DSM_OUT"
++ cset "name='RX INT2 DEM MUX' CLSH_DSM_OUT"
++ ]
++
++ DisableSequence [
++ cdev "hw:Lenovo-YOGA-C630-13Q50"
++ cset "name='SLIM RX1 MUX' ZERO"
++ cset "name='SLIM RX2 MUX' ZERO"
++ cset "name='RX INT1_2 MUX' ZERO"
++ cset "name='RX INT2_2 MUX' ZERO"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
++ cset "name='COMP1 Switch' 0"
++ cset "name='COMP2 Switch' 0"
++ cset "name='RX1 Digital Volume' 68"
++ cset "name='RX2 Digital Volume' 68"
++ cset "name='RX INT1 DEM MUX' ZERO"
++ cset "name='RX INT2 DEM MUX' ZERO"
++ ]
++
++ Value {
++ PlaybackChannels "2"
++ }
++}
+diff --git a/src/conf/ucm/Lenovo-YOGA-C630-13Q50/Lenovo-YOGA-C630-13Q50.conf b/src/conf/ucm/Lenovo-YOGA-C630-13Q50/Lenovo-YOGA-C630-13Q50.conf
+new file mode 100644
+index 00000000..dae84a1c
+--- /dev/null
++++ b/src/conf/ucm/Lenovo-YOGA-C630-13Q50/Lenovo-YOGA-C630-13Q50.conf
+@@ -0,0 +1,13 @@
++SectionUseCase."HiFi" {
++ File "HiFi"
++ Comment "HiFi quality Music."
++}
++
++SectionDefaults [
++ cdev "hw:Lenovo-YOGA-C630-13Q50"
++ cset "name='SLIM RX6 MUX' AIF1_PB"
++ cset "name='SLIM RX7 MUX' AIF1_PB"
++ cset "name='RX INT7_1 MIX1 INP0' RX6"
++ cset "name='RX INT8_1 MIX1 INP0' RX7"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
++]
+diff --git a/src/conf/ucm/Lenovo-YOGA-C630-13Q50/Makefile.am b/src/conf/ucm/Lenovo-YOGA-C630-13Q50/Makefile.am
+new file mode 100644
+index 00000000..05397651
+--- /dev/null
++++ b/src/conf/ucm/Lenovo-YOGA-C630-13Q50/Makefile.am
+@@ -0,0 +1,4 @@
++alsaconfigdir = @ALSA_CONFIG_DIR@
++ucmdir = $(alsaconfigdir)/ucm/Lenovo-YOGA-C630-13Q50
++ucm_DATA = Lenovo-YOGA-C630-13Q50.conf HiFi
++EXTRA_DIST = $(ucm_DATA)
+--
+2.23.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib/0008-ucm-DB845c-update-volume-controls.patch b/recipes-multimedia/alsa/alsa-lib/0008-ucm-DB845c-update-volume-controls.patch
new file mode 100644
index 0000000..b4448d3
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0008-ucm-DB845c-update-volume-controls.patch
@@ -0,0 +1,55 @@
+From a69b39cf6a5f32b7df17c34e27c2b3875f89e9ee Mon Sep 17 00:00:00 2001
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Date: Thu, 24 Oct 2019 14:13:30 +0100
+Subject: [PATCH 8/9] ucm: DB845c: update volume controls
+
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+---
+ src/conf/ucm/DB845c/DB845c.conf | 6 ++++--
+ src/conf/ucm/DB845c/HiFi | 6 ++++--
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/conf/ucm/DB845c/DB845c.conf b/src/conf/ucm/DB845c/DB845c.conf
+index d3cf0b7d..79efd81e 100644
+--- a/src/conf/ucm/DB845c/DB845c.conf
++++ b/src/conf/ucm/DB845c/DB845c.conf
+@@ -17,8 +17,10 @@ SectionDefaults [
+ cset "name='RX INT7_1 MIX1 INP0' RX0"
+ cset "name='RX INT8_1 MIX1 INP0' RX0"
+ ## gain to 0dB
+- cset "name='RX0 Digital Volume' 68"
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
++ cset "name='RX7 Digital Volume' 0"
++ cset "name='RX8 Digital Volume' 0"
++ cset "name='RX1 Mux Digital Volume' 0"
++ cset "name='RX2 Mux Digital Volume' 0"
+ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
+ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
+ cset "name='CDC_IF TX0 MUX' DEC0"
+diff --git a/src/conf/ucm/DB845c/HiFi b/src/conf/ucm/DB845c/HiFi
+index 7efd93df..6f57068a 100644
+--- a/src/conf/ucm/DB845c/HiFi
++++ b/src/conf/ucm/DB845c/HiFi
+@@ -39,6 +39,8 @@ SectionDevice."Speakers" {
+ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+ cset "name='COMP7 Switch' 1"
+ cset "name='COMP8 Switch' 1"
++ cset "name='RX7 Digital Volume' 70"
++ cset "name='RX8 Digital Volume' 70"
+ ## Speakers
+ cset "name='SpkrLeft COMP Switch' 1"
+ cset "name='SpkrLeft BOOST Switch' 1"
+@@ -86,8 +88,8 @@ SectionDevice."HeadPhones" {
+ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+ cset "name='COMP1 Switch' 1"
+ cset "name='COMP2 Switch' 1"
+- cset "name='RX1 Digital Volume' 68"
+- cset "name='RX2 Digital Volume' 68"
++ cset "name='RX1 Mix Digital Volume' 68"
++ cset "name='RX2 Mix Digital Volume' 68"
+ cset "name='RX INT1 DEM MUX' CLSH_DSM_OUT"
+ cset "name='RX INT2 DEM MUX' CLSH_DSM_OUT"
+ ]
+--
+2.23.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib/0009-ucm-DB845c-remove-headphones-for-now.patch b/recipes-multimedia/alsa/alsa-lib/0009-ucm-DB845c-remove-headphones-for-now.patch
new file mode 100644
index 0000000..09133dc
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0009-ucm-DB845c-remove-headphones-for-now.patch
@@ -0,0 +1,137 @@
+From 68ac97e02d62bd2881beb1f66bddcb3937a7fc8b Mon Sep 17 00:00:00 2001
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Date: Thu, 24 Oct 2019 18:10:38 +0100
+Subject: [PATCH 9/9] ucm: DB845c: remove headphones for now
+
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+---
+ gitcompile | 2 +-
+ src/conf/ucm/DB845c/DB845c.conf | 5 ++--
+ src/conf/ucm/DB845c/HiFi | 50 ++++-----------------------------
+ 3 files changed, 8 insertions(+), 49 deletions(-)
+
+diff --git a/gitcompile b/gitcompile
+index 2741db4c..e6f709de 100755
+--- a/gitcompile
++++ b/gitcompile
+@@ -75,7 +75,7 @@ autoheader
+ automake --foreign --copy --add-missing
+ touch depcomp # seems to be missing for old automake
+ autoconf
+-export CFLAGS='-O2 -Wall -W -Wunused-const-variable=0 -pipe -g'
++export CFLAGS='-O2 -Wall -W -pipe -g'
+ echo "CFLAGS=$CFLAGS"
+ echo "./configure $args"
+ ./configure $args || exit 1
+diff --git a/src/conf/ucm/DB845c/DB845c.conf b/src/conf/ucm/DB845c/DB845c.conf
+index 79efd81e..5765aacd 100644
+--- a/src/conf/ucm/DB845c/DB845c.conf
++++ b/src/conf/ucm/DB845c/DB845c.conf
+@@ -13,14 +13,13 @@ SectionDefaults [
+ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
+ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
+ cset "name='SLIM RX0 MUX' AIF1_PB"
+- cset "name='CDC_IF RX0 MUX' SLIM RX0"
+ cset "name='RX INT7_1 MIX1 INP0' RX0"
+ cset "name='RX INT8_1 MIX1 INP0' RX0"
+ ## gain to 0dB
+ cset "name='RX7 Digital Volume' 0"
+ cset "name='RX8 Digital Volume' 0"
+- cset "name='RX1 Mux Digital Volume' 0"
+- cset "name='RX2 Mux Digital Volume' 0"
++ cset "name='RX1 Mix Digital Volume' 0"
++ cset "name='RX2 Mix Digital Volume' 0"
+ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
+ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
+ cset "name='CDC_IF TX0 MUX' DEC0"
+diff --git a/src/conf/ucm/DB845c/HiFi b/src/conf/ucm/DB845c/HiFi
+index 6f57068a..a794523b 100644
+--- a/src/conf/ucm/DB845c/HiFi
++++ b/src/conf/ucm/DB845c/HiFi
+@@ -10,18 +10,18 @@ SectionVerb {
+ cset "name='RX INT7_1 MIX1 INP0' RX6"
+ cset "name='RX INT8_1 MIX1 INP0' RX7"
+ ## gain to 0dB
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
+ ]
+
+ DisableSequence [
+ cdev "hw:DB845c"
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 0"
+ ]
+
+ # ALSA PCM
+ Value {
+ # ALSA PCM device for HiFi
+- PlaybackPCM "hw:DB845c,0"
++ PlaybackPCM "hw:DB845c,1"
+ }
+ }
+
+@@ -36,7 +36,7 @@ SectionDevice."Speakers" {
+ cset "name='SLIM RX2 MUX' ZERO"
+ cset "name='RX INT7_1 MIX1 INP0' RX6"
+ cset "name='RX INT8_1 MIX1 INP0' RX7"
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
+ cset "name='COMP7 Switch' 1"
+ cset "name='COMP8 Switch' 1"
+ cset "name='RX7 Digital Volume' 70"
+@@ -58,7 +58,7 @@ SectionDevice."Speakers" {
+ cset "name='SLIM RX7 MUX' ZERO"
+ cset "name='COMP7 Switch' 0"
+ cset "name='COMP8 Switch' 0"
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
++ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 0"
+ cset "name='SpkrLeft DAC Switch' 0"
+ cset "name='SpkrLeft COMP Switch' 0"
+ cset "name='SpkrLeft BOOST Switch' 0"
+@@ -73,43 +73,3 @@ SectionDevice."Speakers" {
+ PlaybackChannels "2"
+ }
+ }
+-
+-SectionDevice."HeadPhones" {
+- Comment "HeadPhones playback"
+-
+- EnableSequence [
+- cdev "hw:DB845c"
+- cset "name='SLIM RX1 MUX' AIF1_PB"
+- cset "name='SLIM RX2 MUX' AIF1_PB"
+- cset "name='SLIM RX7 MUX' ZERO"
+- cset "name='SLIM RX6 MUX' ZERO"
+- cset "name='RX INT1_2 MUX' RX1"
+- cset "name='RX INT2_2 MUX' RX2"
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 1"
+- cset "name='COMP1 Switch' 1"
+- cset "name='COMP2 Switch' 1"
+- cset "name='RX1 Mix Digital Volume' 68"
+- cset "name='RX2 Mix Digital Volume' 68"
+- cset "name='RX INT1 DEM MUX' CLSH_DSM_OUT"
+- cset "name='RX INT2 DEM MUX' CLSH_DSM_OUT"
+- ]
+-
+- DisableSequence [
+- cdev "hw:DB845c"
+- cset "name='SLIM RX1 MUX' ZERO"
+- cset "name='SLIM RX2 MUX' ZERO"
+- cset "name='RX INT1_2 MUX' ZERO"
+- cset "name='RX INT2_2 MUX' ZERO"
+- cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia1' 0"
+- cset "name='COMP1 Switch' 0"
+- cset "name='COMP2 Switch' 0"
+- cset "name='RX1 Digital Volume' 68"
+- cset "name='RX2 Digital Volume' 68"
+- cset "name='RX INT1 DEM MUX' ZERO"
+- cset "name='RX INT2 DEM MUX' ZERO"
+- ]
+-
+- Value {
+- PlaybackChannels "2"
+- }
+-}
+--
+2.23.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib/0010-ucm-DB845c-adjust-default-volume-of-speakers.patch b/recipes-multimedia/alsa/alsa-lib/0010-ucm-DB845c-adjust-default-volume-of-speakers.patch
new file mode 100644
index 0000000..4b5c245
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib/0010-ucm-DB845c-adjust-default-volume-of-speakers.patch
@@ -0,0 +1,65 @@
+From 955175f1c93f3f2c8d51595bd5cbf479250d76f8 Mon Sep 17 00:00:00 2001
+From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Date: Thu, 31 Oct 2019 10:10:15 +0000
+Subject: [PATCH 10/10] ucm: DB845c: adjust default volume of speakers
+
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+---
+ src/conf/ucm/DB845c/DB845c.conf | 15 ++++++++++-----
+ src/conf/ucm/DB845c/HiFi | 6 ++----
+ 2 files changed, 12 insertions(+), 9 deletions(-)
+
+diff --git a/src/conf/ucm/DB845c/DB845c.conf b/src/conf/ucm/DB845c/DB845c.conf
+index 5765aacd..d1bf6e3e 100644
+--- a/src/conf/ucm/DB845c/DB845c.conf
++++ b/src/conf/ucm/DB845c/DB845c.conf
+@@ -12,14 +12,19 @@ SectionDefaults [
+ cdev "hw:DB845c"
+ cset "name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1"
+ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
+- cset "name='SLIM RX0 MUX' AIF1_PB"
+- cset "name='RX INT7_1 MIX1 INP0' RX0"
+- cset "name='RX INT8_1 MIX1 INP0' RX0"
++ cset "name='SLIM RX0 MUX' ZERO"
++ cset "name='SLIM RX1 MUX' ZERO"
++ cset "name='SLIM RX2 MUX' ZERO"
++ cset "name='SLIM RX3 MUX' ZERO"
++ cset "name='SLIM RX4 MUX' ZERO"
++ cset "name='SLIM RX5 MUX' ZERO"
++ cset "name='SLIM RX6 MUX' AIF1_PB"
++ cset "name='SLIM RX7 MUX' AIF1_PB"
++ cset "name='RX INT7_1 MIX1 INP0' RX6"
++ cset "name='RX INT8_1 MIX1 INP0' RX7"
+ ## gain to 0dB
+ cset "name='RX7 Digital Volume' 0"
+ cset "name='RX8 Digital Volume' 0"
+- cset "name='RX1 Mix Digital Volume' 0"
+- cset "name='RX2 Mix Digital Volume' 0"
+ cset "name='MultiMedia3 Mixer SLIMBUS_0_TX' 1"
+ cset "name='AIF1_CAP Mixer SLIM TX0' 1"
+ cset "name='CDC_IF TX0 MUX' DEC0"
+diff --git a/src/conf/ucm/DB845c/HiFi b/src/conf/ucm/DB845c/HiFi
+index a794523b..40f7795e 100644
+--- a/src/conf/ucm/DB845c/HiFi
++++ b/src/conf/ucm/DB845c/HiFi
+@@ -32,15 +32,13 @@ SectionDevice."Speakers" {
+ cdev "hw:DB845c"
+ cset "name='SLIM RX6 MUX' AIF1_PB"
+ cset "name='SLIM RX7 MUX' AIF1_PB"
+- cset "name='SLIM RX1 MUX' ZERO"
+- cset "name='SLIM RX2 MUX' ZERO"
+ cset "name='RX INT7_1 MIX1 INP0' RX6"
+ cset "name='RX INT8_1 MIX1 INP0' RX7"
+ cset "name='SLIMBUS_0_RX Audio Mixer MultiMedia2' 1"
+ cset "name='COMP7 Switch' 1"
+ cset "name='COMP8 Switch' 1"
+- cset "name='RX7 Digital Volume' 70"
+- cset "name='RX8 Digital Volume' 70"
++ cset "name='RX7 Digital Volume' 100"
++ cset "name='RX8 Digital Volume' 100"
+ ## Speakers
+ cset "name='SpkrLeft COMP Switch' 1"
+ cset "name='SpkrLeft BOOST Switch' 1"
+--
+2.23.0
+
diff --git a/recipes-multimedia/alsa/alsa-lib_1.1.%.bbappend b/recipes-multimedia/alsa/alsa-lib_1.1.%.bbappend
new file mode 100644
index 0000000..04b4a81
--- /dev/null
+++ b/recipes-multimedia/alsa/alsa-lib_1.1.%.bbappend
@@ -0,0 +1,18 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
+
+SRC_URI_append_apq8096 = " \
+ file://0001-conf-ucm-Add-ucm-files-for-DB820c-board.patch \
+"
+
+SRC_URI_append_sdm845 = " \
+ file://0001-conf-ucm-Add-ucm-files-for-DB820c-board.patch \
+ file://0002-ucm-Add-ucm-files-for-DB845c-HDMI-audio.patch \
+ file://0003-ucm-Add-ucm-files-for-DB845c-analog-audio.patch \
+ file://0004-DB845c-fix-Defaults.patch \
+ file://0005-WIP-make-card-name-explicit.patch \
+ file://0006-DB845c-Add-headset-mixer-controls.patch \
+ file://0007-Lenovo-YOGA-C630-13Q50-Add-ucm-for-Speaker-and-Heads.patch \
+ file://0008-ucm-DB845c-update-volume-controls.patch \
+ file://0009-ucm-DB845c-remove-headphones-for-now.patch \
+ file://0010-ucm-DB845c-adjust-default-volume-of-speakers.patch \
+"
diff --git a/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend b/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
new file mode 100644
index 0000000..44a86ff
--- /dev/null
+++ b/recipes-multimedia/pulseaudio/pulseaudio_%.bbappend
@@ -0,0 +1,3 @@
+do_install_append() {
+ sed -i "s|^load-module module-udev-detect|load-module module-udev-detect tsched=0|" ${D}${sysconfdir}/pulse/default.pa
+}
diff --git a/recipes-support/pd-mapper/pd-mapper_git.bb b/recipes-support/pd-mapper/pd-mapper_git.bb
new file mode 100644
index 0000000..2d24786
--- /dev/null
+++ b/recipes-support/pd-mapper/pd-mapper_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Qualcomm pd-mapper application"
+HOMEPAGE = "https://github.com/andersson/pd-mapper.git"
+SECTION = "devel"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c5d4ab97bca4e843c5afdbf78aa5fdee"
+
+DEPENDS = "qrtr"
+
+inherit systemd
+
+SRCREV = "4236829a625ba5e90e689bc3d07e5ad15bca9733"
+SRC_URI = "git://github.com/andersson/${BPN}.git;branch=master;protocol=https"
+
+PV = "0.0+${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "prefix=${prefix} bindir=${bindir} libdir=${libdir} includedir=${includedir} LDFLAGS='${LDFLAGS} -Wl,-lqrtr'"
+
+do_install () {
+ oe_runmake install DESTDIR=${D} prefix=${prefix} servicedir=${systemd_unitdir}/system
+}
+
+SYSTEMD_SERVICE_${PN} = "pd-mapper.service"
+RDEPENDS_${PN} += "qrtr"
diff --git a/recipes-support/tqftpserv/tqftpserv_git.bb b/recipes-support/tqftpserv/tqftpserv_git.bb
new file mode 100644
index 0000000..b37b5b7
--- /dev/null
+++ b/recipes-support/tqftpserv/tqftpserv_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Qualcomm tqftpserv application"
+HOMEPAGE = "https://github.com/andersson/tqftpserv.git"
+SECTION = "devel"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=424e013ed97b36284f3b9ce27bb16a56"
+
+DEPENDS = "qrtr"
+
+inherit systemd
+
+SRCREV = "fe53d2a810abe0e1ee7cc0bb20fd520dc6605ecb"
+SRC_URI = "git://github.com/andersson/${BPN}.git;branch=master;protocol=https"
+
+PV = "0.0+${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "prefix=${prefix} bindir=${bindir} libdir=${libdir} includedir=${includedir} LDFLAGS='${LDFLAGS} -Wl,-lqrtr'"
+
+do_install () {
+ oe_runmake install DESTDIR=${D} prefix=${prefix} servicedir=${systemd_unitdir}/system
+}
+
+SYSTEMD_SERVICE_${PN} = "tqftpserv.service"
+RDEPENDS_${PN} += "qrtr"