diff --git a/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0001-ucm2-Separate-the-configuration-lookups-hw-based-fro.patch b/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0001-ucm2-Separate-the-configuration-lookups-hw-based-fro.patch new file mode 100644 index 000000000..b16a2417d --- /dev/null +++ b/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0001-ucm2-Separate-the-configuration-lookups-hw-based-fro.patch @@ -0,0 +1,86 @@ +From 4cfceb1e257a91cf5c1d29f28d1305607bbf58eb Mon Sep 17 00:00:00 2001 +From: Jaroslav Kysela +Date: Wed, 3 Feb 2021 17:13:01 +0100 +Subject: [PATCH] ucm2: Separate the configuration lookups (hw based) from the + configuration tree + +Introduce ucm2/conf.d/ tree with symlinks to the real hardware configurations. +In this way, we do not rely to create the configuration paths based on +simple driver / device identification, but we can store the configurations +more logically to make the maintenance (code reuse, multiple changes) +more easy. + +This commit keeps the older lookup paths active, but they will be +turned off in the next release. + +BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/70 +BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/76 +BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/78 +Signed-off-by: Jaroslav Kysela +--- + ucm2/ucm.conf | 40 +++++++++++++++++++++++++++++++++++----- + 1 file changed, 35 insertions(+), 5 deletions(-) + +diff --git a/ucm2/ucm.conf b/ucm2/ucm.conf +index 9e78df118f83..8577c300e46b 100644 +--- a/ucm2/ucm.conf ++++ b/ucm2/ucm.conf +@@ -14,8 +14,9 @@ + Syntax 3 + + Define.V1 "" # non-empty string to enable ucm v1 paths +-Define.V2Module yes # empty string to disable +-Define.V2Name yes # empty string to disable ++Define.V2ConfD yes # empty string to disable ++Define.V2Module yes # non-empty string to enable module name lookups (obsolete) ++Define.V2Name yes # non-empty string to enable driver & card name lookups (obsolete) + + If.driver { + Condition { +@@ -40,11 +41,40 @@ If.driver { + # + # The probed path when hw-card is found: + # +- # ucm2/${KernelModule}/${KernelModule}.conf +- # ucm2/${CardDriver}/${CardLongName}.conf +- # ucm2/${CardDriver}/${CardDriver}.conf ++ # ucm2/conf.d/[${CardDriver}|${KernelDriver}]/${CardLongName}.conf ++ # ucm2/conf.d/[${CardDriver}|${KernelDriver}]/[${CardDriver}|${KernelDriver}].conf ++ # ucm2/${KernelModule}/${KernelModule}.conf (obsolete) ++ # ucm2/${CardDriver}/${CardLongName}.conf (obsolete) ++ # ucm2/${CardDriver}/${CardDriver}.conf (obsolete) + # + ++ If.V2ConfD { ++ Condition { ++ Type String ++ Empty "${var:V2ConfD}" ++ } ++ False { ++ Define.Driver "${CardDriver}" ++ If.nodrv { ++ Condition { ++ Type String ++ Empty "${var:Driver}" ++ } ++ True.Define { ++ KernelDriverPath "class/sound/card${CardNumber}/device/driver" ++ Driver "${sys:$KernelDriverPath}" ++ } ++ } ++ UseCasePath.confd1 { ++ Directory "conf.d/${var:Driver}" ++ File "${CardLongName}.conf" ++ } ++ UseCasePath.confd2 { ++ Directory "conf.d/${var:Driver}" ++ File "${var:Driver}.conf" ++ } ++ } ++ } + If.V2Module { + Condition { + Type String +-- +2.30.0 + diff --git a/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0001-ucm2-codecs-lpass-add-codec-sequences-for-wsa-and-va.patch b/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0001-ucm2-codecs-lpass-add-codec-sequences-for-wsa-and-va.patch new file mode 100644 index 000000000..7f664b1d9 --- /dev/null +++ b/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0001-ucm2-codecs-lpass-add-codec-sequences-for-wsa-and-va.patch @@ -0,0 +1,75 @@ +From 5384a0ec52d2d8fd0bbcdab222b47d0887a058e4 Mon Sep 17 00:00:00 2001 +From: Srinivas Kandagatla +Date: Fri, 20 Nov 2020 12:12:48 +0000 +Subject: [PATCH 1/2] ucm2: codecs: lpass: add codec sequences for wsa and va + macro + +Add enable/disable codec sequence for Qualcomm Low Power Audio +Subsystem (LPASS) Codec WSA and VA Macros. + +Signed-off-by: Srinivas Kandagatla +--- + ucm2/codecs/lpass/va-macro/DMIC0DisableSeq.conf | 3 +++ + ucm2/codecs/lpass/va-macro/DMIC0EnableSeq.conf | 3 +++ + ucm2/codecs/lpass/wsa-macro/SpeakerDisableSeq.conf | 8 ++++++++ + ucm2/codecs/lpass/wsa-macro/SpeakerEnableSeq.conf | 8 ++++++++ + 4 files changed, 22 insertions(+) + create mode 100644 ucm2/codecs/lpass/va-macro/DMIC0DisableSeq.conf + create mode 100644 ucm2/codecs/lpass/va-macro/DMIC0EnableSeq.conf + create mode 100644 ucm2/codecs/lpass/wsa-macro/SpeakerDisableSeq.conf + create mode 100644 ucm2/codecs/lpass/wsa-macro/SpeakerEnableSeq.conf + +diff --git a/ucm2/codecs/lpass/va-macro/DMIC0DisableSeq.conf b/ucm2/codecs/lpass/va-macro/DMIC0DisableSeq.conf +new file mode 100644 +index 0000000..ec3f45a +--- /dev/null ++++ b/ucm2/codecs/lpass/va-macro/DMIC0DisableSeq.conf +@@ -0,0 +1,5 @@ ++DisableSequence [ ++ cset "name='VA DMIC MUX0' ZERO" ++ cset "name='VA_DEC0 Volume' 0" ++ cset "name='VA_AIF1_CAP Mixer DEC0' 0" ++] +diff --git a/ucm2/codecs/lpass/va-macro/DMIC0EnableSeq.conf b/ucm2/codecs/lpass/va-macro/DMIC0EnableSeq.conf +new file mode 100644 +index 0000000..bd6e8f5 +--- /dev/null ++++ b/ucm2/codecs/lpass/va-macro/DMIC0EnableSeq.conf +@@ -0,0 +1,5 @@ ++EnableSequence [ ++ cset "name='VA DMIC MUX0' DMIC0" ++ cset "name='VA_AIF1_CAP Mixer DEC0' 1" ++ cset "name='VA_DEC0 Volume' 100" ++] +diff --git a/ucm2/codecs/lpass/wsa-macro/SpeakerDisableSeq.conf b/ucm2/codecs/lpass/wsa-macro/SpeakerDisableSeq.conf +new file mode 100644 +index 0000000..1f27d4c +--- /dev/null ++++ b/ucm2/codecs/lpass/wsa-macro/SpeakerDisableSeq.conf +@@ -0,0 +1,10 @@ ++DisableSequence [ ++ cset "name='WSA_RX0 Digital Volume' 0" ++ cset "name='WSA_RX1 Digital Volume' 0" ++ cset "name='WSA_COMP1 Switch' 0" ++ cset "name='WSA_COMP2 Switch' 0" ++ cset "name='WSA_RX0 INP0' ZERO" ++ cset "name='WSA_RX1 INP0' ZERO" ++ cset "name='WSA RX0 MUX' ZERO" ++ cset "name='WSA RX1 MUX' ZERO" ++] +diff --git a/ucm2/codecs/lpass/wsa-macro/SpeakerEnableSeq.conf b/ucm2/codecs/lpass/wsa-macro/SpeakerEnableSeq.conf +new file mode 100644 +index 0000000..618bab4 +--- /dev/null ++++ b/ucm2/codecs/lpass/wsa-macro/SpeakerEnableSeq.conf +@@ -0,0 +1,10 @@ ++EnableSequence [ ++ cset "name='WSA RX0 MUX' AIF1_PB" ++ cset "name='WSA RX1 MUX' AIF1_PB" ++ cset "name='WSA_RX0 INP0' RX0" ++ cset "name='WSA_RX1 INP0' RX1" ++ cset "name='WSA_COMP1 Switch' 1" ++ cset "name='WSA_COMP2 Switch' 1" ++ cset "name='WSA_RX0 Digital Volume' 68" ++ cset "name='WSA_RX1 Digital Volume' 68" ++] diff --git a/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0001-ucm2-conf.d-add-symlinks-for-Qualcomm-cards.patch b/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0001-ucm2-conf.d-add-symlinks-for-Qualcomm-cards.patch new file mode 100644 index 000000000..d2083b0a6 --- /dev/null +++ b/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0001-ucm2-conf.d-add-symlinks-for-Qualcomm-cards.patch @@ -0,0 +1,44 @@ +From 2957017f9ca01b0e1e127c04ba47e0147bff7e47 Mon Sep 17 00:00:00 2001 +From: Dmitry Baryshkov +Date: Fri, 5 Feb 2021 20:45:40 +0300 +Subject: [PATCH] ucm2/conf.d: add symlinks for Qualcomm cards + +Add ucm2/conf.d symlinks for all defined Qualcomm sound cards. + +Signed-off-by: Dmitry Baryshkov +--- + ucm2/conf.d/DB820c/DB820c.conf | 1 + + ucm2/conf.d/DB410c/DB410c.conf | 1 + + ucm2/conf.d/sdm845/DB845c.conf | 1 + + 3 files changed, 3 insertions(+) + create mode 120000 ucm2/conf.d/DB820c/DB820c.conf + create mode 120000 ucm2/conf.d/DB410c/DB410c.conf + create mode 120000 ucm2/conf.d/sdm845/DB845c.conf + +diff --git a/ucm2/conf.d/DB820c/DB820c.conf b/ucm2/conf.d/DB820c/DB820c.conf +new file mode 120000 +index 000000000000..b8ceeabaa70d +--- /dev/null ++++ b/ucm2/conf.d/DB820c/DB820c.conf +@@ -0,0 +1 @@ ++../../Qualcomm/apq8096/apq8096.conf +\ No newline at end of file +diff --git a/ucm2/conf.d/DB410c/DB410c.conf b/ucm2/conf.d/DB410c/DB410c.conf +new file mode 120000 +index 000000000000..551122e14c16 +--- /dev/null ++++ b/ucm2/conf.d/DB410c/DB410c.conf +@@ -0,0 +1 @@ ++../../Qualcomm/apq8016-sbc/apq8016-sbc.conf +\ No newline at end of file +diff --git a/ucm2/conf.d/sdm845/DB845c.conf b/ucm2/conf.d/sdm845/DB845c.conf +new file mode 120000 +index 000000000000..fad79da8dd8e +--- /dev/null ++++ b/ucm2/conf.d/sdm845/DB845c.conf +@@ -0,0 +1 @@ ++../../Qualcomm/sdm845/sdm845.conf +\ No newline at end of file +-- +2.30.0 + diff --git a/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0002-ucm2-add-support-to-for-Qualcomm-RB5-Platform.patch b/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0002-ucm2-add-support-to-for-Qualcomm-RB5-Platform.patch new file mode 100644 index 000000000..b972cf57d --- /dev/null +++ b/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf/0002-ucm2-add-support-to-for-Qualcomm-RB5-Platform.patch @@ -0,0 +1,130 @@ +From 382366c1f615613e088982a6c30fc90b3226ae8b Mon Sep 17 00:00:00 2001 +From: Srinivas Kandagatla +Date: Fri, 20 Nov 2020 12:14:31 +0000 +Subject: [PATCH 2/2] ucm2: add support to for Qualcomm RB5 Platform + +The Qualcomm RB5 Robotics Platform contains HDMI, +2x WSA Smart-Speakers audio outputs along with One +Onboard DMIC audio input. + +Signed-off-by: Srinivas Kandagatla +--- + ucm2/Qualcomm/sm8250/HDMI.conf | 26 ++++++++++++ + ucm2/Qualcomm/sm8250/HiFi.conf | 46 ++++++++++++++++++++++ + .../Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf | 11 ++++++ + ucm2/conf.d/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf | 1 + + 4 files changed, 84 insertions(+) + create mode 100644 ucm2/Qualcomm/sm8250/HDMI.conf + create mode 100644 ucm2/Qualcomm/sm8250/HiFi.conf + create mode 100644 ucm2/Qualcomm/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf + create mode 120000 ucm2/conf.d/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf + +diff --git a/ucm2/Qualcomm/sm8250/HDMI.conf b/ucm2/Qualcomm/sm8250/HDMI.conf +new file mode 100644 +index 0000000..a9594fd +--- /dev/null ++++ b/ucm2/Qualcomm/sm8250/HDMI.conf +@@ -0,0 +1,26 @@ ++# Use case configuration for RB5 board. ++# Author: Srinivas Kandagatla ++ ++SectionVerb { ++ EnableSequence [ ++ cset "name='TERT_MI2S_RX Audio Mixer MultiMedia1' 1" ++ ] ++ ++ DisableSequence [ ++ cset "name='TERT_MI2S_RX Audio Mixer MultiMedia1' 0" ++ ] ++ ++ Value { ++ TQ "HiFi" ++ } ++} ++ ++SectionDevice."HDMI" { ++ #Name "HDMI" ++ Comment "HDMI Digital Stereo Output" ++ ++ Value { ++ PlaybackPCM "hw:${CardId}" ++ PlaybackPriority 200 ++ } ++} +diff --git a/ucm2/Qualcomm/sm8250/HiFi.conf b/ucm2/Qualcomm/sm8250/HiFi.conf +new file mode 100644 +index 0000000..a310402 +--- /dev/null ++++ b/ucm2/Qualcomm/sm8250/HiFi.conf +@@ -0,0 +1,46 @@ ++# Use case configuration for Qualcomm RB5. ++# Author: Srinivas Kandagatla ++ ++SectionVerb { ++ ++ EnableSequence [ ++ cset "name='WSA_CODEC_DMA_RX_0 Audio Mixer MultiMedia2' 1" ++ cset "name='MultiMedia3 Mixer VA_CODEC_DMA_TX_0' 1" ++ ] ++ ++ Include.wsae.File "/codecs/wsa881x/DefaultEnableSeq.conf" ++ ++ DisableSequence [ ++ cset "name='WSA_CODEC_DMA_RX_0 Audio Mixer MultiMedia2' 0" ++ cset "name='MultiMedia3 Mixer VA_CODEC_DMA_TX_0' 0" ++ ] ++ ++ Value { ++ TQ "HiFi" ++ } ++} ++ ++SectionDevice."Speaker" { ++ Comment "Speaker playback" ++ ++ Include.lpasswsae.File "/codecs/lpass/wsa-macro/SpeakerEnableSeq.conf" ++ Include.wsae.File "/codecs/wsa881x/SpeakerEnableSeq.conf" ++ Include.wsad.File "/codecs/wsa881x/SpeakerDisableSeq.conf" ++ Include.lpasswsad.File "/codecs/lpass/wsa-macro/SpeakerDisableSeq.conf" ++ ++ Value { ++ PlaybackPriority 100 ++ PlaybackPCM "hw:${CardId},1" ++ } ++} ++ ++SectionDevice."Mic" { ++ Comment "Mic" ++ Include.lpassvad.File "/codecs/lpass/va-macro/DMIC0EnableSeq.conf" ++ Include.lpassvad.File "/codecs/lpass/va-macro/DMIC0DisableSeq.conf" ++ ++ Value { ++ CapturePriority 100 ++ CapturePCM "hw:${CardId},2" ++ } ++} +diff --git a/ucm2/Qualcomm/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf b/ucm2/Qualcomm/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf +new file mode 100644 +index 0000000..2fbca31 +--- /dev/null ++++ b/ucm2/Qualcomm/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf +@@ -0,0 +1,11 @@ ++Syntax 3 ++ ++SectionUseCase."HiFi" { ++ File "/Qualcomm/sm8250/HiFi.conf" ++ Comment "HiFi quality Music." ++} ++ ++SectionUseCase."HDMI" { ++ File "/Qualcomm/sm8250/HDMI.conf" ++ Comment "HDMI output." ++} +diff --git a/ucm2/conf.d/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf b/ucm2/conf.d/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf +new file mode 120000 +index 000000000000..9f551b74ebf2 +--- /dev/null ++++ b/ucm2/conf.d/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf +@@ -0,0 +1 @@ ++../../Qualcomm/sm8250/Qualcomm-RB5-WSA8815-Speakers-DMIC0.conf +\ No newline at end of file diff --git a/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bbappend b/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bbappend new file mode 100644 index 000000000..f2268c5bc --- /dev/null +++ b/dynamic-layers/backports-layer/recipes-multimedia/alsa/alsa-ucm-conf_1.2.4.bbappend @@ -0,0 +1,8 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" + +SRC_URI_append_qcom = "\ + file://0001-ucm2-Separate-the-configuration-lookups-hw-based-fro.patch \ + file://0001-ucm2-conf.d-add-symlinks-for-Qualcomm-cards.patch \ + file://0001-ucm2-codecs-lpass-add-codec-sequences-for-wsa-and-va.patch \ + file://0002-ucm2-add-support-to-for-Qualcomm-RB5-Platform.patch \ +" diff --git a/recipes-multimedia/alsa/alsa-ucm-conf_1.2.%.bbappend b/recipes-multimedia/alsa/alsa-ucm-conf_1.2.1.%.bbappend similarity index 100% rename from recipes-multimedia/alsa/alsa-ucm-conf_1.2.%.bbappend rename to recipes-multimedia/alsa/alsa-ucm-conf_1.2.1.%.bbappend