aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf/machine/dragonboard-410c-32.conf1
-rw-r--r--conf/machine/dragonboard-410c.conf3
-rw-r--r--conf/machine/dragonboard-845c.conf1
-rw-r--r--conf/machine/include/qcom-apq8016.inc5
-rw-r--r--conf/machine/include/qcom-apq8096.inc2
-rw-r--r--conf/machine/include/qcom-sdm845.inc6
-rw-r--r--conf/machine/sd-600eval.conf1
-rw-r--r--dynamic-layers/openembedded-layer/recipes-navigation/gpsd/gpsd/0001-Introduce-Qualcomm-PDS-service-support.patch135
-rw-r--r--recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb3
-rw-r--r--recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb3
-rw-r--r--recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb (renamed from recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v2.bb)11
-rw-r--r--recipes-bsp/wcnss-config/wcnss-config_1.13.bb32
-rw-r--r--recipes-devtools/qdl/files/0001-Makefile-Use-pkg-config-for-libxml2-detection.patch35
-rw-r--r--recipes-devtools/qdl/qdl_git.bb25
-rw-r--r--recipes-kernel/linux/linux-linaro-qcomlt_5.2.bb2
-rw-r--r--recipes-kernel/linux/linux-linaro-qcomlt_5.4.bb19
-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/adsprpc/adsprpc_git.bb14
-rw-r--r--recipes-support/pd-mapper/pd-mapper_git.bb26
-rw-r--r--recipes-support/qrtr/files/qrtr.service11
-rw-r--r--recipes-support/qrtr/qrtr_git.bb14
-rw-r--r--recipes-support/rmtfs/files/rmtfs.service15
-rw-r--r--recipes-support/rmtfs/rmtfs_git.bb11
-rw-r--r--recipes-support/tqftpserv/tqftpserv_git.bb26
-rw-r--r--recipes-test/images/initramfs-test-image.bb2
36 files changed, 1785 insertions, 188 deletions
diff --git a/conf/machine/dragonboard-410c-32.conf b/conf/machine/dragonboard-410c-32.conf
index 859bbfd..8d732ed 100644
--- a/conf/machine/dragonboard-410c-32.conf
+++ b/conf/machine/dragonboard-410c-32.conf
@@ -15,7 +15,6 @@ RDEPENDS_kernel-base = ""
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-msm', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'wcnss-config wcnss-start', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5-noinst-tools', '', d)} \
firmware-qcom-dragonboard410c \
"
diff --git a/conf/machine/dragonboard-410c.conf b/conf/machine/dragonboard-410c.conf
index e13825f..ffb5a21 100644
--- a/conf/machine/dragonboard-410c.conf
+++ b/conf/machine/dragonboard-410c.conf
@@ -15,12 +15,11 @@ SERIAL_CONSOLE ?= "115200 ttyMSM0"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \
kernel-modules \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-msm', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'wcnss-config wcnss-start', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5-noinst-tools', '', d)} \
firmware-qcom-dragonboard410c \
"
-QCOM_BOOTIMG_ROOTFS ?= "mmcblk0p10"
+QCOM_BOOTIMG_ROOTFS ?= "mmcblk0p14"
# Define rootfs partiton (kernel argument)
SD_QCOM_BOOTIMG_ROOTFS ?= "mmcblk1p7"
diff --git a/conf/machine/dragonboard-845c.conf b/conf/machine/dragonboard-845c.conf
index e849f99..9effb74 100644
--- a/conf/machine/dragonboard-845c.conf
+++ b/conf/machine/dragonboard-845c.conf
@@ -14,6 +14,7 @@ SERIAL_CONSOLE ?= "115200 ttyMSM0"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \
firmware-qcom-dragonboard845c \
kernel-modules \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-msm', '', d)} \
"
diff --git a/conf/machine/include/qcom-apq8016.inc b/conf/machine/include/qcom-apq8016.inc
index bd861ae..08bd660 100644
--- a/conf/machine/include/qcom-apq8016.inc
+++ b/conf/machine/include/qcom-apq8016.inc
@@ -23,7 +23,7 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-linaro-qcomlt"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \
- qrtr-apps \
+ qrtr \
rmtfs \
"
@@ -33,6 +33,3 @@ IMAGE_ROOTFS_ALIGNMENT = "4096"
QCOM_BOOTIMG_KERNEL_BASE ?= "0x80000000"
QCOM_BOOTIMG_PAGE_SIZE ?= "2048"
-
-KERNEL_MODULE_PROBECONF += "qcom_q6v5_pil"
-module_conf_qcom_q6v5_pil = "blacklist qcom_q6v5_pil"
diff --git a/conf/machine/include/qcom-apq8096.inc b/conf/machine/include/qcom-apq8096.inc
index cda18e0..5c65f12 100644
--- a/conf/machine/include/qcom-apq8096.inc
+++ b/conf/machine/include/qcom-apq8096.inc
@@ -24,7 +24,7 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-linaro-qcomlt"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \
- qrtr-apps \
+ qrtr \
rmtfs \
"
diff --git a/conf/machine/include/qcom-sdm845.inc b/conf/machine/include/qcom-sdm845.inc
index 48e9fe1..7f6a1c2 100644
--- a/conf/machine/include/qcom-sdm845.inc
+++ b/conf/machine/include/qcom-sdm845.inc
@@ -24,7 +24,11 @@ PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-linaro-qcomlt"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \
- qrtr-apps \
+ adsprpc \
+ pd-mapper \
+ qrtr \
+ rmtfs \
+ tqftpserv \
"
IMAGE_FSTYPES ?= "ext4.gz"
diff --git a/conf/machine/sd-600eval.conf b/conf/machine/sd-600eval.conf
index f7da072..f4ed1cb 100644
--- a/conf/machine/sd-600eval.conf
+++ b/conf/machine/sd-600eval.conf
@@ -9,7 +9,6 @@ MACHINE_FEATURES = "usbhost usbgadget alsa screen wifi bluetooth ext2"
MACHINE_EXTRA_RRECOMMENDS = " \
kernel-modules \
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-msm', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'wcnss-config wcnss-start', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez5-noinst-tools', '', d)} \
firmware-qcom-sd-600eval \
"
diff --git a/dynamic-layers/openembedded-layer/recipes-navigation/gpsd/gpsd/0001-Introduce-Qualcomm-PDS-service-support.patch b/dynamic-layers/openembedded-layer/recipes-navigation/gpsd/gpsd/0001-Introduce-Qualcomm-PDS-service-support.patch
index aae427e..2929b06 100644
--- a/dynamic-layers/openembedded-layer/recipes-navigation/gpsd/gpsd/0001-Introduce-Qualcomm-PDS-service-support.patch
+++ b/dynamic-layers/openembedded-layer/recipes-navigation/gpsd/gpsd/0001-Introduce-Qualcomm-PDS-service-support.patch
@@ -1,4 +1,4 @@
-From 4854806fdbd53b4b25d18f966f273c8f32d57c35 Mon Sep 17 00:00:00 2001
+From dda5db4a48b62a92e9d45af71e0d533566b119a4 Mon Sep 17 00:00:00 2001
From: Bjorn Andersson <bjorn.andersson@linaro.org>
Date: Wed, 4 Apr 2018 04:29:09 +0000
Subject: [PATCH] Introduce Qualcomm PDS service support
@@ -30,12 +30,12 @@ string "any".
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
---
SConstruct | 10 ++
- driver_pds.c | 361 +++++++++++++++++++++++++++++++++++++++++++++++++
+ driver_pds.c | 325 +++++++++++++++++++++++++++++++++++++++++++++++++
driver_pds.h | 20 +++
drivers.c | 5 +
- gpsd.h | 20 ++-
- libgpsd_core.c | 15 +-
- 6 files changed, 424 insertions(+), 7 deletions(-)
+ gpsd.h | 14 ++-
+ libgpsd_core.c | 15 ++-
+ 6 files changed, 382 insertions(+), 7 deletions(-)
create mode 100644 driver_pds.c
create mode 100644 driver_pds.h
@@ -76,10 +76,10 @@ index d9d75653..6f53fef3 100644
"driver_sirf.c",
diff --git a/driver_pds.c b/driver_pds.c
new file mode 100644
-index 00000000..62464323
+index 00000000..7fe9e533
--- /dev/null
+++ b/driver_pds.c
-@@ -0,0 +1,361 @@
+@@ -0,0 +1,325 @@
+#include <sys/socket.h>
+#include <errno.h>
+#include <fcntl.h>
@@ -94,43 +94,7 @@ index 00000000..62464323
+#include <linux/qrtr.h>
+
+#define QMI_PDS_SERVICE_ID 0x10
-+#define QMI_PDS_INSTANCE_ID 0x2
-+
-+#ifndef QRTR_PORT_CTRL
-+#define QRTR_PORT_CTRL 0xfffffffeu
-+
-+enum qrtr_pkt_type {
-+ QRTR_TYPE_DATA = 1,
-+ QRTR_TYPE_HELLO = 2,
-+ QRTR_TYPE_BYE = 3,
-+ QRTR_TYPE_NEW_SERVER = 4,
-+ QRTR_TYPE_DEL_SERVER = 5,
-+ QRTR_TYPE_DEL_CLIENT = 6,
-+ QRTR_TYPE_RESUME_TX = 7,
-+ QRTR_TYPE_EXIT = 8,
-+ QRTR_TYPE_PING = 9,
-+ QRTR_TYPE_NEW_LOOKUP = 10,
-+ QRTR_TYPE_DEL_LOOKUP = 11,
-+};
-+
-+struct qrtr_ctrl_pkt {
-+ __le32 cmd;
-+
-+ union {
-+ struct {
-+ __le32 service;
-+ __le32 instance;
-+ __le32 node;
-+ __le32 port;
-+ } server;
-+
-+ struct {
-+ __le32 node;
-+ __le32 port;
-+ } client;
-+ };
-+} __packed;
-+#endif /* of ifndef QRTR_PORT_CTRL */
++#define QMI_PDS_VERSION 0x2
+
+struct qmi_header {
+ uint8_t type;
@@ -181,13 +145,9 @@ index 00000000..62464323
+ return -1;
+ }
+
-+ session->lexer.type = QMI_PDS_PACKET;
++ /* TODO: Validate sq to be our peer */
+
-+ if (sq.sq_node != session->driver.pds.node ||
-+ sq.sq_port != session->driver.pds.port) {
-+ session->lexer.outbuflen = 0;
-+ return ret;
-+ }
++ session->lexer.type = QMI_PDS_PACKET;
+
+ hdr = buf;
+ if (hdr->type != QMI_INDICATION ||
@@ -223,36 +183,31 @@ index 00000000..62464323
+
+static void qmi_pds_event_hook(struct gps_device_t *session, event_t event)
+{
-+ struct sockaddr_qrtr sq;
+ struct qmi_header *hdr;
+ struct qmi_tlv *tlv;
+ static int txn_id;
+ char buf[128];
++ char *ptr;
+ int sock = session->gpsdata.gps_fd;
+ int ret;
+
-+ session->driver.pds.node = 0;
-+ session->driver.pds.port = 14;
-+
-+ sq.sq_family = AF_QIPCRTR;
-+ sq.sq_node = session->driver.pds.node;
-+ sq.sq_port = session->driver.pds.port;
-+
+ switch (event) {
+ case event_deactivate:
-+ hdr = (struct qmi_header *)buf;
++ ptr = buf;
++ hdr = (struct qmi_header *)ptr;
+ hdr->type = QMI_REQUEST;
+ hdr->txn = txn_id++;
+ hdr->msg = QMI_LOC_STOP;
+ hdr->len = sizeof(*tlv) + sizeof(uint8_t);
++ ptr += sizeof(*hdr);
+
-+ tlv = (struct qmi_tlv *)(buf + sizeof(*hdr));
++ tlv = (struct qmi_tlv *)ptr;
+ tlv->key = QMI_TLV_SESSION_ID;
+ tlv->len = sizeof(uint8_t);
+ *(uint8_t*)tlv->value = 1;
++ ptr += sizeof(*tlv) + sizeof(uint8_t);
+
-+ ret = sendto(sock, buf, sizeof(*hdr) + hdr->len, 0,
-+ (struct sockaddr *)&sq, sizeof(sq));
++ ret = send(sock, buf, ptr - buf, 0);
+ if (ret < 0) {
+ gpsd_log(&session->context->errout, LOG_ERROR,
+ "QRTR event_hook: failed to send STOP request.\n");
@@ -260,38 +215,42 @@ index 00000000..62464323
+ }
+ break;
+ case event_reactivate:
-+ hdr = (struct qmi_header *)buf;
++ ptr = buf;
++ hdr = (struct qmi_header *)ptr;
+ hdr->type = QMI_REQUEST;
+ hdr->txn = txn_id++;
+ hdr->msg = QMI_LOC_REG_EVENTS;
+ hdr->len = sizeof(*tlv) + sizeof(uint64_t);
++ ptr += sizeof(*hdr);
+
-+ tlv = (struct qmi_tlv *)(buf + sizeof(*hdr));
++ tlv = (struct qmi_tlv *)ptr;
+ tlv->key = QMI_TLV_EVENT_MASK;
+ tlv->len = sizeof(uint64_t);
+ *(uint64_t*)tlv->value = QMI_EVENT_MASK_NMEA;
++ ptr += sizeof(*tlv) + sizeof(uint64_t);
+
-+ ret = sendto(sock, buf, sizeof(*hdr) + hdr->len, 0,
-+ (struct sockaddr *)&sq, sizeof(sq));
++ ret = send(sock, buf, ptr - buf, 0);
+ if (ret < 0) {
+ gpsd_log(&session->context->errout, LOG_ERROR,
+ "QRTR event_hook: failed to send REG_EVENTS request.\n");
+ return;
+ }
+
-+ hdr = (struct qmi_header *)buf;
++ ptr = buf;
++ hdr = (struct qmi_header *)ptr;
+ hdr->type = QMI_REQUEST;
+ hdr->txn = txn_id++;
+ hdr->msg = QMI_LOC_START;
+ hdr->len = sizeof(*tlv) + sizeof(uint8_t);
++ ptr += sizeof(*hdr);
+
+ tlv = (struct qmi_tlv *)(buf + sizeof(*hdr));
+ tlv->key = QMI_TLV_SESSION_ID;
+ tlv->len = sizeof(uint8_t);
+ *(uint8_t*)tlv->value = 1;
++ ptr += sizeof(*tlv) + sizeof(uint8_t);
+
-+ ret = sendto(sock, buf, sizeof(*hdr) + hdr->len, 0,
-+ (struct sockaddr *)&sq, sizeof(sq));
++ ret = send(sock, buf, ptr - buf, 0);
+ if (ret < 0) {
+ gpsd_log(&session->context->errout, LOG_ERROR,
+ "QRTR event_hook: failed to send START request.\n");
@@ -349,7 +308,7 @@ index 00000000..62464323
+ memset(&pkt, 0, sizeof(pkt));
+ pkt.cmd = QRTR_TYPE_NEW_LOOKUP;
+ pkt.server.service = QMI_PDS_SERVICE_ID;
-+ pkt.server.instance = QMI_PDS_INSTANCE_ID;
++ pkt.server.instance = QMI_PDS_VERSION;
+
+ sq_ctrl.sq_port = QRTR_PORT_CTRL;
+ ret = sendto(sock, &pkt, sizeof(pkt), 0, (struct sockaddr *)&sq_ctrl, sizeof(sq_ctrl));
@@ -387,7 +346,7 @@ index 00000000..62464323
+ break;
+
+ /* Filter results based on specified node */
-+ if (hostid != -1 && hostid != pkt.server.node)
++ if (hostid != -1 && hostid != (int)pkt.server.node)
+ continue;
+
+ pds_node = pkt.server.node;
@@ -408,14 +367,22 @@ index 00000000..62464323
+ gpsd_log(&session->context->errout, LOG_INF,
+ "QRTR open: Found PDS at %d %d.\n", pds_node, pds_port);
+
++ sq.sq_family = AF_QIPCRTR;
++ sq.sq_node = pds_node;
++ sq.sq_port = pds_port;
++ ret = connect(sock, (struct sockaddr *)&sq, sizeof(sq));
++ if (ret < 0) {
++ gpsd_log(&session->context->errout, LOG_ERROR,
++ "QRTR open: Failed to connect socket.\n");
++ close(sock);
++ return -1;
++ }
++
+ gpsd_switch_driver(session, "Qualcomm PDS");
+ session->gpsdata.gps_fd = sock;
+ session->sourcetype = source_qrtr;
+ session->servicetype = service_sensor;
+
-+ session->driver.pds.node = pds_node;
-+ session->driver.pds.port = pds_port;
-+
+ return session->gpsdata.gps_fd;
+}
+
@@ -425,9 +392,6 @@ index 00000000..62464323
+ close(session->gpsdata.gps_fd);
+ INVALIDATE_SOCKET(session->gpsdata.gps_fd);
+ }
-+
-+ session->driver.pds.node = 0;
-+ session->driver.pds.port = 0;
+}
+
+const struct gps_type_t driver_pds = {
@@ -491,7 +455,7 @@ index eda1fd61..92d7eba8 100644
&driver_rtcm104v2,
#endif /* RTCM104V2_ENABLE */
diff --git a/gpsd.h b/gpsd.h
-index 2bd5f4c0..b24c6e65 100644
+index 2bd5f4c0..8e22e509 100644
--- a/gpsd.h
+++ b/gpsd.h
@@ -163,12 +163,13 @@ struct gps_lexer_t {
@@ -522,19 +486,6 @@ index 2bd5f4c0..b24c6e65 100644
source_pty, /* PTY: we don't require exclusive access */
source_tcp, /* TCP/IP stream: case detected but not used */
source_udp, /* UDP stream: case detected but not used */
-@@ -699,6 +701,12 @@ struct gps_device_t {
- unsigned char sid[8];
- } nmea2000;
- #endif /* NMEA2000_ENABLE */
-+#ifdef PDS_ENABLE
-+ struct {
-+ unsigned int node;
-+ unsigned int port;
-+ } pds;
-+#endif /* PDS_ENABLE */
- /*
- * This is not conditionalized on RTCM104_ENABLE because we need to
- * be able to build gpsdecode even when RTCM support is not
diff --git a/libgpsd_core.c b/libgpsd_core.c
index 85b8d86a..4f6a11ed 100644
--- a/libgpsd_core.c
@@ -583,5 +534,5 @@ index 85b8d86a..4f6a11ed 100644
for (dp = gpsd_drivers; *dp; dp++) {
--
-2.17.0
+2.23.0
diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb
index b65ac46..62e5bf4 100644
--- a/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb
+++ b/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb
@@ -24,8 +24,9 @@ do_install() {
cp -r ./proprietary-linux/* ${D}${nonarch_base_libdir}/firmware/
cp ./efs-seed/fs_image_linux.tar.gz.mbn.img ${D}/boot/modem_fsg
+ install -d ${D}${nonarch_base_libdir}/firmware/qcom/msm8916
MTOOLS_SKIP_CHECK=1 mcopy -i ./bootloaders-linux/NON-HLOS.bin \
- ::image/modem.* ::image/mba.mbn ::image/wcnss.* ${D}${nonarch_base_libdir}/firmware/
+ ::image/modem.* ::image/mba.mbn ::image/wcnss.* ${D}${nonarch_base_libdir}/firmware/qcom/msm8916
# Venus firmware have been merged in linux-firmware in a different location than
# what we've been using for now. Let's add symlinks for now, until we switch to linux-firmware
diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb
index dc81dcd..c33cecb 100644
--- a/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb
+++ b/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb
@@ -19,10 +19,11 @@ do_compile() {
do_install() {
install -d ${D}${nonarch_base_libdir}/firmware/
install -d ${D}${nonarch_base_libdir}/firmware/qcom/venus-4.2/
+ install -d ${D}${nonarch_base_libdir}/firmware/qcom/msm8996/
install -m 0444 ./proprietary-linux/a530*.* ${D}${nonarch_base_libdir}/firmware/
install -m 0444 ./proprietary-linux/venus.* ${D}${nonarch_base_libdir}/firmware/qcom/venus-4.2/
- install -m 0444 ./proprietary-linux/adsp.* ${D}${nonarch_base_libdir}/firmware/
+ install -m 0444 ./proprietary-linux/adsp.* ${D}${nonarch_base_libdir}/firmware/qcom/msm8996/
install -d ${D}${sysconfdir}/
install -m 0644 LICENSE ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE
diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v2.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb
index 4857794..c27bbbc 100644
--- a/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v2.bb
+++ b/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb
@@ -4,13 +4,13 @@ LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://LICENSE.qcom.txt;md5=cbbe399f2c983ad51768f4561587f000"
SRC_URI = "https://releases.linaro.org/96boards/dragonboard845c/qualcomm/firmware/RB3_firmware_${PV}.zip"
-SRC_URI[md5sum] = "8e9489a4bdfd3738ce4683a970b49f42"
-SRC_URI[sha256sum] = "d88ad0873792687b2906107b3244da874264c19384e49f2c4aec6768081cd29a"
+SRC_URI[md5sum] = "ad69855a1275547b16d94a1b5405ac62"
+SRC_URI[sha256sum] = "4289d2f2a7124b104d0274879e702aae9b1e50c42eec3747f8584c6744ef65e3"
COMPATIBLE_MACHINE = "(dragonboard-845c)"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-S = "${WORKDIR}/RB3_firmware_${PV}"
+S = "${WORKDIR}"
do_compile() {
:
@@ -19,11 +19,12 @@ do_compile() {
do_install() {
install -d ${D}${nonarch_base_libdir}/firmware/
install -d ${D}${nonarch_base_libdir}/firmware/qcom/venus-5.2/
+ install -d ${D}${nonarch_base_libdir}/firmware/qcom/sdm845
install -m 0444 ./17-USB3-201-202-FW/K2026090.mem ${D}${nonarch_base_libdir}/firmware/
install -m 0444 ./18-adreno-fw/a630*.* ${D}${nonarch_base_libdir}/firmware/
- install -m 0444 ./20-adsp_split/firmware/adsp*.* ${D}${nonarch_base_libdir}/firmware/
- install -m 0444 ./21-cdsp_split/firmware/cdsp*.* ${D}${nonarch_base_libdir}/firmware/
+ install -m 0444 ./20-adsp_split/firmware/adsp*.* ${D}${nonarch_base_libdir}/firmware/qcom/sdm845
+ install -m 0444 ./21-cdsp_split/firmware/cdsp*.* ${D}${nonarch_base_libdir}/firmware/qcom/sdm845
install -m 0444 ./33-venus_split/venus.* ${D}${nonarch_base_libdir}/firmware/qcom/venus-5.2/
install -m 0444 ./37-wlan_FW/wlanmdsp.mbn ${D}${nonarch_base_libdir}/firmware/
install -m 0444 ./38-bdwlan_split/bdwlan*.* ${D}${nonarch_base_libdir}/firmware/
diff --git a/recipes-bsp/wcnss-config/wcnss-config_1.13.bb b/recipes-bsp/wcnss-config/wcnss-config_1.13.bb
deleted file mode 100644
index 79711ad..0000000
--- a/recipes-bsp/wcnss-config/wcnss-config_1.13.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "WLAN and BT configuration files for QCOM WCN"
-HOMEPAGE = "https://git.linaro.org/landing-teams/working/qualcomm/wcnss-config.git"
-SECTION = "devel"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=9ffc7d99f148b53a339cd4374c5c431f"
-
-# TAG:debian/1.13
-SRCREV = "655a59f30915bed785d39cc90130dc06b44d7f6f"
-SRC_URI = "git://git.linaro.org/landing-teams/working/qualcomm/wcnss-config.git;branch=master;protocol=https"
-
-S = "${WORKDIR}/git"
-
-inherit systemd allarch
-
-PACKAGES =+ "wcnss-start"
-
-do_install () {
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${S}/debian/wcnss-start.service ${D}${systemd_unitdir}/system
-
- install -d ${D}${sbindir}
- install -m 0755 ${S}/wcnss-start ${D}${sbindir}
-}
-
-# They are empty, and would break dev-pkgs image feature.
-PACKAGES_remove = "${PN}-dev ${PN}-staticdev"
-
-FILES_wcnss-start = "${sbindir}/wcnss-start ${systemd_unitdir}/system/wcnss-start.service"
-
-SYSTEMD_PACKAGES = "wcnss-start"
-SYSTEMD_SERVICE_wcnss-start = "wcnss-start.service"
diff --git a/recipes-devtools/qdl/files/0001-Makefile-Use-pkg-config-for-libxml2-detection.patch b/recipes-devtools/qdl/files/0001-Makefile-Use-pkg-config-for-libxml2-detection.patch
new file mode 100644
index 0000000..2aca181
--- /dev/null
+++ b/recipes-devtools/qdl/files/0001-Makefile-Use-pkg-config-for-libxml2-detection.patch
@@ -0,0 +1,35 @@
+From d0ecd95e8935a9fe3e94921d10bfb153f5e0ce52 Mon Sep 17 00:00:00 2001
+From: Nicolas Dechesne <nicolas.dechesne@linaro.org>
+Date: Wed, 28 Aug 2019 17:54:50 +0200
+Subject: [PATCH] Makefile: Use pkg-config for libxml2 detection.
+
+xml2-config does not work. Use pkgconfig to set CPPFLAGS and LIBS.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/Makefile
++++ b/Makefile
+@@ -1,14 +1,14 @@
+ OUT := qdl
+
+-CFLAGS := -O2 -Wall -g `xml2-config --cflags`
+-LDFLAGS := `xml2-config --libs` -ludev
+-prefix := /usr/local
++CFLAGS += -O2 -Wall -g `pkg-config --cflags libxml-2.0`
++LDFLAGS += `pkg-config --libs libxml-2.0` -ludev
++prefix ?= /usr/local
+
+ SRCS := firehose.c qdl.c sahara.c util.c patch.c program.c ufs.c
+ OBJS := $(SRCS:.c=.o)
+
+ $(OUT): $(OBJS)
+- $(CC) -o $@ $^ $(LDFLAGS)
++ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
+
+ clean:
+ rm -f $(OUT) $(OBJS)
diff --git a/recipes-devtools/qdl/qdl_git.bb b/recipes-devtools/qdl/qdl_git.bb
new file mode 100644
index 0000000..aba3cec
--- /dev/null
+++ b/recipes-devtools/qdl/qdl_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "QDL flasing tool"
+HOMEPAGE = "https://github.com/andersson/qdl.git"
+SECTION = "devel"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://qdl.c;beginline=1;endline=31;md5=1c7d712d897368d3d3c161e5493efc6a"
+
+DEPENDS = "libxml2"
+DEPENDS_append_class-target = " udev "
+
+inherit pkgconfig
+
+SRCREV = "760b3dffb03d2b7dfb82c6eac652a092f51c572d"
+SRC_URI = "git://github.com/andersson/${BPN}.git;branch=master;protocol=https \
+ file://0001-Makefile-Use-pkg-config-for-libxml2-detection.patch"
+
+PV = "0.0+${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+ oe_runmake install DESTDIR=${D} prefix=${prefix}
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.2.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.2.bb
index 86d5ee6..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 ?= "a5ea95c538e3d86feb21e048d44b68fd048a27b2"
+SRCREV ?= "13e8268d9b5cf3980b6e2766bf00439001c363fd"
COMPATIBLE_MACHINE = "(sdm845)"
diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.4.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.4.bb
new file mode 100644
index 0000000..24b162c
--- /dev/null
+++ b/recipes-kernel/linux/linux-linaro-qcomlt_5.4.bb
@@ -0,0 +1,19 @@
+# Copyright (C) 2014-2019 Linaro
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Linaro Qualcomm Landing team 5.4 Kernel"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+
+inherit pythonnative
+
+require recipes-kernel/linux/linux-linaro-qcom.inc
+require recipes-kernel/linux/linux-qcom-bootimg.inc
+
+LOCALVERSION ?= "-linaro-lt-qcom"
+SRCBRANCH ?= "release/qcomlt-5.4"
+SRCREV ?= "447814278e3fcaef6db32a458e976b8c0c30ea0d"
+
+COMPATIBLE_MACHINE = "(apq8016|apq8096|sdm845)"
+
+# Wifi firmware has a recognizable arch :(
+ERROR_QA_remove = "arch"
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/adsprpc/adsprpc_git.bb b/recipes-support/adsprpc/adsprpc_git.bb
new file mode 100644
index 0000000..430c1ee
--- /dev/null
+++ b/recipes-support/adsprpc/adsprpc_git.bb
@@ -0,0 +1,14 @@
+HOMEPAGE = "https://git.linaro.org/landing-teams/working/qualcomm/libadsprpc.git"
+SECTION = "devel"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e868d7526728e9b1c0c4f34730d27754"
+
+SRCREV = "741c1415df731503b3aea8b754223a871081d2f3"
+SRC_URI = "git://git.linaro.org/landing-teams/working/qualcomm/libadsprpc.git;branch=master;protocol=https"
+
+PV = "0.0+${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
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/qrtr/files/qrtr.service b/recipes-support/qrtr/files/qrtr.service
deleted file mode 100644
index e2f1952..0000000
--- a/recipes-support/qrtr/files/qrtr.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=QRTR service
-After=systemd-remount-fs.service
-
-[Service]
-ExecStartPre=/usr/bin/qrtr-cfg 1
-ExecStart=/usr/bin/qrtr-ns
-RemainAfterExit=yes
-
-[Install]
-WantedBy=multi-user.target
diff --git a/recipes-support/qrtr/qrtr_git.bb b/recipes-support/qrtr/qrtr_git.bb
index e5e7463..03566db 100644
--- a/recipes-support/qrtr/qrtr_git.bb
+++ b/recipes-support/qrtr/qrtr_git.bb
@@ -7,9 +7,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=15329706fbfcb5fc5edcc1bc7c139da5"
inherit systemd
-SRCREV = "a1694a1c938fdcd047553841370ebe2cd7384299"
+SRCREV = "cd6bedd5d00f211e6c1e3803ff2f9f53c246435e"
SRC_URI = "git://github.com/andersson/${BPN}.git;branch=master;protocol=https"
-SRC_URI += "file://qrtr.service"
PV = "0.0+${SRCPV}"
@@ -18,14 +17,7 @@ S = "${WORKDIR}/git"
EXTRA_OEMAKE = "prefix=${prefix} bindir=${bindir} libdir=${libdir} includedir=${includedir} LDFLAGS='${LDFLAGS}'"
do_install () {
- oe_runmake install DESTDIR=${D}
-
- sed -i -e s:/usr/bin:${bindir}:g ${WORKDIR}/qrtr.service
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/qrtr.service ${D}${systemd_unitdir}/system
+ oe_runmake install DESTDIR=${D} prefix=${prefix} servicedir=${systemd_unitdir}/system
}
-SYSTEMD_SERVICE_${PN} = "qrtr.service"
-
-PACKAGES =+ "qrtr-apps"
-FILES_qrtr-apps = "${bindir}/*"
+SYSTEMD_SERVICE_${PN} = "qrtr-ns.service"
diff --git a/recipes-support/rmtfs/files/rmtfs.service b/recipes-support/rmtfs/files/rmtfs.service
deleted file mode 100644
index 2002fd6..0000000
--- a/recipes-support/rmtfs/files/rmtfs.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=RMTFS setup
-After=systemd-remount-fs.service qrtr.service
-Requires=qrtr.service
-
-[Service]
-ExecStartPre=/bin/sh -c "[ ! -f /boot/modem_fs1 ] && dd if=/dev/zero of=/boot/modem_fs1 bs=1M count=2 || :"
-ExecStartPre=/bin/sh -c "[ ! -f /boot/modem_fs2 ] && dd if=/dev/zero of=/boot/modem_fs2 bs=1M count=2 || :"
-ExecStartPre=/bin/sh -c "[ ! -f /boot/modem_fsc ] && dd if=/dev/zero of=/boot/modem_fsc bs=1M count=2 || :"
-ExecStartPre=/bin/sh -c "[ ! -f /boot/modem_fsg ] && dd if=/dev/zero of=/boot/modem_fsg bs=1M count=2 || :"
-ExecStart=/usr/bin/rmtfs -v
-ExecStartPost=/bin/sh -c "[ -d /sys/bus/platform/devices/*.hexagon ] && modprobe qcom_q6v5_pil"
-
-[Install]
-WantedBy=multi-user.target
diff --git a/recipes-support/rmtfs/rmtfs_git.bb b/recipes-support/rmtfs/rmtfs_git.bb
index 2e79bc0..8655346 100644
--- a/recipes-support/rmtfs/rmtfs_git.bb
+++ b/recipes-support/rmtfs/rmtfs_git.bb
@@ -7,23 +7,18 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ca25dbf5ebfc1a058bfc657c895aac2f"
inherit systemd
-SRCREV = "0d3c49ec5aa27517afec9f18a3afc4b0800e6cbb"
+SRCREV = "dfb8f3ed1c8fbde621cd08aaf9e7724a4c55cbd1"
SRC_URI = "git://github.com/andersson/${BPN}.git;branch=master;protocol=https"
-SRC_URI += "file://rmtfs.service"
DEPENDS = "qmic-native qrtr udev"
PV = "0.0+${SRCPV}"
S = "${WORKDIR}/git"
-EXTRA_OEMAKE = "'LDFLAGS=${TARGET_LDFLAGS} -L${STAGING_LIBDIR} -lqrtr -ludev'"
+EXTRA_OEMAKE = "'LDFLAGS=${TARGET_LDFLAGS} -L${STAGING_LIBDIR} -lqrtr -ludev -lpthread'"
do_install () {
- oe_runmake install DESTDIR=${D} prefix=${prefix}
-
- sed -i -e s:/usr/bin:${bindir}:g ${WORKDIR}/rmtfs.service
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/rmtfs.service ${D}${systemd_unitdir}/system
+ oe_runmake install DESTDIR=${D} prefix=${prefix} servicedir=${systemd_unitdir}/system
}
SYSTEMD_SERVICE_${PN} = "rmtfs.service"
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"
diff --git a/recipes-test/images/initramfs-test-image.bb b/recipes-test/images/initramfs-test-image.bb
index 83ef315..3fe75f9 100644
--- a/recipes-test/images/initramfs-test-image.bb
+++ b/recipes-test/images/initramfs-test-image.bb
@@ -12,7 +12,7 @@ PACKAGE_INSTALL = " \
iperf3 \
lava-test-shell \
packagegroup-core-boot \
- qrtr-apps \
+ qrtr \
rmtfs \
tcpdump \
udev \