Merge ~mschiu77/ubuntu/+source/alsa-ucm-conf:ubuntu/noble-devel into ubuntu/+source/alsa-ucm-conf:ubuntu/devel

Proposed by Chris Chiu
Status: Needs review
Proposed branch: ~mschiu77/ubuntu/+source/alsa-ucm-conf:ubuntu/noble-devel
Merge into: ubuntu/+source/alsa-ucm-conf:ubuntu/devel
Diff against target: 2430 lines (+2266/-1) (has conflicts)
22 files modified
debian/changelog (+130/-0)
debian/control (+6/-1)
debian/patches/0001-acppdmmach-add-support-for-ACP-7.0.patch (+37/-0)
debian/patches/0001-sof-soundwire-Add-basic-support-for-cs42l43-s-speake.patch (+46/-0)
debian/patches/0001-sof-soundwire-Add-missing-match-for-cs42l43-speakers.patch (+28/-0)
debian/patches/0001-sof-soundwire-Change-map-control-names-to-make-them-.patch (+93/-0)
debian/patches/0001-sof-soundwire-Use-one-file-for-speaker-codec-initial.patch (+415/-0)
debian/patches/0001-sof-soundwire-fix-rt1318-config-typo-in-rt1318spk-ma.patch (+23/-0)
debian/patches/0001-ucm-MediaTek-mt8395-evk-Add-HDMIRX-config.patch (+78/-0)
debian/patches/0001-ucm2-MediaTek-mt8390-evk-Add-alsa-ucm-support.patch (+254/-0)
debian/patches/0001-ucm2-conf.d-mt8370-evk-Fix-the-type-of-mt8370-evk.co.patch (+34/-0)
debian/patches/0001-ucm2-soundwire-add-rt713-SDCA-device.patch (+159/-0)
debian/patches/0002-sof-soundwire-Add-basic-support-for-basic-cs35l56-co.patch (+62/-0)
debian/patches/0002-sof-soundwire-Add-sequence-for-controlling-Mic-Mute-.patch (+53/-0)
debian/patches/0002-sof-soundwire-Add-support-for-cs42l43-cs35l56-bridge.patch (+95/-0)
debian/patches/0002-sof-soundwire-fix-rt1318-config-copy-n-paste-error-i.patch (+30/-0)
debian/patches/0002-ucm2-MediaTek-mt8395-evk-Add-alsa-ucm-support.patch (+243/-0)
debian/patches/0003-sof-soundwire-Add-basic-support-for-cs42l43.patch (+128/-0)
debian/patches/0003-sof-soundwire-rt1308-Fix-single-amp-configuration.patch (+36/-0)
debian/patches/0003-ucm2-MediaTek-mt8370-evk-Add-alsa-ucm-support.patch (+253/-0)
debian/patches/0004-sof-soundwire-rt1316-rt1318-fix-channel-selection-fo.patch (+44/-0)
debian/patches/series (+19/-0)
Conflict in debian/changelog
Conflict in debian/control
Reviewer Review Type Date Requested Status
Simon Quigley (community) git-only, not packaging Needs Resubmitting
git-ubuntu import Pending
Review via email: mp+476661@code.launchpad.net

Commit message

Added patch to fix missing digital speaker on Dell Tarako (LP: #2088403)

To post a comment you must log in.
Revision history for this message
Simon Quigley (tsimonq2) wrote :

Hi, could you please rebase this onto a Noble branch?

review: Needs Resubmitting (git-only, not packaging)

Unmerged commits

2503c3c... by Chris Chiu

1.2.10-1ubuntu5.3 (patches unapplied)

Imported using git-ubuntu import.

a72feeb... by Chris Chiu

1.2.10-1ubuntu5.2 (patches unapplied)

Imported using git-ubuntu import.

34ff806... by Chris Chiu

1.2.10-1ubuntu5.1 (patches unapplied)

Imported using git-ubuntu import.

5d58b19... by Julian Andres Klode

1.2.10-1ubuntu5 (patches unapplied)

Imported using git-ubuntu import.

d450035... by Steve Langasek

1.2.10-1ubuntu4 (patches unapplied)

Imported using git-ubuntu import.

b9ff197... by ethan.hsieh

changelog for 1.2.10-1ubuntu3

b1b9d7c... by ethan.hsieh

  * Dropped changes:
    - d/p/0001-Add-initial-support-for-MediaTek-mt8390-evk-and-mt83.patch
      - replace it with patches accepted by upstream
  * Added changes:
    - d/p/0001-ucm2-MediaTek-mt8390-evk-Add-alsa-ucm-support.patch
    - d/p/0002-ucm2-MediaTek-mt8395-evk-Add-alsa-ucm-support.patch
    - d/p/0003-ucm2-MediaTek-mt8370-evk-Add-alsa-ucm-support.patch
    - d/p/0001-ucm2-conf.d-mt8370-evk-Fix-the-type-of-mt8370-evk.co.patch
    - d/p/0001-ucm-MediaTek-mt8395-evk-Add-HDMIRX-config.patch
      - add supports for MediaTek mt8390-evk, mt8395-evk, and mt8370-evk.
      - fix a file type issue on the mt8370-evk config
      - add mt8395 HDMI RX support
        (LP: #2051199)

7988b7d... by Zhaoxuan Zhai

1.2.10-1ubuntu2 (patches unapplied)

Imported using git-ubuntu import.

db64b2e... by Christian Ehrhardt

changelog: 1.2.10-1ubuntu1 merge and LP: #2042902 fix

Signed-off-by: Christian Ehrhardt <email address hidden>

5239251... by Christian Ehrhardt

added headers and background info to d/p/0001-Add-initial-support-for-MediaTek-mt8390-evk-and-mt83.patch

Signed-off-by: Christian Ehrhardt <email address hidden>

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index 1c4a2c0..9e3d9e3 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,4 @@
6+<<<<<<< debian/changelog
7 alsa-ucm-conf (1.2.12-1) unstable; urgency=medium
8
9 * New upstream release.
10@@ -19,6 +20,109 @@ alsa-ucm-conf (1.2.11-1) unstable; urgency=medium
11 * Update copyright years.
12
13 -- Jordi Mallach <jordi@debian.org> Fri, 01 Mar 2024 11:28:05 +0100
14+=======
15+alsa-ucm-conf (1.2.10-1ubuntu5.3) noble; urgency=medium
16+
17+ * Added patch to fix missing digital speaker on Dell Tarako (LP: #2088403)
18+ - d/p/0001-sof-soundwire-Add-basic-support-for-cs42l43-s-speake.patch
19+
20+ -- Chris Chiu <chris.chiu@canonical.com> Fri, 15 Nov 2024 17:02:01 +0800
21+
22+alsa-ucm-conf (1.2.10-1ubuntu5.2) noble; urgency=medium
23+
24+ * Added changes:
25+ - d/p/0001-sof-soundwire-fix-rt1318-config-typo-in-rt1318spk-ma.patch
26+ - d/p/0002-sof-soundwire-fix-rt1318-config-copy-n-paste-error-i.patch
27+ - d/p/0003-sof-soundwire-rt1308-Fix-single-amp-configuration.patch
28+ - d/p/0004-sof-soundwire-rt1316-rt1318-fix-channel-selection-fo.patch
29+ - d/p/0001-sof-soundwire-Add-missing-match-for-cs42l43-speakers.patch
30+ - d/p/0002-sof-soundwire-Add-support-for-cs42l43-cs35l56-bridge.patch
31+ - d/p/0001-sof-soundwire-Change-map-control-names-to-make-them-.patch
32+ - d/p/0002-sof-soundwire-Add-sequence-for-controlling-Mic-Mute-.patch
33+ - Fix the regression on rt13xx which use only one file for speakers
34+ - Add missing configuration for CS41L43+CS35L56
35+ - Fix control names for speakers/mic on CS42L43+CS35L56
36+ (LP: #2069760)
37+ - d/p/0001-acppdmmach-add-support-for-ACP-7.0.patch
38+ - Backport the support of AMD micmute LED of acppdmmach.
39+ (LP: #2085067)
40+
41+ -- Chris Chiu <chris.chiu@canonical.com> Tue, 12 Nov 2024 10:26:07 +0800
42+
43+alsa-ucm-conf (1.2.10-1ubuntu5.1) noble; urgency=medium
44+
45+ * Added changes:
46+ - d/p/0001-sof-soundwire-Use-one-file-for-speaker-codec-initial.patch
47+ - d/p/0002-sof-soundwire-Add-basic-support-for-basic-cs35l56-co.patch
48+ - d/p/0003-sof-soundwire-Add-basic-support-for-cs42l43.patch
49+ - Soundwire support for CS42L43 and CS35L56 on Intel MTL
50+ (LP: #2069760)
51+
52+ -- Chris Chiu <chris.chiu@canonical.com> Tue, 02 Jul 2024 22:32:17 +0800
53+
54+alsa-ucm-conf (1.2.10-1ubuntu5) noble; urgency=medium
55+
56+ * Actual rebuild against libasound2t64; the dependency is hardcoded.
57+
58+ -- Julian Andres Klode <juliank@ubuntu.com> Fri, 22 Mar 2024 17:09:13 +0100
59+
60+alsa-ucm-conf (1.2.10-1ubuntu4) noble; urgency=medium
61+
62+ * No-change rebuild against libasound2t64
63+
64+ -- Steve Langasek <steve.langasek@ubuntu.com> Tue, 12 Mar 2024 06:28:57 +0000
65+
66+alsa-ucm-conf (1.2.10-1ubuntu3) noble; urgency=medium
67+
68+ * Dropped changes:
69+ - d/p/0001-Add-initial-support-for-MediaTek-mt8390-evk-and-mt83.patch
70+ - replace it with patches accepted by upstream
71+ * Added changes:
72+ - d/p/0001-ucm2-MediaTek-mt8390-evk-Add-alsa-ucm-support.patch
73+ - d/p/0002-ucm2-MediaTek-mt8395-evk-Add-alsa-ucm-support.patch
74+ - d/p/0003-ucm2-MediaTek-mt8370-evk-Add-alsa-ucm-support.patch
75+ - d/p/0001-ucm2-conf.d-mt8370-evk-Fix-the-type-of-mt8370-evk.co.patch
76+ - d/p/0001-ucm-MediaTek-mt8395-evk-Add-HDMIRX-config.patch
77+ - add supports for MediaTek mt8390-evk, mt8395-evk, and mt8370-evk.
78+ - fix a file type issue on the mt8370-evk config
79+ - add mt8395 HDMI RX support
80+ (LP: #2051199)
81+
82+ -- Ethan Hsieh <ethan.hsieh@canonical.com> Thu, 25 Jan 2024 13:29:18 +0800
83+
84+alsa-ucm-conf (1.2.10-1ubuntu2) noble; urgency=medium
85+
86+ * d/p/0001-Add-initial-support-for-MediaTek-Genio-boards.patch
87+ - fix typo to make the patch work on mtk8390-evk (lp: #2049327)
88+
89+ -- Zhaoxuan Zhai <zhai.zhaoxuan@canonical.com> Tue, 16 Jan 2024 11:23:07 +0100
90+
91+alsa-ucm-conf (1.2.10-1ubuntu1) noble; urgency=medium
92+
93+ * Merge with Debian unstable. Remaining changes:
94+ - d/p/0001-Add-initial-support-for-MediaTek-mt8390-evk-and-mt83.patch
95+ - add initial support for MediaTek mt8390-evk and mt8395-evk
96+ (LP: 2000228)
97+ * Dropped changes [all in upstream 1.2.10]:
98+ - d/p/0001-ucm2-Qualcomm-sc8280xp-fix-device-numbers.patch
99+ - ucm2: Qualcomm: sc8280xp: fix device numbers
100+ (LP: 2036731)
101+ - d/p/0001-acp63-add-initial-support-for-AMD-Pink-Sardine-ACP63.patch
102+ d/p/0002-acp63.conf-use-symbolic-link.patch
103+ d/p/0003-acp62-add-initial-support-for-AMD-ACP-v6.2-RPL.patch
104+ - Backport patches to add support AMD ACP RPL and Pink Sardine.
105+ (LP: 2025353)
106+ * Added changes
107+ - added headers and background info to
108+ d/p/0001-Add-initial-support-for-MediaTek-mt8390-evk-and-mt83.patch
109+
110+ [Artur Pak]
111+ * d/p/0001-ucm2-soundwire-add-rt713-SDCA-device.patch:
112+ - Backport patch to add rt713 SDCA device
113+ (LP: #2042902)
114+
115+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Fri, 24 Nov 2023 09:12:05 +0100
116+>>>>>>> debian/changelog
117
118 alsa-ucm-conf (1.2.10-1) unstable; urgency=medium
119
120@@ -26,6 +130,32 @@ alsa-ucm-conf (1.2.10-1) unstable; urgency=medium
121
122 -- Jordi Mallach <jordi@debian.org> Wed, 13 Sep 2023 01:12:05 +0200
123
124+alsa-ucm-conf (1.2.9-1ubuntu3) mantic; urgency=medium
125+
126+ * d/p/0001-ucm2-Qualcomm-sc8280xp-fix-device-numbers.patch
127+ - ucm2: Qualcomm: sc8280xp: fix device numbers
128+ (LP: #2036731)
129+
130+ -- Juerg Haefliger <juerg.haefliger@canonical.com> Wed, 20 Sep 2023 13:37:38 +0200
131+
132+alsa-ucm-conf (1.2.9-1ubuntu2) mantic; urgency=medium
133+
134+ * d/p/0001-Add-initial-support-for-MediaTek-mt8390-evk-and-mt83.patch
135+ - add initial support for MediaTek mt8390-evk and mt8395-evk
136+ (LP: #2000228)
137+
138+ -- Ethan Hsieh <ethan.hsieh@canonical.com> Mon, 18 Sep 2023 16:13:56 +0800
139+
140+alsa-ucm-conf (1.2.9-1ubuntu1) mantic; urgency=medium
141+
142+ * d/p/0001-acp63-add-initial-support-for-AMD-Pink-Sardine-ACP63.patch
143+ d/p/0002-acp63.conf-use-symbolic-link.patch
144+ d/p/0003-acp62-add-initial-support-for-AMD-ACP-v6.2-RPL.patch
145+ - Backport patches to add support AMD ACP RPL and Pink Sardine.
146+ (LP: #2025353)
147+
148+ -- Juerg Haefliger <juerg.haefliger@canonical.com> Thu, 06 Jul 2023 15:29:27 +0200
149+
150 alsa-ucm-conf (1.2.9-1) unstable; urgency=medium
151
152 * New upstream release.
153diff --git a/debian/control b/debian/control
154index 6e789bd..570ed57 100644
155--- a/debian/control
156+++ b/debian/control
157@@ -1,7 +1,8 @@
158 Source: alsa-ucm-conf
159 Section: libs
160 Priority: optional
161-Maintainer: Debian ALSA Maintainers <pkg-alsa-devel@lists.alioth.debian.org>
162+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
163+XSBC-Original-Maintainer: Debian ALSA Maintainers <pkg-alsa-devel@lists.alioth.debian.org>
164 Uploaders: Jordi Mallach <jordi@debian.org>,
165 Elimar Riesebieter <riesebie@lxtec.de>,
166 Luke Yelavich <themuso@ubuntu.com>
167@@ -15,7 +16,11 @@ Rules-Requires-Root: no
168 Package: alsa-ucm-conf
169 Architecture: all
170 Multi-Arch: foreign
171+<<<<<<< debian/control
172 Depends: ${misc:Depends}, libasound2t64
173+=======
174+Depends: ${misc:Depends}, libasound2t64 (>= 1.2.7)
175+>>>>>>> debian/control
176 Description: ALSA Use Case Manager configuration files
177 This package contains ALSA Use Case Manager configuration of audio
178 input/output names and routing for specific audio hardware. They can be
179diff --git a/debian/patches/0001-acppdmmach-add-support-for-ACP-7.0.patch b/debian/patches/0001-acppdmmach-add-support-for-ACP-7.0.patch
180new file mode 100644
181index 0000000..049497f
182--- /dev/null
183+++ b/debian/patches/0001-acppdmmach-add-support-for-ACP-7.0.patch
184@@ -0,0 +1,37 @@
185+From b2358f24a93d5a07b5bf7c35f0d76676dc85869c Mon Sep 17 00:00:00 2001
186+From: Mario Limonciello <mario.limonciello@amd.com>
187+Date: Thu, 17 Oct 2024 11:44:20 -0500
188+Subject: [PATCH] acppdmmach: add support for ACP 7.0
189+
190+Starting with ACP 7.0 there is a generic 'acppdmmach' driver that
191+will be utilized.
192+
193+Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/452
194+Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
195+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
196+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/b2358f24a93d5a07b5bf7c35f0d76676dc85869c
197+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2085067
198+Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
199+---
200+ ucm2/HDA/HDA.conf | 2 +-
201+ ucm2/conf.d/acp-pdm-mach/acp-pdm-mach.conf | 1 +
202+ 2 files changed, 2 insertions(+), 1 deletion(-)
203+ create mode 120000 ucm2/conf.d/acp-pdm-mach/acp-pdm-mach.conf
204+
205+--- a/ucm2/HDA/HDA.conf
206++++ b/ucm2/HDA/HDA.conf
207+@@ -3,7 +3,7 @@
208+ Define.Use "" # a non-empty string to use UCM configuration for HDA devices
209+ Define.Done "" # a non-empty string to skip the end error
210+
211+-Define.AcpCardId "$${find-card:field=name,return=id,regex='^acp(|6[23x])$'}"
212++Define.AcpCardId "$${find-card:field=name,return=id,regex='^acp(|6[23x]|-pdm-mach)$'}"
213+ Define.DeviceMic "Mic"
214+
215+ If.dualcodec {
216+--- /dev/null
217++++ b/ucm2/conf.d/acp-pdm-mach/acp-pdm-mach.conf
218+@@ -0,0 +1,3 @@
219++Syntax 3
220++
221++Include.linked.File "/common/linked.conf"
222diff --git a/debian/patches/0001-sof-soundwire-Add-basic-support-for-cs42l43-s-speake.patch b/debian/patches/0001-sof-soundwire-Add-basic-support-for-cs42l43-s-speake.patch
223new file mode 100644
224index 0000000..bbbbe4c
225--- /dev/null
226+++ b/debian/patches/0001-sof-soundwire-Add-basic-support-for-cs42l43-s-speake.patch
227@@ -0,0 +1,46 @@
228+From: Charles Keepax <ckeepax@opensource.cirrus.com>
229+Date: Tue, 23 Apr 2024 16:43:05 +0100
230+Subject: [PATCH] sof-soundwire: Add basic support for cs42l43's speaker
231+
232+Previous support was added for the mics and headset on cs42l43, expand
233+this support with additional configuration for the speaker output.
234+
235+Link: https://lore.kernel.org/alsa-devel/20240423154305.2782347-1-ckeepax@opensource.cirrus.com/
236+Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
237+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
238+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/035d9206cffdf7942352d2daf3c34dde491c01dc.patch
239+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2088403
240+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
241+---
242+ ucm2/sof-soundwire/cs42l43-spk.conf | 25 +++++++++++++++++++++++++
243+ 1 file changed, 25 insertions(+)
244+ create mode 100644 ucm2/sof-soundwire/cs42l43-spk.conf
245+
246+--- /dev/null
247++++ b/ucm2/sof-soundwire/cs42l43-spk.conf
248+@@ -0,0 +1,25 @@
249++# Use case Configuration for sof-soundwire card
250++
251++SectionDevice."Speaker" {
252++ Comment "Speaker"
253++
254++ ConflictingDevice [
255++ "Headphones"
256++ ]
257++
258++ EnableSequence [
259++ cset "name='cs42l43 Speaker L Input 1' 'DP5RX1'"
260++ cset "name='cs42l43 Speaker R Input 1' 'DP5RX2'"
261++ ]
262++
263++ DisableSequence [
264++ cset "name='cs42l43 Speaker L Input 1' 'None'"
265++ cset "name='cs42l43 Speaker R Input 1' 'None'"
266++ ]
267++
268++ Value {
269++ PlaybackPriority 100
270++ PlaybackPCM "hw:${CardId},0"
271++ PlaybackMixerElem "cs42l43 Speaker Digital"
272++ }
273++}
274diff --git a/debian/patches/0001-sof-soundwire-Add-missing-match-for-cs42l43-speakers.patch b/debian/patches/0001-sof-soundwire-Add-missing-match-for-cs42l43-speakers.patch
275new file mode 100644
276index 0000000..ebfe89a
277--- /dev/null
278+++ b/debian/patches/0001-sof-soundwire-Add-missing-match-for-cs42l43-speakers.patch
279@@ -0,0 +1,28 @@
280+From: Charles Keepax <ckeepax@opensource.cirrus.com>
281+Date: Mon, 8 Jul 2024 12:59:18 +0100
282+Subject: sof-soundwire: Add missing match for cs42l43 speakers
283+
284+The cs42l43 reports as cs42l43-spk in the speaker case, the regex in
285+sof-soundwire needs updated to recognise that.
286+
287+Fixes: 035d9206cffd ("sof-soundwire: Add basic support for cs42l43's speaker")
288+Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
289+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
290+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commits/d8aea84bebaae416c530a2d448f5e3758809c09f
291+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
292+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
293+---
294+ ucm2/sof-soundwire/sof-soundwire.conf | 2 +-
295+ 1 file changed, 1 insertion(+), 1 deletion(-)
296+
297+--- a/ucm2/sof-soundwire/sof-soundwire.conf
298++++ b/ucm2/sof-soundwire/sof-soundwire.conf
299+@@ -19,7 +19,7 @@
300+
301+ DefineRegex {
302+ SpeakerCodec {
303+- Regex " spk:([a-z0-9]+(-sdca)?)"
304++ Regex " spk:([a-z0-9]+((-sdca)|(-spk))?)"
305+ String "${CardComponents}"
306+ }
307+ SpeakerChannels {
308diff --git a/debian/patches/0001-sof-soundwire-Change-map-control-names-to-make-them-.patch b/debian/patches/0001-sof-soundwire-Change-map-control-names-to-make-them-.patch
309new file mode 100644
310index 0000000..7b89176
311--- /dev/null
312+++ b/debian/patches/0001-sof-soundwire-Change-map-control-names-to-make-them-.patch
313@@ -0,0 +1,93 @@
314+From: Maciej Strozek <mstrozek@opensource.cirrus.com>
315+Date: Thu, 17 Oct 2024 13:20:26 +0100
316+Subject: sof-soundwire: Change map control names to make them unique and user
317+ friendly
318+
319+Both 'Speaker Digital' and 'cs42l43 PDM2' names were found in other alsa
320+controls, confusing the MixerElems paths. Make them unique to avoid errors for
321+hardware mutes. Also add 'Capture' string into microphone controls to make
322+them work properly.
323+
324+Link: https://lore.kernel.org/alsa-devel/20241017122027.1207373-1-mstrozek@opensource.cirrus.com/
325+Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
326+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
327+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commits/9864d624b27e3779d958138561e48f59287a124a
328+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
329+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
330+---
331+ ucm2/codecs/cs42l43/init.conf | 10 ++++++++--
332+ ucm2/sof-soundwire/cs35l56-bridge.conf | 6 +++---
333+ ucm2/sof-soundwire/cs42l43-dmic.conf | 2 +-
334+ ucm2/sof-soundwire/cs42l43.conf | 3 ++-
335+ 4 files changed, 14 insertions(+), 7 deletions(-)
336+
337+--- a/ucm2/codecs/cs42l43/init.conf
338++++ b/ucm2/codecs/cs42l43/init.conf
339+@@ -2,13 +2,19 @@
340+
341+ LibraryConfig.remap.Config {
342+ ctl.default.map {
343+- "name='cs42l43 PDM2 Switch'" {
344++ "name='cs42l43 Microphone Capture Switch'" {
345+ "name='cs42l43 Decimator 3 Switch'".vindex.0 0
346+ "name='cs42l43 Decimator 4 Switch'".vindex.1 0
347+ }
348+- "name='cs42l43 PDM2 Volume'" {
349++ "name='cs42l43 Microphone Capture Volume'" {
350+ "name='cs42l43 Decimator 3 Volume'".vindex.0 0
351+ "name='cs42l43 Decimator 4 Volume'".vindex.1 0
352+ }
353++ "name='cs42l43 Headset Microphone Capture Switch'" {
354++ "name='cs42l43 Decimator 1 Switch'".vindex.0 0
355++ }
356++ "name='cs42l43 Headset Microphone Capture Volume'" {
357++ "name='cs42l43 Decimator 1 Volume'".vindex.0 0
358++ }
359+ }
360+ }
361+--- a/ucm2/sof-soundwire/cs35l56-bridge.conf
362++++ b/ucm2/sof-soundwire/cs35l56-bridge.conf
363+@@ -2,11 +2,11 @@
364+
365+ LibraryConfig.remap.Config {
366+ ctl.default.map {
367+- "name='Speaker Digital Switch'" {
368++ "name='Speaker Playback Switch'" {
369+ "name='AMPL Speaker Switch'".vindex.0 0
370+ "name='AMPR Speaker Switch'".vindex.1 0
371+ }
372+- "name='Speaker Digital Volume'" {
373++ "name='Speaker Playback Volume'" {
374+ "name='AMPL Speaker Volume'".vindex.0 0
375+ "name='AMPR Speaker Volume'".vindex.1 0
376+ }
377+@@ -56,6 +56,6 @@
378+ PlaybackPriority 100
379+ PlaybackPCM "hw:${CardId},0"
380+ PlaybackMixer "default:${CardId}"
381+- PlaybackMixerElem "Speaker Digital"
382++ PlaybackMixerElem "Speaker"
383+ }
384+ }
385+--- a/ucm2/sof-soundwire/cs42l43-dmic.conf
386++++ b/ucm2/sof-soundwire/cs42l43-dmic.conf
387+@@ -21,6 +21,6 @@
388+ CapturePriority 100
389+ CapturePCM "hw:${CardId},4"
390+ CaptureMixer "default:${CardId}"
391+- CaptureMixerElem "cs42l43 PDM2"
392++ CaptureMixerElem "cs42l43 Microphone"
393+ }
394+ }
395+--- a/ucm2/sof-soundwire/cs42l43.conf
396++++ b/ucm2/sof-soundwire/cs42l43.conf
397+@@ -40,7 +40,8 @@
398+ Value {
399+ CapturePriority 200
400+ CapturePCM "hw:${CardId},4"
401+- CaptureMixerElem "cs42l43 Decimator 1"
402++ CaptureMixer "default:${CardId}"
403++ CaptureMixerElem "cs42l43 Headset Microphone"
404+ JackControl "Headset Mic Jack"
405+ }
406+ }
407diff --git a/debian/patches/0001-sof-soundwire-Use-one-file-for-speaker-codec-initial.patch b/debian/patches/0001-sof-soundwire-Use-one-file-for-speaker-codec-initial.patch
408new file mode 100644
409index 0000000..f37f067
410--- /dev/null
411+++ b/debian/patches/0001-sof-soundwire-Use-one-file-for-speaker-codec-initial.patch
412@@ -0,0 +1,415 @@
413+From: Jaroslav Kysela <perex@perex.cz>
414+Date: Wed, 6 Dec 2023 15:53:38 +0100
415+Subject: [PATCH 1/3] sof-soundwire: Use one file for speaker codec
416+ initialization
417+
418+Use macros to minimize configuration blocks.
419+
420+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
421+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/c0a4df6037860b4e1dffb497e5a28258a351a0f8
422+Bug: https://github.com/alsa-project/alsa-ucm-conf/pull/370
423+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
424+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
425+---
426+ ucm2/sof-soundwire/HiFi.conf | 2 +-
427+ ucm2/sof-soundwire/rt1308-1.conf | 22 --------------
428+ ucm2/sof-soundwire/rt1308-2.conf | 29 ------------------
429+ ucm2/sof-soundwire/rt1308.conf | 46 ++++++++++++++++++++++++++++
430+ ucm2/sof-soundwire/rt1316-1.conf | 41 -------------------------
431+ ucm2/sof-soundwire/rt1316-2.conf | 51 -------------------------------
432+ ucm2/sof-soundwire/rt1316.conf | 65 ++++++++++++++++++++++++++++++++++++++++
433+ ucm2/sof-soundwire/rt1318-1.conf | 20 -------------
434+ ucm2/sof-soundwire/rt1318-2.conf | 25 ----------------
435+ ucm2/sof-soundwire/rt1318.conf | 44 +++++++++++++++++++++++++++
436+ 10 files changed, 156 insertions(+), 189 deletions(-)
437+ delete mode 100644 ucm2/sof-soundwire/rt1308-1.conf
438+ delete mode 100644 ucm2/sof-soundwire/rt1308-2.conf
439+ create mode 100644 ucm2/sof-soundwire/rt1308.conf
440+ delete mode 100644 ucm2/sof-soundwire/rt1316-1.conf
441+ delete mode 100644 ucm2/sof-soundwire/rt1316-2.conf
442+ create mode 100644 ucm2/sof-soundwire/rt1316.conf
443+ delete mode 100644 ucm2/sof-soundwire/rt1318-1.conf
444+ delete mode 100644 ucm2/sof-soundwire/rt1318-2.conf
445+ create mode 100644 ucm2/sof-soundwire/rt1318.conf
446+
447+--- a/ucm2/sof-soundwire/HiFi.conf
448++++ b/ucm2/sof-soundwire/HiFi.conf
449+@@ -13,7 +13,7 @@
450+ Type String
451+ Empty "${var:SpeakerCodec1}"
452+ }
453+- False.Include.spkdev.File "/sof-soundwire/${var:SpeakerCodec1}-${var:SpeakerAmps1}.conf"
454++ False.Include.spkdev.File "/sof-soundwire/${var:SpeakerCodec1}.conf"
455+ }
456+
457+ If.micdev {
458+--- a/ucm2/sof-soundwire/rt1308-1.conf
459++++ /dev/null
460+@@ -1,22 +0,0 @@
461+-# Use case Configuration for sof-soundwire card
462+-
463+-SectionDevice."Speaker" {
464+- Comment "Speaker"
465+-
466+- EnableSequence [
467+- cset "name='rt1308-1 DAC L Switch' 1"
468+- cset "name='rt1308-1 DAC R Switch' 1"
469+- cset "name='Speaker Switch' on"
470+- ]
471+-
472+- DisableSequence [
473+- cset "name='rt1308-1 DAC L Switch' 0"
474+- cset "name='rt1308-1 DAC R Switch' 0"
475+- cset "name='Speaker Switch' off"
476+- ]
477+-
478+- Value {
479+- PlaybackPriority 100
480+- PlaybackPCM "hw:${CardId},2"
481+- }
482+-}
483+--- a/ucm2/sof-soundwire/rt1308-2.conf
484++++ /dev/null
485+@@ -1,29 +0,0 @@
486+-# Use case Configuration for sof-soundwire card
487+-
488+-SectionDevice."Speaker" {
489+- Comment "Speaker"
490+-
491+- EnableSequence [
492+- cset "name='rt1308-1 RX Channel Select' LL"
493+- cset "name='rt1308-2 RX Channel Select' RR"
494+-
495+- cset "name='rt1308-1 DAC L Switch' 1"
496+- cset "name='rt1308-1 DAC R Switch' 1"
497+- cset "name='rt1308-2 DAC L Switch' 1"
498+- cset "name='rt1308-2 DAC R Switch' 1"
499+- cset "name='Speaker Switch' on"
500+- ]
501+-
502+- DisableSequence [
503+- cset "name='rt1308-1 DAC L Switch' 0"
504+- cset "name='rt1308-1 DAC R Switch' 0"
505+- cset "name='rt1308-2 DAC L Switch' 0"
506+- cset "name='rt1308-2 DAC R Switch' 0"
507+- cset "name='Speaker Switch' off"
508+- ]
509+-
510+- Value {
511+- PlaybackPriority 100
512+- PlaybackPCM "hw:${CardId},2"
513+- }
514+-}
515+--- /dev/null
516++++ b/ucm2/sof-soundwire/rt1308.conf
517+@@ -0,0 +1,46 @@
518++# Use case Configuration for sof-soundwire card
519++
520++#
521++# Arguments:
522++# ForAmps - regex filter for var:SpeakerAmps
523++# Amp - amplifier number (1,2 etc.)
524++# Sel - channel selection (LR LL RL RR)
525++#
526++DefineMacro.rt1308spk.If.0 {
527++ Condition {
528++ Type RegexMatch
529++ Regex "${var:__ForAmps}"
530++ String "${var:SpeakerAmps}"
531++ }
532++ True {
533++ EnableSequence [
534++ cset "name='rt1308-${var:__Amp} RX Channel Select' ${var:__Sel}"
535++ cset "name='rt1308-${var:__Amp} DAC L Switch' 1"
536++ cset "name='rt1308-${var:__Amp} DAC R Switch' 1"
537++ ]
538++ DisableSequence [
539++ cset "name='rt1308-${var:__Amp} DAC L Switch' 0"
540++ cset "name='rt1308-${var:__Amp} DAC R Switch' 0"
541++ ]
542++ }
543++}
544++
545++SectionDevice."Speaker" {
546++ Comment "Speaker"
547++
548++ Macro.num1.rt1308spk { ForAmps "[12]" Amp 1 Sel LL }
549++ Macro.num2.rt1308spk { ForAmps "2" Amp 2 Sel RR }
550++
551++ EnableSequence [
552++ cset "name='Speaker Switch' on"
553++ ]
554++
555++ DisableSequence [
556++ cset "name='Speaker Switch' off"
557++ ]
558++
559++ Value {
560++ PlaybackPriority 100
561++ PlaybackPCM "hw:${CardId},2"
562++ }
563++}
564+--- a/ucm2/sof-soundwire/rt1316-1.conf
565++++ /dev/null
566+@@ -1,41 +0,0 @@
567+-# Use case Configuration for sof-soundwire card
568+-
569+-SectionDevice."Speaker" {
570+- Comment "Speaker"
571+-
572+- If.lrswitch {
573+- Condition {
574+- Type ControlExists
575+- Control "name='rt1316-1 DAC L Switch'"
576+- }
577+- True {
578+- EnableSequence [
579+- cset "name='rt1316-1 DAC L Switch' 1"
580+- cset "name='rt1316-1 DAC R Switch' 1"
581+- cset "name='Speaker Switch' on"
582+- ]
583+-
584+- DisableSequence [
585+- cset "name='rt1316-1 DAC L Switch' 0"
586+- cset "name='rt1316-1 DAC R Switch' 0"
587+- cset "name='Speaker Switch' off"
588+- ]
589+- }
590+- False {
591+- EnableSequence [
592+- cset "name='rt1316-1 DAC Switch' 1"
593+- cset "name='Speaker Switch' on"
594+- ]
595+-
596+- DisableSequence [
597+- cset "name='rt1316-1 DAC Switch' 0"
598+- cset "name='Speaker Switch' off"
599+- ]
600+- }
601+- }
602+-
603+- Value {
604+- PlaybackPriority 100
605+- PlaybackPCM "hw:${CardId},2"
606+- }
607+-}
608+--- a/ucm2/sof-soundwire/rt1316-2.conf
609++++ /dev/null
610+@@ -1,51 +0,0 @@
611+-# Use case Configuration for sof-soundwire card
612+-
613+-SectionDevice."Speaker" {
614+- Comment "Speaker"
615+-
616+- If.lrswitch {
617+- Condition {
618+- Type ControlExists
619+- Control "name='rt1316-1 DAC L Switch'"
620+- }
621+- True {
622+- EnableSequence [
623+- cset "name='rt1316-1 RX Channel Select' L,L"
624+- cset "name='rt1316-2 RX Channel Select' R,R"
625+- cset "name='rt1316-1 DAC L Switch' 1"
626+- cset "name='rt1316-1 DAC R Switch' 1"
627+- cset "name='rt1316-2 DAC L Switch' 1"
628+- cset "name='rt1316-2 DAC R Switch' 1"
629+- cset "name='Speaker Switch' on"
630+- ]
631+-
632+- DisableSequence [
633+- cset "name='rt1316-1 DAC L Switch' 0"
634+- cset "name='rt1316-1 DAC R Switch' 0"
635+- cset "name='rt1316-2 DAC L Switch' 0"
636+- cset "name='rt1316-2 DAC R Switch' 0"
637+- cset "name='Speaker Switch' off"
638+- ]
639+- }
640+- False {
641+- EnableSequence [
642+- cset "name='rt1316-1 RX Channel Select' L,L"
643+- cset "name='rt1316-2 RX Channel Select' R,R"
644+- cset "name='rt1316-1 DAC Switch' 1"
645+- cset "name='rt1316-2 DAC Switch' 1"
646+- cset "name='Speaker Switch' on"
647+- ]
648+-
649+- DisableSequence [
650+- cset "name='rt1316-1 DAC Switch' 0"
651+- cset "name='rt1316-2 DAC Switch' 0"
652+- cset "name='Speaker Switch' off"
653+- ]
654+- }
655+- }
656+-
657+- Value {
658+- PlaybackPriority 100
659+- PlaybackPCM "hw:${CardId},2"
660+- }
661+-}
662+--- /dev/null
663++++ b/ucm2/sof-soundwire/rt1316.conf
664+@@ -0,0 +1,65 @@
665++# Use case Configuration for sof-soundwire card
666++
667++#
668++# Arguments:
669++# ForAmps - regex filter for var:SpeakerAmps
670++# Amp - amplifier number (1,2 etc.)
671++# Sel - channel selection (L,R L,L L,R L,L+R R,L R,R R,L+R L+R,L L+R,R L+R,L+R)
672++#
673++DefineMacro.rt1316spk.If.0 {
674++ Condition {
675++ Type RegexMatch
676++ Regex "${var:__ForAmps}"
677++ String "${var:SpeakerAmps}"
678++ }
679++ True {
680++ EnableSequence [
681++ cset "name='rt1316-${var:__Amp} RX Channel Select' ${var:__Sel}"
682++ ]
683++ If.lrswitch {
684++ Condition {
685++ Type ControlExists
686++ Control "name='rt1316-${var:__Amp} DAC L Switch'"
687++ }
688++ True {
689++ EnableSequence [
690++ cset "name='rt1316-${var:__Amp} DAC L Switch' 1"
691++ cset "name='rt1316-${var:__Amp} DAC R Switch' 1"
692++ ]
693++ DisableSequence [
694++ cset "name='rt1316-${var:__Amp} DAC L Switch' 0"
695++ cset "name='rt1316-${var:__Amp} DAC R Switch' 0"
696++ ]
697++ }
698++ False {
699++ EnableSequence [
700++ cset "name='rt1316-${var:__Amp} DAC Switch' 1"
701++ ]
702++
703++ DisableSequence [
704++ cset "name='rt1316-${var:__Amp} DAC Switch' 0"
705++ ]
706++ }
707++ }
708++ }
709++}
710++
711++SectionDevice."Speaker" {
712++ Comment "Speaker"
713++
714++ Macro.num1.rt1316spk { ForAmps "[12]" Amp 1 Sel "L,L" }
715++ Macro.num2.rt1316spk { ForAmps "2" Amp 2 Sel "R,R" }
716++
717++ EnableSequence [
718++ cset "name='Speaker Switch' on"
719++ ]
720++
721++ DisableSequence [
722++ cset "name='Speaker Switch' off"
723++ ]
724++
725++ Value {
726++ PlaybackPriority 100
727++ PlaybackPCM "hw:${CardId},2"
728++ }
729++}
730+--- a/ucm2/sof-soundwire/rt1318-1.conf
731++++ /dev/null
732+@@ -1,20 +0,0 @@
733+-# Use case Configuration for sof-soundwire card
734+-
735+-SectionDevice."Speaker" {
736+- Comment "Speaker"
737+-
738+- EnableSequence [
739+- cset "name='rt1318-1 DAC Switch' 1"
740+- cset "name='Speaker Switch' on"
741+- ]
742+-
743+- DisableSequence [
744+- cset "name='rt1318-1 DAC Switch' 0"
745+- cset "name='Speaker Switch' off"
746+- ]
747+-
748+- Value {
749+- PlaybackPriority 100
750+- PlaybackPCM "hw:${CardId},2"
751+- }
752+-}
753+--- a/ucm2/sof-soundwire/rt1318-2.conf
754++++ /dev/null
755+@@ -1,25 +0,0 @@
756+-# Use case Configuration for sof-soundwire card
757+-
758+-SectionDevice."Speaker" {
759+- Comment "Speaker"
760+-
761+- EnableSequence [
762+- cset "name='rt1318-1 RX Channel Select' L,L"
763+- cset "name='rt1318-2 RX Channel Select' R,R"
764+-
765+- cset "name='rt1318-1 DAC Switch' 1"
766+- cset "name='rt1318-2 DAC Switch' 1"
767+- cset "name='Speaker Switch' on"
768+- ]
769+-
770+- DisableSequence [
771+- cset "name='rt1318-1 DAC Switch' 0"
772+- cset "name='rt1318-2 DAC Switch' 0"
773+- cset "name='Speaker Switch' off"
774+- ]
775+-
776+- Value {
777+- PlaybackPriority 100
778+- PlaybackPCM "hw:${CardId},2"
779+- }
780+-}
781+--- /dev/null
782++++ b/ucm2/sof-soundwire/rt1318.conf
783+@@ -0,0 +1,44 @@
784++# Use case Configuration for sof-soundwire card
785++
786++#
787++# Arguments:
788++# ForAmps - regex filter for var:SpeakerAmps
789++# Amp - amplifier number (1,2 etc.)
790++# Sel - channel selection (L,R L,L L,R L,L+R R,L R,R R,L+R L+R,L L+R,R L+R,L+R)
791++#
792++DefineMacro.rt1318spk.If.0 {
793++ Condition {
794++ Type RegexMatch
795++ Regex "${var:__RegEx}"
796++ String "${var:SpeakerAmps}"
797++ }
798++ True {
799++ EnableSequence [
800++ cset "name='rt1308-${var:__Amp} RX Channel Select' ${var:__Sel}"
801++ cset "name='rt1308-${var:__Amp} DAC Switch' 1"
802++ ]
803++ DisableSequence [
804++ cset "name='rt1308-${var:__Amp} DAC Switch' 0"
805++ ]
806++ }
807++}
808++
809++SectionDevice."Speaker" {
810++ Comment "Speaker"
811++
812++ Macro.num1.rt1318spk { ForAmps "[12]" Amp 1 Sel "L,L" }
813++ Macro.num2.rt1318spk { ForAmps "2" Amp 2 Sel "R,R" }
814++
815++ EnableSequence [
816++ cset "name='Speaker Switch' on"
817++ ]
818++
819++ DisableSequence [
820++ cset "name='Speaker Switch' off"
821++ ]
822++
823++ Value {
824++ PlaybackPriority 100
825++ PlaybackPCM "hw:${CardId},2"
826++ }
827++}
828diff --git a/debian/patches/0001-sof-soundwire-fix-rt1318-config-typo-in-rt1318spk-ma.patch b/debian/patches/0001-sof-soundwire-fix-rt1318-config-typo-in-rt1318spk-ma.patch
829new file mode 100644
830index 0000000..1c60872
831--- /dev/null
832+++ b/debian/patches/0001-sof-soundwire-fix-rt1318-config-typo-in-rt1318spk-ma.patch
833@@ -0,0 +1,23 @@
834+From: Jaroslav Kysela <perex@perex.cz>
835+Date: Mon, 11 Mar 2024 11:06:15 +0100
836+Subject: sof-soundwire: fix rt1318 config typo in rt1318spk macro
837+
838+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
839+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/7e22b7c214d346bd156131f3e6c6a5900bbf116d
840+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
841+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
842+---
843+ ucm2/sof-soundwire/rt1318.conf | 2 +-
844+ 1 file changed, 1 insertion(+), 1 deletion(-)
845+
846+--- a/ucm2/sof-soundwire/rt1318.conf
847++++ b/ucm2/sof-soundwire/rt1318.conf
848+@@ -9,7 +9,7 @@
849+ DefineMacro.rt1318spk.If.0 {
850+ Condition {
851+ Type RegexMatch
852+- Regex "${var:__RegEx}"
853++ Regex "${var:__ForAmps}"
854+ String "${var:SpeakerAmps}"
855+ }
856+ True {
857diff --git a/debian/patches/0001-ucm-MediaTek-mt8395-evk-Add-HDMIRX-config.patch b/debian/patches/0001-ucm-MediaTek-mt8395-evk-Add-HDMIRX-config.patch
858new file mode 100644
859index 0000000..1ec9814
860--- /dev/null
861+++ b/debian/patches/0001-ucm-MediaTek-mt8395-evk-Add-HDMIRX-config.patch
862@@ -0,0 +1,78 @@
863+From 1ab2d020d71a570f691fafbd341782fabb6569d1 Mon Sep 17 00:00:00 2001
864+From: Zoran Zhan <zoran.zhan@mediatek.com>
865+Date: Mon, 22 Jan 2024 17:52:05 +0800
866+Subject: [PATCH] ucm: MediaTek: mt8395-evk: Add HDMIRX config
867+
868+Add HDMI RX config and modify the priority value
869+of the capture devices.
870+
871+Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/389
872+Signed-off-by: Zoran Zhan <zoran.zhan@mediatek.com>
873+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
874+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/1ab2d020d71a570f691fafbd341782fabb6569d1
875+Bug: https://bugs.launchpad.net/ubuntu/+source/alsa-ucm-conf/+bug/2051199
876+---
877+ ucm2/MediaTek/mt8395-evk/HiFi.conf | 15 ++++++++++++---
878+ ucm2/MediaTek/mt8395-evk/mt8395-evk.conf | 1 +
879+ 2 files changed, 13 insertions(+), 3 deletions(-)
880+
881+diff --git a/ucm2/MediaTek/mt8395-evk/HiFi.conf b/ucm2/MediaTek/mt8395-evk/HiFi.conf
882+index 81e4423..5c25cfb 100644
883+--- a/ucm2/MediaTek/mt8395-evk/HiFi.conf
884++++ b/ucm2/MediaTek/mt8395-evk/HiFi.conf
885+@@ -34,6 +34,15 @@ SectionDevice."HDMI2" {
886+ ]
887+ }
888+
889++SectionDevice."HDMI3" {
890++ Comment "HDMI RX"
891++
892++ Value {
893++ CapturePriority 200
894++ CapturePCM "hw:${CardId},7"
895++ }
896++}
897++
898+ SectionDevice."Speaker" {
899+ Comment "Lineout speaker"
900+
901+@@ -90,7 +99,7 @@ SectionDevice."Headset" {
902+ ]
903+
904+ Value {
905+- CapturePriority 400
906++ CapturePriority 500
907+ CaptureChannels 3
908+ CapturePCM "hw:${CardId},15"
909+ }
910+@@ -117,7 +126,7 @@ SectionDevice."Mic1" {
911+ ]
912+
913+ Value {
914+- CapturePriority 300
915++ CapturePriority 400
916+ CaptureChannels 3
917+ CapturePCM "hw:${CardId},15"
918+ }
919+@@ -127,7 +136,7 @@ SectionDevice."Mic2" {
920+ Comment "Digital microphone"
921+
922+ Value {
923+- CapturePriority 200
924++ CapturePriority 300
925+ CaptureChannels 2
926+ CapturePCM "hw:${CardId},14"
927+ }
928+diff --git a/ucm2/MediaTek/mt8395-evk/mt8395-evk.conf b/ucm2/MediaTek/mt8395-evk/mt8395-evk.conf
929+index 1957b69..b739ec0 100644
930+--- a/ucm2/MediaTek/mt8395-evk/mt8395-evk.conf
931++++ b/ucm2/MediaTek/mt8395-evk/mt8395-evk.conf
932+@@ -18,6 +18,7 @@ BootSequence [
933+ cset "name='PGA_3_Mux' AIN3"
934+ cset "name='HDMI_OUT_MUX' Connect"
935+ cset "name='DPTX_OUT_MUX' Disconnect"
936++ cset "name='MULTI_IN1_MUX' HDMI_RX_I2S"
937+ cset "name='Lineout Volume' 10"
938+ cset "name='Headset Volume' 2"
939+ cset "name='PGA1 Volume' 4"
940+--
941diff --git a/debian/patches/0001-ucm2-MediaTek-mt8390-evk-Add-alsa-ucm-support.patch b/debian/patches/0001-ucm2-MediaTek-mt8390-evk-Add-alsa-ucm-support.patch
942new file mode 100644
943index 0000000..2245480
944--- /dev/null
945+++ b/debian/patches/0001-ucm2-MediaTek-mt8390-evk-Add-alsa-ucm-support.patch
946@@ -0,0 +1,254 @@
947+From c5366bdff656092241225d2ad663c3e41b146f8b Mon Sep 17 00:00:00 2001
948+From: Zoran Zhan <zoran.zhan@mediatek.com>
949+Date: Thu, 1 Jun 2023 15:37:14 +0800
950+Subject: [PATCH 1/3] ucm2: MediaTek: mt8390-evk: Add alsa-ucm support
951+
952+Add alsa-ucm support for the MediaTek mt8390-evk platform.
953+
954+Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/321
955+Signed-off-by: Zoran Zhan <zoran.zhan@mediatek.com>
956+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
957+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/c5366bdff656092241225d2ad663c3e41b146f8b
958+Bug: https://bugs.launchpad.net/ubuntu/+source/alsa-ucm-conf/+bug/2051199
959+---
960+ ucm2/MediaTek/mt8390-evk/HiFi.conf | 165 +++++++++++++++++++++++
961+ ucm2/MediaTek/mt8390-evk/mt8390-evk.conf | 45 +++++++
962+ ucm2/conf.d/mt8390-evk/mt8390-evk.conf | 1 +
963+ 3 files changed, 211 insertions(+)
964+ create mode 100644 ucm2/MediaTek/mt8390-evk/HiFi.conf
965+ create mode 100644 ucm2/MediaTek/mt8390-evk/mt8390-evk.conf
966+ create mode 120000 ucm2/conf.d/mt8390-evk/mt8390-evk.conf
967+
968+diff --git a/ucm2/MediaTek/mt8390-evk/HiFi.conf b/ucm2/MediaTek/mt8390-evk/HiFi.conf
969+new file mode 100644
970+index 0000000..42a4582
971+--- /dev/null
972++++ b/ucm2/MediaTek/mt8390-evk/HiFi.conf
973+@@ -0,0 +1,165 @@
974++SectionDevice."HDMI1" {
975++ Comment "HDMI output"
976++
977++ Value {
978++ PlaybackPriority 300
979++ PlaybackPCM "hw:${CardId},5"
980++ JackControl "HDMI Jack"
981++ }
982++
983++ EnableSequence [
984++ cset "name='HDMI_OUT_MUX' 1"
985++ ]
986++
987++ DisableSequence [
988++ cset "name='HDMI_OUT_MUX' 0"
989++ ]
990++}
991++
992++SectionDevice."HDMI2" {
993++ Comment "DP output"
994++
995++ Value {
996++ PlaybackPriority 300
997++ PlaybackPCM "hw:${CardId},5"
998++ JackControl "DP Jack"
999++ }
1000++
1001++ EnableSequence [
1002++ cset "name='DPTX_OUT_MUX' 1"
1003++ ]
1004++
1005++ DisableSequence [
1006++ cset "name='DPTX_OUT_MUX' 0"
1007++ ]
1008++}
1009++
1010++SectionDevice."Speaker" {
1011++ Comment "Lineout speaker"
1012++
1013++ ConflictingDevice [
1014++ "Headphones"
1015++ ]
1016++
1017++ EnableSequence [
1018++ cset "name='LOL Mux' Playback_L_DAC"
1019++ ]
1020++
1021++ DisableSequence [
1022++ cset "name='LOL Mux' Open"
1023++ ]
1024++
1025++ Value {
1026++ PlaybackPriority 400
1027++ PlaybackChannels 2
1028++ PlaybackPCM "hw:${CardId},0"
1029++ }
1030++}
1031++
1032++SectionDevice."Headphones" {
1033++ Comment "Earphone speaker"
1034++
1035++ ConflictingDevice [
1036++ "Speaker"
1037++ ]
1038++
1039++ EnableSequence [
1040++ cset "name='HP Mux' Audio Playback"
1041++ ]
1042++
1043++ DisableSequence [
1044++ cset "name='HP Mux' Open"
1045++ ]
1046++
1047++ Value {
1048++ PlaybackPriority 500
1049++ PlaybackChannels 2
1050++ PlaybackPCM "hw:${CardId},0"
1051++ }
1052++}
1053++
1054++SectionDevice."Headset" {
1055++ Comment "Earphone microphone"
1056++
1057++ ConflictingDevice [
1058++ "Mic1"
1059++ ]
1060++
1061++ EnableSequence [
1062++ cset "name='PGA_L_Mux' AIN1"
1063++ ]
1064++
1065++ Value {
1066++ CapturePriority 500
1067++ CaptureChannels 1
1068++ CapturePCM "hw:${CardId},10"
1069++ }
1070++}
1071++
1072++SectionDevice."Mic1" {
1073++ Comment "Analog microphone"
1074++
1075++ ConflictingDevice [
1076++ "Headset"
1077++ ]
1078++
1079++ EnableSequence [
1080++ cset "name='PGA_L_Mux' AIN0"
1081++ ]
1082++
1083++ Value {
1084++ CapturePriority 400
1085++ CaptureChannels 1
1086++ CapturePCM "hw:${CardId},10"
1087++ }
1088++}
1089++
1090++SectionDevice."Mic2" {
1091++ Comment "Digital microphone"
1092++
1093++ Value {
1094++ CapturePriority 300
1095++ CaptureChannels 2
1096++ CapturePCM "hw:${CardId},14"
1097++ }
1098++}
1099++
1100++SectionDevice."Line1" {
1101++ Comment "PCM input"
1102++
1103++ Value {
1104++ CapturePriority 200
1105++ CaptureChannels 2
1106++ CapturePCM "hw:${CardId},8"
1107++ }
1108++}
1109++
1110++SectionDevice."Line2" {
1111++ Comment "PCM output"
1112++
1113++ Value {
1114++ PlaybackPriority 200
1115++ PlaybackChannels 2
1116++ PlaybackPCM "hw:${CardId},2"
1117++ }
1118++}
1119++
1120++SectionDevice."Line3" {
1121++ Comment "I2S input"
1122++
1123++ Value {
1124++ CapturePriority 100
1125++ CaptureChannels 2
1126++ CapturePCM "hw:${CardId},11"
1127++ }
1128++}
1129++
1130++SectionDevice."Line4" {
1131++ Comment "I2S output"
1132++
1133++ Value {
1134++ PlaybackPriority 100
1135++ PlaybackChannels 8
1136++ PlaybackPCM "hw:${CardId},6"
1137++ }
1138++}
1139+\ No newline at end of file
1140+diff --git a/ucm2/MediaTek/mt8390-evk/mt8390-evk.conf b/ucm2/MediaTek/mt8390-evk/mt8390-evk.conf
1141+new file mode 100644
1142+index 0000000..e2d56e2
1143+--- /dev/null
1144++++ b/ucm2/MediaTek/mt8390-evk/mt8390-evk.conf
1145+@@ -0,0 +1,45 @@
1146++Syntax 4
1147++
1148++SectionUseCase."HiFi" {
1149++ File "/MediaTek/mt8390-evk/HiFi.conf"
1150++ Comment "Play high quality music"
1151++}
1152++
1153++BootSequence [
1154++ cset "name='HP Mux' Audio Playback"
1155++ cset "name='LOL Mux' Open"
1156++ cset "name='MISO0_MUX' UL1_CH1"
1157++ cset "name='MISO1_MUX' UL1_CH1"
1158++ cset "name='ADC_L_Mux' Left Preamplifier"
1159++ cset "name='PGA_L_Mux' AIN1"
1160++ cset "name='HDMI_OUT_MUX' Connect"
1161++ cset "name='DPTX_OUT_MUX' Disconnect"
1162++ cset "name='ETDM_OUT1_Clock_Source' a1sys_a2sys"
1163++ cset "name='ETDM_OUT2_Clock_Source' a1sys_a2sys"
1164++ cset "name='ETDM_OUT3_Clock_Source' a1sys_a2sys"
1165++ cset "name='ETDM_IN1_Clock_Source' a1sys_a2sys"
1166++ cset "name='ETDM_IN2_Clock_Source' a1sys_a2sys"
1167++ cset "name='Lineout Volume' 10"
1168++ cset "name='Headset Volume' 2"
1169++ cset "name='PGA1 Volume' 4"
1170++ cset "name='O000 I000 Switch' on"
1171++ cset "name='O001 I001 Switch' on"
1172++ cset "name='O002 I004 Switch' on"
1173++ cset "name='O003 I006 Switch' on"
1174++ cset "name='O034 I168 Switch' on"
1175++ cset "name='O035 I169 Switch' on"
1176++ cset "name='O036 I012 Switch' on"
1177++ cset "name='O037 I013 Switch' on"
1178++ cset "name='O040 I002 Switch' on"
1179++ cset "name='O041 I003 Switch' on"
1180++ cset "name='O048 I022 Switch' on"
1181++ cset "name='O049 I023 Switch' on"
1182++ cset "name='O050 I024 Switch' on"
1183++ cset "name='O051 I025 Switch' on"
1184++ cset "name='O052 I026 Switch' on"
1185++ cset "name='O053 I027 Switch' on"
1186++ cset "name='O054 I028 Switch' on"
1187++ cset "name='O055 I029 Switch' on"
1188++ cset "name='O176 I070 Switch' on"
1189++ cset "name='O177 I071 Switch' on"
1190++]
1191+\ No newline at end of file
1192+diff --git a/ucm2/conf.d/mt8390-evk/mt8390-evk.conf b/ucm2/conf.d/mt8390-evk/mt8390-evk.conf
1193+new file mode 120000
1194+index 0000000..5b5c2b9
1195+--- /dev/null
1196++++ b/ucm2/conf.d/mt8390-evk/mt8390-evk.conf
1197+@@ -0,0 +1 @@
1198++../../MediaTek/mt8390-evk/mt8390-evk.conf
1199+\ No newline at end of file
1200+--
1201diff --git a/debian/patches/0001-ucm2-conf.d-mt8370-evk-Fix-the-type-of-mt8370-evk.co.patch b/debian/patches/0001-ucm2-conf.d-mt8370-evk-Fix-the-type-of-mt8370-evk.co.patch
1202new file mode 100644
1203index 0000000..f78a404
1204--- /dev/null
1205+++ b/debian/patches/0001-ucm2-conf.d-mt8370-evk-Fix-the-type-of-mt8370-evk.co.patch
1206@@ -0,0 +1,34 @@
1207+From d864e945ce4171fcaf6249bebec4f683fef0f5cf Mon Sep 17 00:00:00 2001
1208+From: Zoran Zhan <zoran.zhan@mediatek.com>
1209+Date: Mon, 22 Jan 2024 11:49:08 +0800
1210+Subject: [PATCH] ucm2: conf.d: mt8370-evk: Fix the type of mt8370-evk.conf
1211+
1212+Fix the type of mt8370-evk.conf at /ucm2/conf.d, to let the
1213+symbolic link can correctly point to the conf.
1214+
1215+Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/386
1216+Signed-off-by: Zoran Zhan <zoran.zhan@mediatek.com>
1217+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
1218+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/d864e945ce4171fcaf6249bebec4f683fef0f5cf
1219+Bug: https://bugs.launchpad.net/ubuntu/+source/alsa-ucm-conf/+bug/2051199
1220+---
1221+ ucm2/conf.d/mt8370-evk/mt8370-evk.conf | 2 +-
1222+ 1 file changed, 1 insertion(+), 1 deletion(-)
1223+ mode change 100644 => 120000 ucm2/conf.d/mt8370-evk/mt8370-evk.conf
1224+
1225+diff --git a/ucm2/conf.d/mt8370-evk/mt8370-evk.conf b/ucm2/conf.d/mt8370-evk/mt8370-evk.conf
1226+deleted file mode 100644
1227+index 6edb08f..0000000
1228+--- a/ucm2/conf.d/mt8370-evk/mt8370-evk.conf
1229++++ /dev/null
1230+@@ -1 +0,0 @@
1231+-../../MediaTek/mt8370-evk/mt8370-evk.conf
1232+diff --git a/ucm2/conf.d/mt8370-evk/mt8370-evk.conf b/ucm2/conf.d/mt8370-evk/mt8370-evk.conf
1233+new file mode 120000
1234+index 0000000..fed8ef1
1235+--- /dev/null
1236++++ b/ucm2/conf.d/mt8370-evk/mt8370-evk.conf
1237+@@ -0,0 +1 @@
1238++../../MediaTek/mt8370-evk/mt8370-evk.conf
1239+\ No newline at end of file
1240+--
1241diff --git a/debian/patches/0001-ucm2-soundwire-add-rt713-SDCA-device.patch b/debian/patches/0001-ucm2-soundwire-add-rt713-SDCA-device.patch
1242new file mode 100644
1243index 0000000..b4f1387
1244--- /dev/null
1245+++ b/debian/patches/0001-ucm2-soundwire-add-rt713-SDCA-device.patch
1246@@ -0,0 +1,159 @@
1247+From b422a8e08cb3845053ece1fc832294adca21a684 Mon Sep 17 00:00:00 2001
1248+From: Shuming Fan <shumingf@realtek.com>
1249+Date: Thu, 12 Oct 2023 10:07:36 +0800
1250+Subject: [PATCH] ucm2: soundwire: add rt713 SDCA device
1251+
1252+Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/363
1253+Signed-off-by: Shuming Fan <shumingf@realtek.com>
1254+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
1255+
1256+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/b422a8e08cb3845053ece1fc832294adca21a684
1257+Bug: https://bugs.launchpad.net/ubuntu/+source/alsa-ucm-conf/+bug/2042902
1258+Applied-Upstream: v1.2.11
1259+Last-Update: 2023-11-24
1260+
1261+---
1262+ ucm2/codecs/rt713-dmic/init.conf | 6 ++++
1263+ ucm2/codecs/rt713-sdca/init.conf | 8 ++++++
1264+ ucm2/sof-soundwire/rt713-dmic.conf | 21 ++++++++++++++
1265+ ucm2/sof-soundwire/rt713-sdca.conf | 40 +++++++++++++++++++++++++++
1266+ ucm2/sof-soundwire/sof-soundwire.conf | 6 ++--
1267+ 5 files changed, 78 insertions(+), 3 deletions(-)
1268+ create mode 100644 ucm2/codecs/rt713-dmic/init.conf
1269+ create mode 100644 ucm2/codecs/rt713-sdca/init.conf
1270+ create mode 100644 ucm2/sof-soundwire/rt713-dmic.conf
1271+ create mode 100644 ucm2/sof-soundwire/rt713-sdca.conf
1272+
1273+diff --git a/ucm2/codecs/rt713-dmic/init.conf b/ucm2/codecs/rt713-dmic/init.conf
1274+new file mode 100644
1275+index 0000000..6547a36
1276+--- /dev/null
1277++++ b/ucm2/codecs/rt713-dmic/init.conf
1278+@@ -0,0 +1,6 @@
1279++# RT713-dmic specific volume control settings
1280++
1281++BootSequence [
1282++ cset "name='rt713-dmic ADC 25 Mux' 'DMIC1'"
1283++ cset "name='rt713-dmic FU1E Capture Switch' 1"
1284++]
1285+diff --git a/ucm2/codecs/rt713-sdca/init.conf b/ucm2/codecs/rt713-sdca/init.conf
1286+new file mode 100644
1287+index 0000000..df6a7aa
1288+--- /dev/null
1289++++ b/ucm2/codecs/rt713-sdca/init.conf
1290+@@ -0,0 +1,8 @@
1291++# RT713-sdca specific volume control settings
1292++
1293++BootSequence [
1294++ cset "name='rt713 FU05 Playback Volume' 87"
1295++ cset "name='rt713 ADC 23 Mux' 'MIC2'"
1296++ cset "name='rt713 FU0F Capture Volume' 57"
1297++ cset "name='rt713 FU0F Capture Switch' 1"
1298++]
1299+diff --git a/ucm2/sof-soundwire/rt713-dmic.conf b/ucm2/sof-soundwire/rt713-dmic.conf
1300+new file mode 100644
1301+index 0000000..dc5fe0e
1302+--- /dev/null
1303++++ b/ucm2/sof-soundwire/rt713-dmic.conf
1304+@@ -0,0 +1,21 @@
1305++# Use case Configuration for sof-soundwire card
1306++
1307++SectionDevice."Mic" {
1308++ Comment "SoundWire microphones"
1309++
1310++ EnableSequence [
1311++ cset "name='rt713-dmic FU1E Capture Switch' 1"
1312++ ]
1313++
1314++ DisableSequence [
1315++ cset "name='rt713-dmic FU1E Capture Switch' 0"
1316++ ]
1317++
1318++ Value {
1319++ CapturePriority 100
1320++ CapturePCM "hw:${CardId},4"
1321++ CaptureSwitch "rt713-dmic FU1E Capture Switch"
1322++ CaptureVolume "rt713-dmic FU1E Capture Volume"
1323++ CaptureMixerElem "rt713-dmic FU1E"
1324++ }
1325++}
1326+diff --git a/ucm2/sof-soundwire/rt713-sdca.conf b/ucm2/sof-soundwire/rt713-sdca.conf
1327+new file mode 100644
1328+index 0000000..f1cee7c
1329+--- /dev/null
1330++++ b/ucm2/sof-soundwire/rt713-sdca.conf
1331+@@ -0,0 +1,40 @@
1332++# Use case Configuration for sof-soundwire card
1333++
1334++SectionDevice."Headphones" {
1335++ Comment "Headphones"
1336++
1337++ EnableSequence [
1338++ cset "name='Headphone Switch' on"
1339++ ]
1340++
1341++ DisableSequence [
1342++ cset "name='Headphone Switch' off"
1343++ ]
1344++
1345++ Value {
1346++ PlaybackPriority 200
1347++ PlaybackPCM "hw:${CardId}"
1348++ JackControl "Headphone Jack"
1349++ }
1350++}
1351++
1352++SectionDevice."Headset" {
1353++ Comment "Headset Microphone"
1354++
1355++ EnableSequence [
1356++ cset "name='rt713 FU0F Capture Switch' 1"
1357++ ]
1358++
1359++ DisableSequence [
1360++ cset "name='rt713 FU0F Capture Switch' 0"
1361++ ]
1362++
1363++ Value {
1364++ CapturePriority 200
1365++ CapturePCM "hw:${CardId},1"
1366++ JackControl "Headset Mic Jack"
1367++ CaptureSwitch "rt713 FU0F Capture Switch"
1368++ CaptureVolume "rt713 FU0F Capture Volume"
1369++ CaptureMixerElem "rt713 FU0F"
1370++ }
1371++}
1372+diff --git a/ucm2/sof-soundwire/sof-soundwire.conf b/ucm2/sof-soundwire/sof-soundwire.conf
1373+index 3368d65..18b1bf8 100644
1374+--- a/ucm2/sof-soundwire/sof-soundwire.conf
1375++++ b/ucm2/sof-soundwire/sof-soundwire.conf
1376+@@ -35,7 +35,7 @@ DefineRegex {
1377+ String "${CardComponents}"
1378+ }
1379+ MicCodec {
1380+- Regex " mic:([a-z0-9]+(-sdca)?)"
1381++ Regex " mic:([a-z0-9]+(-dmic)?+(-sdca)?)"
1382+ String "${CardComponents}"
1383+ }
1384+ Mics {
1385+@@ -47,7 +47,7 @@ DefineRegex {
1386+ If.hs_init {
1387+ Condition {
1388+ Type RegexMatch
1389+- Regex "(rt5682|rt700|rt711(-sdca)?)"
1390++ Regex "(rt5682|rt700|rt711|rt713(-sdca)?)"
1391+ String "${var:HeadsetCodec1}"
1392+ }
1393+ True.Include.hs_init.File "/codecs/${var:HeadsetCodec1}/init.conf"
1394+@@ -56,7 +56,7 @@ If.hs_init {
1395+ If.mic_init {
1396+ Condition {
1397+ Type RegexMatch
1398+- Regex "(rt715(-sdca)?)"
1399++ Regex "(rt713-dmic|rt715(-sdca)?)"
1400+ String "${var:MicCodec1}"
1401+ }
1402+ True.Include.mic_init.File "/codecs/${var:MicCodec1}/init.conf"
1403+--
1404+2.34.1
1405+
1406diff --git a/debian/patches/0002-sof-soundwire-Add-basic-support-for-basic-cs35l56-co.patch b/debian/patches/0002-sof-soundwire-Add-basic-support-for-basic-cs35l56-co.patch
1407new file mode 100644
1408index 0000000..2ffb1bd
1409--- /dev/null
1410+++ b/debian/patches/0002-sof-soundwire-Add-basic-support-for-basic-cs35l56-co.patch
1411@@ -0,0 +1,62 @@
1412+From: Charles Keepax <ckeepax@opensource.cirrus.com>
1413+Date: Wed, 6 Dec 2023 16:46:12 +0000
1414+Subject: [PATCH 2/3] sof-soundwire: Add basic support for basic cs35l56
1415+ configurations
1416+
1417+cs35l56 is a boosted speaker amp, add UCM support for configurations
1418+with up to 8 amps.
1419+
1420+Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
1421+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
1422+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/8e39917518b62cce44d098bd6fe5d2c1b41f92bd
1423+Bug: https://github.com/alsa-project/alsa-ucm-conf/pull/370
1424+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
1425+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
1426+---
1427+ ucm2/sof-soundwire/cs35l56.conf | 40 ++++++++++++++++++++++++++++++++++++++++
1428+ 1 file changed, 40 insertions(+)
1429+ create mode 100644 ucm2/sof-soundwire/cs35l56.conf
1430+
1431+--- /dev/null
1432++++ b/ucm2/sof-soundwire/cs35l56.conf
1433+@@ -0,0 +1,40 @@
1434++# Use case Configuration for sof-soundwire card
1435++
1436++#
1437++# Arguments:
1438++# ForAmps - regex filter for var:SpeakerAmps
1439++# Amp - amplifier number 1-8
1440++#
1441++DefineMacro.cs42l43spk.If.0 {
1442++ Condition {
1443++ Type RegexMatch
1444++ Regex "${var:__ForAmps}"
1445++ String "${var:SpeakerAmps}"
1446++ }
1447++ True {
1448++ EnableSequence [
1449++ cset "name='AMP${var:__Amp} Speaker Switch' 1"
1450++ ]
1451++ DisableSequence [
1452++ cset "name='AMP${var:__Amp} Speaker Switch' 0"
1453++ ]
1454++ }
1455++}
1456++
1457++SectionDevice."Speaker" {
1458++ Comment "Speaker"
1459++
1460++ Macro.num1.cs42l43spk { ForAmps "[1-8]" Amp 1 }
1461++ Macro.num2.cs42l43spk { ForAmps "[2-8]" Amp 2 }
1462++ Macro.num3.cs42l43spk { ForAmps "[3-8]" Amp 3 }
1463++ Macro.num4.cs42l43spk { ForAmps "[4-8]" Amp 4 }
1464++ Macro.num5.cs42l43spk { ForAmps "[5-8]" Amp 5 }
1465++ Macro.num6.cs42l43spk { ForAmps "[6-8]" Amp 6 }
1466++ Macro.num7.cs42l43spk { ForAmps "[78]" Amp 7 }
1467++ Macro.num8.cs42l43spk { ForAmps "8" Amp 8 }
1468++
1469++ Value {
1470++ PlaybackPriority 100
1471++ PlaybackPCM "hw:${CardId},2"
1472++ }
1473++}
1474diff --git a/debian/patches/0002-sof-soundwire-Add-sequence-for-controlling-Mic-Mute-.patch b/debian/patches/0002-sof-soundwire-Add-sequence-for-controlling-Mic-Mute-.patch
1475new file mode 100644
1476index 0000000..7a51a10
1477--- /dev/null
1478+++ b/debian/patches/0002-sof-soundwire-Add-sequence-for-controlling-Mic-Mute-.patch
1479@@ -0,0 +1,53 @@
1480+From: Maciej Strozek <mstrozek@opensource.cirrus.com>
1481+Date: Thu, 17 Oct 2024 13:20:27 +0100
1482+Subject: sof-soundwire: Add sequence for controlling Mic Mute LED
1483+
1484+Also ensure the unused microphone is disabled so that currently used mic
1485+can fully control the LED.
1486+
1487+Link: https://lore.kernel.org/alsa-devel/20241017122027.1207373-2-mstrozek@opensource.cirrus.com/
1488+Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
1489+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
1490+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commits/e4277a204cd61f8f68f616df0d8c42e5bdeb1475
1491+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
1492+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
1493+---
1494+ ucm2/codecs/cs42l43/init.conf | 7 +++++++
1495+ ucm2/sof-soundwire/cs42l43-dmic.conf | 2 ++
1496+ ucm2/sof-soundwire/cs42l43.conf | 1 +
1497+ 3 files changed, 10 insertions(+)
1498+
1499+--- a/ucm2/codecs/cs42l43/init.conf
1500++++ b/ucm2/codecs/cs42l43/init.conf
1501+@@ -18,3 +18,10 @@
1502+ }
1503+ }
1504+ }
1505++
1506++FixedBootSequence [
1507++ exec "-/sbin/modprobe snd_ctl_led"
1508++ sysw "-/class/sound/ctl-led/mic/card${CardNumber}/attach:cs42l43 Decimator 1 Switch"
1509++ sysw "-/class/sound/ctl-led/mic/card${CardNumber}/attach:cs42l43 Decimator 3 Switch"
1510++ sysw "-/class/sound/ctl-led/mic/card${CardNumber}/attach:cs42l43 Decimator 4 Switch"
1511++]
1512+--- a/ucm2/sof-soundwire/cs42l43-dmic.conf
1513++++ b/ucm2/sof-soundwire/cs42l43-dmic.conf
1514+@@ -13,6 +13,8 @@
1515+ ]
1516+
1517+ DisableSequence [
1518++ cset "name='cs42l43 Decimator 3 Switch' 0"
1519++ cset "name='cs42l43 Decimator 4 Switch' 0"
1520+ cset "name='cs42l43 DP1TX1 Input' 'None'"
1521+ cset "name='cs42l43 DP1TX2 Input' 'None'"
1522+ ]
1523+--- a/ucm2/sof-soundwire/cs42l43.conf
1524++++ b/ucm2/sof-soundwire/cs42l43.conf
1525+@@ -33,6 +33,7 @@
1526+ ]
1527+
1528+ DisableSequence [
1529++ cset "name='cs42l43 Decimator 1 Switch' 0"
1530+ cset "name='cs42l43 DP1TX1 Input' 'None'"
1531+ cset "name='cs42l43 DP1TX2 Input' 'None'"
1532+ ]
1533diff --git a/debian/patches/0002-sof-soundwire-Add-support-for-cs42l43-cs35l56-bridge.patch b/debian/patches/0002-sof-soundwire-Add-support-for-cs42l43-cs35l56-bridge.patch
1534new file mode 100644
1535index 0000000..50076b0
1536--- /dev/null
1537+++ b/debian/patches/0002-sof-soundwire-Add-support-for-cs42l43-cs35l56-bridge.patch
1538@@ -0,0 +1,95 @@
1539+From: Charles Keepax <ckeepax@opensource.cirrus.com>
1540+Date: Mon, 8 Jul 2024 12:59:19 +0100
1541+Subject: sof-soundwire: Add support for cs42l43/cs35l56 bridge configuration
1542+
1543+The cs42l43 has both a SPI master and an I2S interface, in some
1544+configurations 2 cs35l56 amplifiers are connected to these to provide
1545+bass speakers whilst the cs42l43's internal speaker drivers are used for
1546+the tweeters. Add UCM configuration for this type of system.
1547+
1548+Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
1549+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
1550+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commits/e4277a204cd61f8f68f616df0d8c42e5bdeb1475
1551+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
1552+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
1553+---
1554+ ucm2/sof-soundwire/cs35l56-bridge.conf | 61 ++++++++++++++++++++++++++++++++++
1555+ ucm2/sof-soundwire/sof-soundwire.conf | 2 +-
1556+ 2 files changed, 62 insertions(+), 1 deletion(-)
1557+ create mode 100644 ucm2/sof-soundwire/cs35l56-bridge.conf
1558+
1559+--- /dev/null
1560++++ b/ucm2/sof-soundwire/cs35l56-bridge.conf
1561+@@ -0,0 +1,61 @@
1562++# Use case Configuration for sof-soundwire card
1563++
1564++LibraryConfig.remap.Config {
1565++ ctl.default.map {
1566++ "name='Speaker Digital Switch'" {
1567++ "name='AMPL Speaker Switch'".vindex.0 0
1568++ "name='AMPR Speaker Switch'".vindex.1 0
1569++ }
1570++ "name='Speaker Digital Volume'" {
1571++ "name='AMPL Speaker Volume'".vindex.0 0
1572++ "name='AMPR Speaker Volume'".vindex.1 0
1573++ }
1574++ }
1575++}
1576++
1577++SectionDevice."Speaker" {
1578++ Comment "Speaker"
1579++
1580++ ConflictingDevice [
1581++ "Headphones"
1582++ ]
1583++
1584++ EnableSequence [
1585++ cset "name='cs42l43 Speaker L Input 1' 'ASPRX1'"
1586++ cset "name='cs42l43 Speaker R Input 1' 'ASPRX2'"
1587++ cset "name='cs42l43 ASPTX1 Input' 'DP5RX1'"
1588++ cset "name='cs42l43 ASPTX2 Input' 'DP5RX2'"
1589++
1590++ cset "name='AMPL ASP1 TX1 Source' 'DSP1TX1'"
1591++ cset "name='AMPL ASP1 TX2 Source' 'None'"
1592++ cset "name='AMPL ASP1 TX3 Source' 'None'"
1593++ cset "name='AMPL ASP1 TX4 Source' 'None'"
1594++
1595++ cset "name='AMPR ASP1 TX1 Source' 'None'"
1596++ cset "name='AMPR ASP1 TX2 Source' 'DSP1TX1'"
1597++ cset "name='AMPR ASP1 TX3 Source' 'None'"
1598++ cset "name='AMPR ASP1 TX4 Source' 'None'"
1599++
1600++ cset "name='cs42l43 Speaker Digital Switch' 1"
1601++ cset "name='cs42l43 Speaker Digital Volume' 128"
1602++ ]
1603++
1604++ DisableSequence [
1605++ cset "name='cs42l43 Speaker Digital Switch' 0"
1606++
1607++ cset "name='AMPL ASP1 TX2 Source' 'None'"
1608++ cset "name='AMPR ASP1 TX1 Source' 'None'"
1609++
1610++ cset "name='cs42l43 ASPTX1 Input' 'None'"
1611++ cset "name='cs42l43 ASPTX2 Input' 'None'"
1612++ cset "name='cs42l43 Speaker L Input 1' 'None'"
1613++ cset "name='cs42l43 Speaker R Input 1' 'None'"
1614++ ]
1615++
1616++ Value {
1617++ PlaybackPriority 100
1618++ PlaybackPCM "hw:${CardId},0"
1619++ PlaybackMixer "default:${CardId}"
1620++ PlaybackMixerElem "Speaker Digital"
1621++ }
1622++}
1623+--- a/ucm2/sof-soundwire/sof-soundwire.conf
1624++++ b/ucm2/sof-soundwire/sof-soundwire.conf
1625+@@ -19,7 +19,7 @@
1626+
1627+ DefineRegex {
1628+ SpeakerCodec {
1629+- Regex " spk:([a-z0-9]+((-sdca)|(-spk))?)"
1630++ Regex " spk:([a-z0-9]+((-sdca)|(-spk)|(-bridge))?)"
1631+ String "${CardComponents}"
1632+ }
1633+ SpeakerChannels {
1634diff --git a/debian/patches/0002-sof-soundwire-fix-rt1318-config-copy-n-paste-error-i.patch b/debian/patches/0002-sof-soundwire-fix-rt1318-config-copy-n-paste-error-i.patch
1635new file mode 100644
1636index 0000000..36f50d0
1637--- /dev/null
1638+++ b/debian/patches/0002-sof-soundwire-fix-rt1318-config-copy-n-paste-error-i.patch
1639@@ -0,0 +1,30 @@
1640+From: Jaroslav Kysela <perex@perex.cz>
1641+Date: Mon, 11 Mar 2024 12:06:44 +0100
1642+Subject: sof-soundwire: fix rt1318 config copy-n-paste error in rt1318spk
1643+ macro
1644+
1645+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
1646+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commits/4e0fcc79b7d517a957e12f02ecae5f3c69fa94dc
1647+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
1648+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
1649+---
1650+ ucm2/sof-soundwire/rt1318.conf | 6 +++---
1651+ 1 file changed, 3 insertions(+), 3 deletions(-)
1652+
1653+--- a/ucm2/sof-soundwire/rt1318.conf
1654++++ b/ucm2/sof-soundwire/rt1318.conf
1655+@@ -14,11 +14,11 @@
1656+ }
1657+ True {
1658+ EnableSequence [
1659+- cset "name='rt1308-${var:__Amp} RX Channel Select' ${var:__Sel}"
1660+- cset "name='rt1308-${var:__Amp} DAC Switch' 1"
1661++ cset "name='rt1318-${var:__Amp} RX Channel Select' ${var:__Sel}"
1662++ cset "name='rt1318-${var:__Amp} DAC Switch' 1"
1663+ ]
1664+ DisableSequence [
1665+- cset "name='rt1308-${var:__Amp} DAC Switch' 0"
1666++ cset "name='rt1318-${var:__Amp} DAC Switch' 0"
1667+ ]
1668+ }
1669+ }
1670diff --git a/debian/patches/0002-ucm2-MediaTek-mt8395-evk-Add-alsa-ucm-support.patch b/debian/patches/0002-ucm2-MediaTek-mt8395-evk-Add-alsa-ucm-support.patch
1671new file mode 100644
1672index 0000000..6df8bfe
1673--- /dev/null
1674+++ b/debian/patches/0002-ucm2-MediaTek-mt8395-evk-Add-alsa-ucm-support.patch
1675@@ -0,0 +1,243 @@
1676+From 5e75929e8a487498e24db27023be0b57bac222b0 Mon Sep 17 00:00:00 2001
1677+From: Zoran Zhan <zoran.zhan@mediatek.com>
1678+Date: Thu, 1 Jun 2023 15:48:33 +0800
1679+Subject: [PATCH 2/3] ucm2: MediaTek: mt8395-evk: Add alsa-ucm support
1680+
1681+Add alsa-ucm support for the MediaTek mt8395-evk platform.
1682+
1683+Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/322
1684+Signed-off-by: Zoran Zhan <zoran.zhan@mediatek.com>
1685+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
1686+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/5e75929e8a487498e24db27023be0b57bac222b0
1687+Bug: https://bugs.launchpad.net/ubuntu/+source/alsa-ucm-conf/+bug/2051199
1688+---
1689+ ucm2/MediaTek/mt8395-evk/HiFi.conf | 154 +++++++++++++++++++++++
1690+ ucm2/MediaTek/mt8395-evk/mt8395-evk.conf | 46 +++++++
1691+ ucm2/conf.d/mt8395-evk/mt8395-evk.conf | 1 +
1692+ 3 files changed, 201 insertions(+)
1693+ create mode 100644 ucm2/MediaTek/mt8395-evk/HiFi.conf
1694+ create mode 100644 ucm2/MediaTek/mt8395-evk/mt8395-evk.conf
1695+ create mode 120000 ucm2/conf.d/mt8395-evk/mt8395-evk.conf
1696+
1697+diff --git a/ucm2/MediaTek/mt8395-evk/HiFi.conf b/ucm2/MediaTek/mt8395-evk/HiFi.conf
1698+new file mode 100644
1699+index 0000000..81e4423
1700+--- /dev/null
1701++++ b/ucm2/MediaTek/mt8395-evk/HiFi.conf
1702+@@ -0,0 +1,154 @@
1703++SectionDevice."HDMI1" {
1704++ Comment "HDMI output"
1705++
1706++ Value {
1707++ PlaybackPriority 200
1708++ PlaybackPCM "hw:${CardId},5"
1709++ JackControl "HDMI Jack"
1710++ }
1711++
1712++ EnableSequence [
1713++ cset "name='HDMI_OUT_MUX' 1"
1714++ ]
1715++
1716++ DisableSequence [
1717++ cset "name='HDMI_OUT_MUX' 0"
1718++ ]
1719++}
1720++
1721++SectionDevice."HDMI2" {
1722++ Comment "DP output"
1723++
1724++ Value {
1725++ PlaybackPriority 200
1726++ PlaybackPCM "hw:${CardId},5"
1727++ JackControl "DP Jack"
1728++ }
1729++
1730++ EnableSequence [
1731++ cset "name='DPTX_OUT_MUX' 1"
1732++ ]
1733++
1734++ DisableSequence [
1735++ cset "name='DPTX_OUT_MUX' 0"
1736++ ]
1737++}
1738++
1739++SectionDevice."Speaker" {
1740++ Comment "Lineout speaker"
1741++
1742++ ConflictingDevice [
1743++ "Headphones"
1744++ ]
1745++
1746++ EnableSequence [
1747++ cset "name='LOL Mux' Playback_L_DAC"
1748++ ]
1749++
1750++ DisableSequence [
1751++ cset "name='LOL Mux' Open"
1752++ ]
1753++
1754++ Value {
1755++ PlaybackPriority 300
1756++ PlaybackChannels 2
1757++ PlaybackPCM "hw:${CardId},0"
1758++ }
1759++}
1760++
1761++SectionDevice."Headphones" {
1762++ Comment "Earphone speaker"
1763++
1764++ ConflictingDevice [
1765++ "Speaker"
1766++ ]
1767++
1768++ EnableSequence [
1769++ cset "name='HP Mux' Audio Playback"
1770++ ]
1771++
1772++ DisableSequence [
1773++ cset "name='HP Mux' Open"
1774++ ]
1775++
1776++ Value {
1777++ PlaybackPriority 400
1778++ PlaybackChannels 2
1779++ PlaybackPCM "hw:${CardId},0"
1780++ }
1781++}
1782++
1783++SectionDevice."Headset" {
1784++ Comment "Earphone microphone"
1785++
1786++ ConflictingDevice [
1787++ "Mic1"
1788++ ]
1789++
1790++ EnableSequence [
1791++ cset "name='PGA_L_Mux' AIN1"
1792++ ]
1793++
1794++ Value {
1795++ CapturePriority 400
1796++ CaptureChannels 3
1797++ CapturePCM "hw:${CardId},15"
1798++ }
1799++}
1800++
1801++SectionDevice."Mic1" {
1802++ Comment "Analog microphone"
1803++
1804++ ConflictingDevice [
1805++ "Headset"
1806++ ]
1807++
1808++ EnableSequence [
1809++ cset "name='PGA_L_Mux' AIN0"
1810++ cset "name='O039 I169 Switch' on"
1811++ cset "name='O182 I170 Switch' on"
1812++ cset "name='MISO1_MUX' UL1_CH2"
1813++ ]
1814++
1815++ DisableSequence [
1816++ cset "name='O039 I169 Switch' off"
1817++ cset "name='O182 I170 Switch' off"
1818++ cset "name='MISO1_MUX' UL1_CH1"
1819++ ]
1820++
1821++ Value {
1822++ CapturePriority 300
1823++ CaptureChannels 3
1824++ CapturePCM "hw:${CardId},15"
1825++ }
1826++}
1827++
1828++SectionDevice."Mic2" {
1829++ Comment "Digital microphone"
1830++
1831++ Value {
1832++ CapturePriority 200
1833++ CaptureChannels 2
1834++ CapturePCM "hw:${CardId},14"
1835++ }
1836++}
1837++
1838++SectionDevice."Line1" {
1839++ Comment "PCM input"
1840++
1841++ Value {
1842++ CapturePriority 100
1843++ CaptureChannels 2
1844++ CapturePCM "hw:${CardId},8"
1845++ }
1846++}
1847++
1848++SectionDevice."Line2" {
1849++ Comment "PCM output"
1850++
1851++ Value {
1852++ PlaybackPriority 100
1853++ PlaybackChannels 2
1854++ PlaybackPCM "hw:${CardId},2"
1855++ }
1856++}
1857+\ No newline at end of file
1858+diff --git a/ucm2/MediaTek/mt8395-evk/mt8395-evk.conf b/ucm2/MediaTek/mt8395-evk/mt8395-evk.conf
1859+new file mode 100644
1860+index 0000000..1957b69
1861+--- /dev/null
1862++++ b/ucm2/MediaTek/mt8395-evk/mt8395-evk.conf
1863+@@ -0,0 +1,46 @@
1864++Syntax 4
1865++
1866++SectionUseCase."HiFi" {
1867++ File "/MediaTek/mt8395-evk/HiFi.conf"
1868++ Comment "Play high quality music"
1869++}
1870++
1871++BootSequence [
1872++ cset "name='HP Mux' Audio Playback"
1873++ cset "name='LOL Mux' Open"
1874++ cset "name='MISO0_MUX' UL1_CH1"
1875++ cset "name='MISO1_MUX' UL1_CH1"
1876++ cset "name='ADC_L_Mux' Left Preamplifier"
1877++ cset "name='ADC_R_Mux' Right Preamplifier"
1878++ cset "name='ADC_3_Mux' Preamplifier"
1879++ cset "name='PGA_L_Mux' AIN1"
1880++ cset "name='PGA_R_Mux' AIN2"
1881++ cset "name='PGA_3_Mux' AIN3"
1882++ cset "name='HDMI_OUT_MUX' Connect"
1883++ cset "name='DPTX_OUT_MUX' Disconnect"
1884++ cset "name='Lineout Volume' 10"
1885++ cset "name='Headset Volume' 2"
1886++ cset "name='PGA1 Volume' 4"
1887++ cset "name='PGA2 Volume' 4"
1888++ cset "name='PGA3 Volume' 4"
1889++ cset "name='O000 I000 Switch' on"
1890++ cset "name='O001 I001 Switch' on"
1891++ cset "name='O002 I004 Switch' on"
1892++ cset "name='O003 I005 Switch' on"
1893++ cset "name='O004 I006 Switch' on"
1894++ cset "name='O005 I007 Switch' on"
1895++ cset "name='O006 I008 Switch' on"
1896++ cset "name='O007 I009 Switch' on"
1897++ cset "name='O008 I010 Switch' on"
1898++ cset "name='O009 I011 Switch' on"
1899++ cset "name='O034 I168 Switch' on"
1900++ cset "name='O035 I169 Switch' on"
1901++ cset "name='O038 I168 Switch' on"
1902++ cset "name='O039 I169 Switch' on"
1903++ cset "name='O040 I002 Switch' on"
1904++ cset "name='O041 I003 Switch' on"
1905++ cset "name='O176 I070 Switch' on"
1906++ cset "name='O177 I071 Switch' on"
1907++ cset "name='O182 I170 Switch' on"
1908++ cset "name='O183 I171 Switch' on"
1909++]
1910+diff --git a/ucm2/conf.d/mt8395-evk/mt8395-evk.conf b/ucm2/conf.d/mt8395-evk/mt8395-evk.conf
1911+new file mode 120000
1912+index 0000000..30557e3
1913+--- /dev/null
1914++++ b/ucm2/conf.d/mt8395-evk/mt8395-evk.conf
1915+@@ -0,0 +1 @@
1916++../../MediaTek/mt8395-evk/mt8395-evk.conf
1917+\ No newline at end of file
1918+--
1919diff --git a/debian/patches/0003-sof-soundwire-Add-basic-support-for-cs42l43.patch b/debian/patches/0003-sof-soundwire-Add-basic-support-for-cs42l43.patch
1920new file mode 100644
1921index 0000000..1f47bac
1922--- /dev/null
1923+++ b/debian/patches/0003-sof-soundwire-Add-basic-support-for-cs42l43.patch
1924@@ -0,0 +1,128 @@
1925+From: Charles Keepax <ckeepax@opensource.cirrus.com>
1926+Date: Wed, 17 Jan 2024 14:21:25 +0000
1927+Subject: [PATCH 3/3] sof-soundwire: Add basic support for cs42l43
1928+
1929+cs42l43 is a codec device, add basic support for it. Including a dual
1930+channel DMIC input, stereo headphones, and a mono headset microphone.
1931+
1932+Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
1933+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
1934+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/e87dde51d68950537f92af955ad0633437cc419a
1935+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
1936+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
1937+---
1938+ ucm2/codecs/cs42l43/init.conf | 14 +++++++++++
1939+ ucm2/sof-soundwire/cs42l43-dmic.conf | 26 ++++++++++++++++++++
1940+ ucm2/sof-soundwire/cs42l43.conf | 46 +++++++++++++++++++++++++++++++++++
1941+ ucm2/sof-soundwire/sof-soundwire.conf | 2 +-
1942+ 4 files changed, 87 insertions(+), 1 deletion(-)
1943+ create mode 100644 ucm2/codecs/cs42l43/init.conf
1944+ create mode 100644 ucm2/sof-soundwire/cs42l43-dmic.conf
1945+ create mode 100644 ucm2/sof-soundwire/cs42l43.conf
1946+
1947+--- /dev/null
1948++++ b/ucm2/codecs/cs42l43/init.conf
1949+@@ -0,0 +1,14 @@
1950++# cs42l43 specific control settings
1951++
1952++LibraryConfig.remap.Config {
1953++ ctl.default.map {
1954++ "name='cs42l43 PDM2 Switch'" {
1955++ "name='cs42l43 Decimator 3 Switch'".vindex.0 0
1956++ "name='cs42l43 Decimator 4 Switch'".vindex.1 0
1957++ }
1958++ "name='cs42l43 PDM2 Volume'" {
1959++ "name='cs42l43 Decimator 3 Volume'".vindex.0 0
1960++ "name='cs42l43 Decimator 4 Volume'".vindex.1 0
1961++ }
1962++ }
1963++}
1964+--- /dev/null
1965++++ b/ucm2/sof-soundwire/cs42l43-dmic.conf
1966+@@ -0,0 +1,26 @@
1967++# Use case Configuration for sof-soundwire card
1968++
1969++SectionDevice."Mic" {
1970++ Comment "Microphones"
1971++
1972++ ConflictingDevice [
1973++ "Headset"
1974++ ]
1975++
1976++ EnableSequence [
1977++ cset "name='cs42l43 DP1TX1 Input' 'Decimator 3'"
1978++ cset "name='cs42l43 DP1TX2 Input' 'Decimator 4'"
1979++ ]
1980++
1981++ DisableSequence [
1982++ cset "name='cs42l43 DP1TX1 Input' 'None'"
1983++ cset "name='cs42l43 DP1TX2 Input' 'None'"
1984++ ]
1985++
1986++ Value {
1987++ CapturePriority 100
1988++ CapturePCM "hw:${CardId},4"
1989++ CaptureMixer "default:${CardId}"
1990++ CaptureMixerElem "cs42l43 PDM2"
1991++ }
1992++}
1993+--- /dev/null
1994++++ b/ucm2/sof-soundwire/cs42l43.conf
1995+@@ -0,0 +1,46 @@
1996++# Use case Configuration for sof-soundwire card
1997++
1998++SectionDevice."Headphones" {
1999++ Comment "Headphones"
2000++
2001++ EnableSequence [
2002++ cset "name='cs42l43 Headphone L Input 1' 'DP5RX1'"
2003++ cset "name='cs42l43 Headphone R Input 1' 'DP5RX2'"
2004++ ]
2005++
2006++ DisableSequence [
2007++ cset "name='cs42l43 Headphone L Input 1' 'None'"
2008++ cset "name='cs42l43 Headphone R Input 1' 'None'"
2009++ ]
2010++
2011++ Value {
2012++ PlaybackPriority 200
2013++ PlaybackPCM "hw:${CardId},0"
2014++ PlaybackVolume "cs42l43 Headphone Digital Volume"
2015++ JackControl "Headphone Jack"
2016++ }
2017++}
2018++
2019++SectionDevice."Headset" {
2020++ Comment "Headset Microphone"
2021++
2022++ EnableSequence [
2023++ cset "name='cs42l43 ADC1 Input' 'IN1'"
2024++ cset "name='cs42l43 Decimator 1 Mode' 'ADC'"
2025++
2026++ cset "name='cs42l43 DP1TX1 Input' 'Decimator 1'"
2027++ cset "name='cs42l43 DP1TX2 Input' 'Decimator 1'"
2028++ ]
2029++
2030++ DisableSequence [
2031++ cset "name='cs42l43 DP1TX1 Input' 'None'"
2032++ cset "name='cs42l43 DP1TX2 Input' 'None'"
2033++ ]
2034++
2035++ Value {
2036++ CapturePriority 200
2037++ CapturePCM "hw:${CardId},4"
2038++ CaptureMixerElem "cs42l43 Decimator 1"
2039++ JackControl "Headset Mic Jack"
2040++ }
2041++}
2042+--- a/ucm2/sof-soundwire/sof-soundwire.conf
2043++++ b/ucm2/sof-soundwire/sof-soundwire.conf
2044+@@ -47,7 +47,7 @@
2045+ If.hs_init {
2046+ Condition {
2047+ Type RegexMatch
2048+- Regex "(rt5682|rt700|rt711|rt713(-sdca)?)"
2049++ Regex "(cs42l43|rt5682|rt700|rt711|rt713(-sdca)?)"
2050+ String "${var:HeadsetCodec1}"
2051+ }
2052+ True.Include.hs_init.File "/codecs/${var:HeadsetCodec1}/init.conf"
2053diff --git a/debian/patches/0003-sof-soundwire-rt1308-Fix-single-amp-configuration.patch b/debian/patches/0003-sof-soundwire-rt1308-Fix-single-amp-configuration.patch
2054new file mode 100644
2055index 0000000..54840df
2056--- /dev/null
2057+++ b/debian/patches/0003-sof-soundwire-rt1308-Fix-single-amp-configuration.patch
2058@@ -0,0 +1,36 @@
2059+From: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2060+Date: Mon, 11 Mar 2024 11:02:00 +0200
2061+Subject: sof-soundwire: rt1308: Fix single amp configuration
2062+
2063+If the device have single rt1308 amp then the codec's Channel Select should
2064+be set to "LR" and not to "LL". "LL" is only valid if we have 2 amps, in
2065+that case one is the Left and the other is the Right channel.
2066+
2067+This fixes for example Dell Latitude 9520 which only played on the Left
2068+speaker, Right is silent.
2069+
2070+Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/402
2071+Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
2072+Suggested-by: Jaroslav Kysela <perex@perex.cz>
2073+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2074+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commits/9e29f9e27f4e27dce40d8d6803031bb4f7be3c48
2075+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
2076+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
2077+---
2078+ ucm2/sof-soundwire/rt1308.conf | 5 +++--
2079+ 1 file changed, 3 insertions(+), 2 deletions(-)
2080+
2081+--- a/ucm2/sof-soundwire/rt1308.conf
2082++++ b/ucm2/sof-soundwire/rt1308.conf
2083+@@ -28,8 +28,9 @@
2084+ SectionDevice."Speaker" {
2085+ Comment "Speaker"
2086+
2087+- Macro.num1.rt1308spk { ForAmps "[12]" Amp 1 Sel LL }
2088+- Macro.num2.rt1308spk { ForAmps "2" Amp 2 Sel RR }
2089++ Macro.num1.rt1308spk { ForAmps "1" Amp 1 Sel LR }
2090++ Macro.num2.rt1308spk { ForAmps "2" Amp 1 Sel LL }
2091++ Macro.num3.rt1308spk { ForAmps "2" Amp 2 Sel RR }
2092+
2093+ EnableSequence [
2094+ cset "name='Speaker Switch' on"
2095diff --git a/debian/patches/0003-ucm2-MediaTek-mt8370-evk-Add-alsa-ucm-support.patch b/debian/patches/0003-ucm2-MediaTek-mt8370-evk-Add-alsa-ucm-support.patch
2096new file mode 100644
2097index 0000000..89126cb
2098--- /dev/null
2099+++ b/debian/patches/0003-ucm2-MediaTek-mt8370-evk-Add-alsa-ucm-support.patch
2100@@ -0,0 +1,253 @@
2101+From a0856afae4e8e071e7626958667cde049ec81e97 Mon Sep 17 00:00:00 2001
2102+From: Zoran Zhan <zoran.zhan@mediatek.com>
2103+Date: Wed, 10 Jan 2024 20:16:17 +0800
2104+Subject: [PATCH 3/3] ucm2: MediaTek: mt8370-evk: Add alsa-ucm support
2105+
2106+Add alsa-ucm support for the MediaTek mt8370-evk platform.
2107+
2108+Closes: https://github.com/alsa-project/alsa-ucm-conf/pull/380
2109+Signed-off-by: Zoran Zhan <zoran.zhan@mediatek.com>
2110+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2111+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commit/a0856afae4e8e071e7626958667cde049ec81e97
2112+Bug: https://bugs.launchpad.net/ubuntu/+source/alsa-ucm-conf/+bug/2051199
2113+---
2114+ ucm2/MediaTek/mt8370-evk/HiFi.conf | 165 +++++++++++++++++++++++
2115+ ucm2/MediaTek/mt8370-evk/mt8370-evk.conf | 45 +++++++
2116+ ucm2/conf.d/mt8370-evk/mt8370-evk.conf | 1 +
2117+ 3 files changed, 211 insertions(+)
2118+ create mode 100644 ucm2/MediaTek/mt8370-evk/HiFi.conf
2119+ create mode 100644 ucm2/MediaTek/mt8370-evk/mt8370-evk.conf
2120+ create mode 100644 ucm2/conf.d/mt8370-evk/mt8370-evk.conf
2121+
2122+diff --git a/ucm2/MediaTek/mt8370-evk/HiFi.conf b/ucm2/MediaTek/mt8370-evk/HiFi.conf
2123+new file mode 100644
2124+index 0000000..42a4582
2125+--- /dev/null
2126++++ b/ucm2/MediaTek/mt8370-evk/HiFi.conf
2127+@@ -0,0 +1,165 @@
2128++SectionDevice."HDMI1" {
2129++ Comment "HDMI output"
2130++
2131++ Value {
2132++ PlaybackPriority 300
2133++ PlaybackPCM "hw:${CardId},5"
2134++ JackControl "HDMI Jack"
2135++ }
2136++
2137++ EnableSequence [
2138++ cset "name='HDMI_OUT_MUX' 1"
2139++ ]
2140++
2141++ DisableSequence [
2142++ cset "name='HDMI_OUT_MUX' 0"
2143++ ]
2144++}
2145++
2146++SectionDevice."HDMI2" {
2147++ Comment "DP output"
2148++
2149++ Value {
2150++ PlaybackPriority 300
2151++ PlaybackPCM "hw:${CardId},5"
2152++ JackControl "DP Jack"
2153++ }
2154++
2155++ EnableSequence [
2156++ cset "name='DPTX_OUT_MUX' 1"
2157++ ]
2158++
2159++ DisableSequence [
2160++ cset "name='DPTX_OUT_MUX' 0"
2161++ ]
2162++}
2163++
2164++SectionDevice."Speaker" {
2165++ Comment "Lineout speaker"
2166++
2167++ ConflictingDevice [
2168++ "Headphones"
2169++ ]
2170++
2171++ EnableSequence [
2172++ cset "name='LOL Mux' Playback_L_DAC"
2173++ ]
2174++
2175++ DisableSequence [
2176++ cset "name='LOL Mux' Open"
2177++ ]
2178++
2179++ Value {
2180++ PlaybackPriority 400
2181++ PlaybackChannels 2
2182++ PlaybackPCM "hw:${CardId},0"
2183++ }
2184++}
2185++
2186++SectionDevice."Headphones" {
2187++ Comment "Earphone speaker"
2188++
2189++ ConflictingDevice [
2190++ "Speaker"
2191++ ]
2192++
2193++ EnableSequence [
2194++ cset "name='HP Mux' Audio Playback"
2195++ ]
2196++
2197++ DisableSequence [
2198++ cset "name='HP Mux' Open"
2199++ ]
2200++
2201++ Value {
2202++ PlaybackPriority 500
2203++ PlaybackChannels 2
2204++ PlaybackPCM "hw:${CardId},0"
2205++ }
2206++}
2207++
2208++SectionDevice."Headset" {
2209++ Comment "Earphone microphone"
2210++
2211++ ConflictingDevice [
2212++ "Mic1"
2213++ ]
2214++
2215++ EnableSequence [
2216++ cset "name='PGA_L_Mux' AIN1"
2217++ ]
2218++
2219++ Value {
2220++ CapturePriority 500
2221++ CaptureChannels 1
2222++ CapturePCM "hw:${CardId},10"
2223++ }
2224++}
2225++
2226++SectionDevice."Mic1" {
2227++ Comment "Analog microphone"
2228++
2229++ ConflictingDevice [
2230++ "Headset"
2231++ ]
2232++
2233++ EnableSequence [
2234++ cset "name='PGA_L_Mux' AIN0"
2235++ ]
2236++
2237++ Value {
2238++ CapturePriority 400
2239++ CaptureChannels 1
2240++ CapturePCM "hw:${CardId},10"
2241++ }
2242++}
2243++
2244++SectionDevice."Mic2" {
2245++ Comment "Digital microphone"
2246++
2247++ Value {
2248++ CapturePriority 300
2249++ CaptureChannels 2
2250++ CapturePCM "hw:${CardId},14"
2251++ }
2252++}
2253++
2254++SectionDevice."Line1" {
2255++ Comment "PCM input"
2256++
2257++ Value {
2258++ CapturePriority 200
2259++ CaptureChannels 2
2260++ CapturePCM "hw:${CardId},8"
2261++ }
2262++}
2263++
2264++SectionDevice."Line2" {
2265++ Comment "PCM output"
2266++
2267++ Value {
2268++ PlaybackPriority 200
2269++ PlaybackChannels 2
2270++ PlaybackPCM "hw:${CardId},2"
2271++ }
2272++}
2273++
2274++SectionDevice."Line3" {
2275++ Comment "I2S input"
2276++
2277++ Value {
2278++ CapturePriority 100
2279++ CaptureChannels 2
2280++ CapturePCM "hw:${CardId},11"
2281++ }
2282++}
2283++
2284++SectionDevice."Line4" {
2285++ Comment "I2S output"
2286++
2287++ Value {
2288++ PlaybackPriority 100
2289++ PlaybackChannels 8
2290++ PlaybackPCM "hw:${CardId},6"
2291++ }
2292++}
2293+\ No newline at end of file
2294+diff --git a/ucm2/MediaTek/mt8370-evk/mt8370-evk.conf b/ucm2/MediaTek/mt8370-evk/mt8370-evk.conf
2295+new file mode 100644
2296+index 0000000..2d07c46
2297+--- /dev/null
2298++++ b/ucm2/MediaTek/mt8370-evk/mt8370-evk.conf
2299+@@ -0,0 +1,45 @@
2300++Syntax 4
2301++
2302++SectionUseCase."HiFi" {
2303++ File "/MediaTek/mt8370-evk/HiFi.conf"
2304++ Comment "Play high quality music"
2305++}
2306++
2307++BootSequence [
2308++ cset "name='HP Mux' Audio Playback"
2309++ cset "name='LOL Mux' Open"
2310++ cset "name='MISO0_MUX' UL1_CH1"
2311++ cset "name='MISO1_MUX' UL1_CH1"
2312++ cset "name='ADC_L_Mux' Left Preamplifier"
2313++ cset "name='PGA_L_Mux' AIN1"
2314++ cset "name='HDMI_OUT_MUX' Connect"
2315++ cset "name='DPTX_OUT_MUX' Disconnect"
2316++ cset "name='ETDM_OUT1_Clock_Source' a1sys_a2sys"
2317++ cset "name='ETDM_OUT2_Clock_Source' a1sys_a2sys"
2318++ cset "name='ETDM_OUT3_Clock_Source' a1sys_a2sys"
2319++ cset "name='ETDM_IN1_Clock_Source' a1sys_a2sys"
2320++ cset "name='ETDM_IN2_Clock_Source' a1sys_a2sys"
2321++ cset "name='Lineout Volume' 10"
2322++ cset "name='Headset Volume' 2"
2323++ cset "name='PGA1 Volume' 4"
2324++ cset "name='O000 I000 Switch' on"
2325++ cset "name='O001 I001 Switch' on"
2326++ cset "name='O002 I004 Switch' on"
2327++ cset "name='O003 I006 Switch' on"
2328++ cset "name='O034 I168 Switch' on"
2329++ cset "name='O035 I169 Switch' on"
2330++ cset "name='O036 I012 Switch' on"
2331++ cset "name='O037 I013 Switch' on"
2332++ cset "name='O040 I002 Switch' on"
2333++ cset "name='O041 I003 Switch' on"
2334++ cset "name='O048 I022 Switch' on"
2335++ cset "name='O049 I023 Switch' on"
2336++ cset "name='O050 I024 Switch' on"
2337++ cset "name='O051 I025 Switch' on"
2338++ cset "name='O052 I026 Switch' on"
2339++ cset "name='O053 I027 Switch' on"
2340++ cset "name='O054 I028 Switch' on"
2341++ cset "name='O055 I029 Switch' on"
2342++ cset "name='O176 I070 Switch' on"
2343++ cset "name='O177 I071 Switch' on"
2344++]
2345+\ No newline at end of file
2346+diff --git a/ucm2/conf.d/mt8370-evk/mt8370-evk.conf b/ucm2/conf.d/mt8370-evk/mt8370-evk.conf
2347+new file mode 100644
2348+index 0000000..6edb08f
2349+--- /dev/null
2350++++ b/ucm2/conf.d/mt8370-evk/mt8370-evk.conf
2351+@@ -0,0 +1 @@
2352++../../MediaTek/mt8370-evk/mt8370-evk.conf
2353+--
2354diff --git a/debian/patches/0004-sof-soundwire-rt1316-rt1318-fix-channel-selection-fo.patch b/debian/patches/0004-sof-soundwire-rt1316-rt1318-fix-channel-selection-fo.patch
2355new file mode 100644
2356index 0000000..1a1344b
2357--- /dev/null
2358+++ b/debian/patches/0004-sof-soundwire-rt1316-rt1318-fix-channel-selection-fo.patch
2359@@ -0,0 +1,44 @@
2360+From: Jaroslav Kysela <perex@perex.cz>
2361+Date: Mon, 11 Mar 2024 13:09:08 +0100
2362+Subject: sof-soundwire: rt1316/rt1318 - fix channel selection for one amp
2363+
2364+Like in commit 9e29f9e27f4e27dce40d8d6803031bb4f7be3c48, use L-R
2365+channel selection when single amp is present.
2366+
2367+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2368+Origin: upstream, https://github.com/alsa-project/alsa-ucm-conf/commits/73981e94bb69da1be5b1e4a69ff99df28bcfb320
2369+Bug-Ubuntu: https://bugs.launchpad.net/bugs/2069760
2370+Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
2371+---
2372+ ucm2/sof-soundwire/rt1316.conf | 5 +++--
2373+ ucm2/sof-soundwire/rt1318.conf | 5 +++--
2374+ 2 files changed, 6 insertions(+), 4 deletions(-)
2375+
2376+--- a/ucm2/sof-soundwire/rt1316.conf
2377++++ b/ucm2/sof-soundwire/rt1316.conf
2378+@@ -47,8 +47,9 @@
2379+ SectionDevice."Speaker" {
2380+ Comment "Speaker"
2381+
2382+- Macro.num1.rt1316spk { ForAmps "[12]" Amp 1 Sel "L,L" }
2383+- Macro.num2.rt1316spk { ForAmps "2" Amp 2 Sel "R,R" }
2384++ Macro.num1.rt1316spk { ForAmps "1" Amp 1 Sel "L,R" }
2385++ Macro.num2.rt1316spk { ForAmps "2" Amp 1 Sel "L,L" }
2386++ Macro.num3.rt1316spk { ForAmps "2" Amp 2 Sel "R,R" }
2387+
2388+ EnableSequence [
2389+ cset "name='Speaker Switch' on"
2390+--- a/ucm2/sof-soundwire/rt1318.conf
2391++++ b/ucm2/sof-soundwire/rt1318.conf
2392+@@ -26,8 +26,9 @@
2393+ SectionDevice."Speaker" {
2394+ Comment "Speaker"
2395+
2396+- Macro.num1.rt1318spk { ForAmps "[12]" Amp 1 Sel "L,L" }
2397+- Macro.num2.rt1318spk { ForAmps "2" Amp 2 Sel "R,R" }
2398++ Macro.num1.rt1318spk { ForAmps "1" Amp 1 Sel "L,R" }
2399++ Macro.num2.rt1318spk { ForAmps "2" Amp 1 Sel "L,L" }
2400++ Macro.num3.rt1318spk { ForAmps "2" Amp 2 Sel "R,R" }
2401+
2402+ EnableSequence [
2403+ cset "name='Speaker Switch' on"
2404diff --git a/debian/patches/series b/debian/patches/series
2405index 0583a96..0c93914 100644
2406--- a/debian/patches/series
2407+++ b/debian/patches/series
2408@@ -1,3 +1,22 @@
2409 0001-ucm2-add-PinePhone-configuration.patch
2410 0002-ucm2-add-PineTab-configuration.patch
2411 0003-ucm2-add-improved-Librem-5-profiles.patch
2412+0001-ucm2-soundwire-add-rt713-SDCA-device.patch
2413+0001-ucm2-MediaTek-mt8390-evk-Add-alsa-ucm-support.patch
2414+0002-ucm2-MediaTek-mt8395-evk-Add-alsa-ucm-support.patch
2415+0003-ucm2-MediaTek-mt8370-evk-Add-alsa-ucm-support.patch
2416+0001-ucm2-conf.d-mt8370-evk-Fix-the-type-of-mt8370-evk.co.patch
2417+0001-ucm-MediaTek-mt8395-evk-Add-HDMIRX-config.patch
2418+0001-sof-soundwire-Use-one-file-for-speaker-codec-initial.patch
2419+0002-sof-soundwire-Add-basic-support-for-basic-cs35l56-co.patch
2420+0003-sof-soundwire-Add-basic-support-for-cs42l43.patch
2421+0001-sof-soundwire-fix-rt1318-config-typo-in-rt1318spk-ma.patch
2422+0002-sof-soundwire-fix-rt1318-config-copy-n-paste-error-i.patch
2423+0003-sof-soundwire-rt1308-Fix-single-amp-configuration.patch
2424+0004-sof-soundwire-rt1316-rt1318-fix-channel-selection-fo.patch
2425+0001-sof-soundwire-Add-missing-match-for-cs42l43-speakers.patch
2426+0002-sof-soundwire-Add-support-for-cs42l43-cs35l56-bridge.patch
2427+0001-sof-soundwire-Change-map-control-names-to-make-them-.patch
2428+0002-sof-soundwire-Add-sequence-for-controlling-Mic-Mute-.patch
2429+0001-acppdmmach-add-support-for-ACP-7.0.patch
2430+0001-sof-soundwire-Add-basic-support-for-cs42l43-s-speake.patch

Subscribers

People subscribed via source and target branches