diff --git a/.files b/.files index 363a79d..864631e 100644 Binary files a/.files and b/.files differ diff --git a/.rev b/.rev index 33ef97d..df49115 100644 --- a/.rev +++ b/.rev @@ -1621,4 +1621,12 @@ 800956 + + 4a9dd6a325a70ca0f7dc825f4746d8a2 + 1.2.3 + + dimstar_suse + + 812897 + diff --git a/0001-conf-change-the-order-of-PCM-devices-in-alsa.conf.patch b/0001-conf-change-the-order-of-PCM-devices-in-alsa.conf.patch deleted file mode 100644 index f722031..0000000 --- a/0001-conf-change-the-order-of-PCM-devices-in-alsa.conf.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 27c7927842a691ef13724cd16fb26264680c6aa2 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Sat, 29 Feb 2020 10:30:37 +0100 -Subject: [PATCH 1/5] conf: change the order of PCM devices in alsa.conf - -Appearently, some applications use the first device for probe or so. - -Fixes: https://github.com/alsa-project/alsa-lib/issues/27 - -Signed-off-by: Jaroslav Kysela ---- - src/conf/alsa.conf | 46 +++++++++++++++++++++++----------------------- - 1 file changed, 23 insertions(+), 23 deletions(-) - -diff --git a/src/conf/alsa.conf b/src/conf/alsa.conf -index 099805864788..a091b810f9ed 100644 ---- a/src/conf/alsa.conf -+++ b/src/conf/alsa.conf -@@ -119,29 +119,6 @@ defaults.timer.subdevice 0 - # PCM interface - # - --# redirect to load-on-demand extended pcm definitions --pcm.cards cards.pcm -- --pcm.default cards.pcm.default --pcm.sysdefault cards.pcm.default --pcm.front cards.pcm.front --pcm.rear cards.pcm.rear --pcm.center_lfe cards.pcm.center_lfe --pcm.side cards.pcm.side --pcm.surround21 cards.pcm.surround21 --pcm.surround40 cards.pcm.surround40 --pcm.surround41 cards.pcm.surround41 --pcm.surround50 cards.pcm.surround50 --pcm.surround51 cards.pcm.surround51 --pcm.surround71 cards.pcm.surround71 --pcm.iec958 cards.pcm.iec958 --pcm.spdif iec958 --pcm.hdmi cards.pcm.hdmi --pcm.dmix cards.pcm.dmix --pcm.dsnoop cards.pcm.dsnoop --pcm.modem cards.pcm.modem --pcm.phoneline cards.pcm.phoneline -- - pcm.hw { - @args [ CARD DEV SUBDEV ] - @args.CARD { -@@ -323,6 +300,29 @@ pcm.null { - } - } - -+# redirect to load-on-demand extended pcm definitions -+pcm.cards cards.pcm -+ -+pcm.default cards.pcm.default -+pcm.sysdefault cards.pcm.default -+pcm.front cards.pcm.front -+pcm.rear cards.pcm.rear -+pcm.center_lfe cards.pcm.center_lfe -+pcm.side cards.pcm.side -+pcm.surround21 cards.pcm.surround21 -+pcm.surround40 cards.pcm.surround40 -+pcm.surround41 cards.pcm.surround41 -+pcm.surround50 cards.pcm.surround50 -+pcm.surround51 cards.pcm.surround51 -+pcm.surround71 cards.pcm.surround71 -+pcm.iec958 cards.pcm.iec958 -+pcm.spdif iec958 -+pcm.hdmi cards.pcm.hdmi -+pcm.dmix cards.pcm.dmix -+pcm.dsnoop cards.pcm.dsnoop -+pcm.modem cards.pcm.modem -+pcm.phoneline cards.pcm.phoneline -+ - # - # Control interface - # --- -2.16.4 - diff --git a/0002-conf-namehint-add-omit_noargs-to-the-hint-section.patch b/0002-conf-namehint-add-omit_noargs-to-the-hint-section.patch deleted file mode 100644 index ef0fbbc..0000000 --- a/0002-conf-namehint-add-omit_noargs-to-the-hint-section.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 09e78da4cade7b8fecb8f36717b85c456f2e5487 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Sun, 1 Mar 2020 19:57:06 +0100 -Subject: [PATCH 2/5] conf: namehint - add omit_noargs to the hint section - -Do not list simple surround devices in the namehint function by default. - -Fixes: https://github.com/alsa-project/alsa-lib/issues/27 - -Signed-off-by: Jaroslav Kysela ---- - src/conf/pcm/surround21.conf | 1 + - src/conf/pcm/surround40.conf | 1 + - src/conf/pcm/surround41.conf | 1 + - src/conf/pcm/surround50.conf | 1 + - src/conf/pcm/surround51.conf | 1 + - src/conf/pcm/surround71.conf | 1 + - src/control/namehint.c | 6 +++++- - 7 files changed, 11 insertions(+), 1 deletion(-) - -diff --git a/src/conf/pcm/surround21.conf b/src/conf/pcm/surround21.conf -index 1cf1b7af8dc6..ad19507bba58 100644 ---- a/src/conf/pcm/surround21.conf -+++ b/src/conf/pcm/surround21.conf -@@ -57,5 +57,6 @@ pcm.!surround21 { - hint { - description "2.1 Surround output to Front and Subwoofer speakers" - device_output $DEV -+ omit_noargs true - } - } -diff --git a/src/conf/pcm/surround40.conf b/src/conf/pcm/surround40.conf -index 9788ad4884fd..7c615022f500 100644 ---- a/src/conf/pcm/surround40.conf -+++ b/src/conf/pcm/surround40.conf -@@ -55,5 +55,6 @@ pcm.!surround40 { - hint { - description "4.0 Surround output to Front and Rear speakers" - device_output $DEV -+ omit_noargs true - } - } -diff --git a/src/conf/pcm/surround41.conf b/src/conf/pcm/surround41.conf -index 7b4ef3beb43a..cb6c0445ae07 100644 ---- a/src/conf/pcm/surround41.conf -+++ b/src/conf/pcm/surround41.conf -@@ -61,5 +61,6 @@ pcm.!surround41 { - hint { - description "4.1 Surround output to Front, Rear and Subwoofer speakers" - device_output $DEV -+ omit_noargs true - } - } -diff --git a/src/conf/pcm/surround50.conf b/src/conf/pcm/surround50.conf -index 7d9a9e798fd8..70d54069f8a3 100644 ---- a/src/conf/pcm/surround50.conf -+++ b/src/conf/pcm/surround50.conf -@@ -61,5 +61,6 @@ pcm.!surround50 { - hint { - description "5.0 Surround output to Front, Center and Rear speakers" - device_output $DEV -+ omit_noargs true - } - } -diff --git a/src/conf/pcm/surround51.conf b/src/conf/pcm/surround51.conf -index e67f007ef305..d0236e42d332 100644 ---- a/src/conf/pcm/surround51.conf -+++ b/src/conf/pcm/surround51.conf -@@ -57,5 +57,6 @@ pcm.!surround51 { - hint { - description "5.1 Surround output to Front, Center, Rear and Subwoofer speakers" - device_output $DEV -+ omit_noargs true - } - } -diff --git a/src/conf/pcm/surround71.conf b/src/conf/pcm/surround71.conf -index a26c3f36c437..66792ddebbc0 100644 ---- a/src/conf/pcm/surround71.conf -+++ b/src/conf/pcm/surround71.conf -@@ -59,5 +59,6 @@ pcm.!surround71 { - hint { - description "7.1 Surround output to Front, Center, Side, Rear and Woofer speakers" - device_output $DEV -+ omit_noargs true - } - } -diff --git a/src/control/namehint.c b/src/control/namehint.c -index 60c48ae32877..169bd4215fc5 100644 ---- a/src/control/namehint.c -+++ b/src/control/namehint.c -@@ -287,10 +287,14 @@ static int try_config(snd_config_t *config, - err = -EINVAL; - goto __cleanup; - } -+ if (list->card < 0 && -+ snd_config_search(cfg, "omit_noargs", &n) >= 0 && -+ snd_config_get_bool(n) > 0) -+ goto __skip_add; - if (level == 1 && - snd_config_search(cfg, "show", &n) >= 0 && - snd_config_get_bool(n) <= 0) -- goto __skip_add; -+ goto __skip_add; - if (buf1 == NULL && - snd_config_search(cfg, "description", &n) >= 0 && - snd_config_get_string(n, &str) >= 0) { --- -2.16.4 - diff --git a/0003-Change-PCM-device-number-of-Asus-Xonar-U5.patch b/0003-Change-PCM-device-number-of-Asus-Xonar-U5.patch deleted file mode 100644 index 24e9728..0000000 --- a/0003-Change-PCM-device-number-of-Asus-Xonar-U5.patch +++ /dev/null @@ -1,27 +0,0 @@ -From c7efaef195b92e30efb3049a1c03fa1b50310477 Mon Sep 17 00:00:00 2001 -From: be-marc -Date: Tue, 3 Mar 2020 11:01:09 +0100 -Subject: [PATCH 3/5] Change PCM device number of Asus Xonar U5 - -Signed-off-by: Jaroslav Kysela ---- - src/conf/cards/USB-Audio.conf | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf -index 1c6779379c89..dd99c44d859b 100644 ---- a/src/conf/cards/USB-Audio.conf -+++ b/src/conf/cards/USB-Audio.conf -@@ -39,7 +39,8 @@ USB-Audio.pcm.iec958_device { - # "NoiseBlaster 3000" 42 - "USB Sound Blaster HD" 1 - "Xonar U7" 1 -- -+ "ASUS XONAR U5" 1 -+ - # The below don't have digital in/out, so prevent them from being opened. - "Andrea PureAudio USB-SA Headset" 999 - "Blue Snowball" 999 --- -2.16.4 - diff --git a/0004-configure-add-embed-for-python3-config-python-3.8.patch b/0004-configure-add-embed-for-python3-config-python-3.8.patch deleted file mode 100644 index 3493d27..0000000 --- a/0004-configure-add-embed-for-python3-config-python-3.8.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 1654f38a29e635ce69a30c6c95ec1ca773ecee37 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Wed, 4 Mar 2020 11:27:12 +0100 -Subject: [PATCH 4/5] configure: add --embed for python3-config (python 3.8) - -Fixes: https://github.com/alsa-project/alsa-lib/issues/33 - -Signed-off-by: Jaroslav Kysela ---- - configure.ac | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 0f9fb01631f1..4b5ab6628bff 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -423,7 +423,10 @@ if test "$build_python" = "yes" -a "$build_mixer_pymodules" = "yes"; then - pythonlibs0= - pythoninc0= - if test "$build_python2" != "yes"; then -- pythonlibs0=$(python3-config --libs) -+ pythonlibs0=$(python3-config --libs --embed 2> /dev/null) -+ if test -z "$pythonlibs0"; then -+ pythonlibs0=$(python3-config --libs) -+ fi - pythoninc0=$(python3-config --includes) - fi - if test -z "$pythonlibs0"; then --- -2.16.4 - diff --git a/0005-conf-USB-Audio-Add-C-Media-USB-Headphone-Set-to-the-.patch b/0005-conf-USB-Audio-Add-C-Media-USB-Headphone-Set-to-the-.patch deleted file mode 100644 index 4fd3f57..0000000 --- a/0005-conf-USB-Audio-Add-C-Media-USB-Headphone-Set-to-the-.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 9ed3c65e1569a0ebbec9af1d04d739db9921e775 Mon Sep 17 00:00:00 2001 -From: Tanu Kaskinen -Date: Fri, 13 Mar 2020 09:39:17 +0200 -Subject: [PATCH 5/5] conf: USB-Audio: Add C-Media USB Headphone Set to the - IEC958 blacklist - -Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/317 - -Signed-off-by: Tanu Kaskinen -Signed-off-by: Jaroslav Kysela ---- - src/conf/cards/USB-Audio.conf | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf -index dd99c44d859b..89811086db1d 100644 ---- a/src/conf/cards/USB-Audio.conf -+++ b/src/conf/cards/USB-Audio.conf -@@ -44,6 +44,7 @@ USB-Audio.pcm.iec958_device { - # The below don't have digital in/out, so prevent them from being opened. - "Andrea PureAudio USB-SA Headset" 999 - "Blue Snowball" 999 -+ "C-Media USB Headphone Set" 999 - "HP Digital Stereo Headset" 999 - "GN 9330" 999 - "Logitech Speaker Lapdesk N700" 999 --- -2.16.4 - diff --git a/0006-topology-add-back-asrc-to-widget_map-in-dapm.c.patch b/0006-topology-add-back-asrc-to-widget_map-in-dapm.c.patch deleted file mode 100644 index d78c1cf..0000000 --- a/0006-topology-add-back-asrc-to-widget_map-in-dapm.c.patch +++ /dev/null @@ -1,28 +0,0 @@ -From caf77a93cef5bda729bc33e0100cc0e769767389 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Fri, 13 Mar 2020 17:05:14 +0100 -Subject: [PATCH 06/16] topology: add back asrc to widget_map in dapm.c - -Fixes: aa1bac2d04bd ("topology: add snd_tplg_save()") -BugLink: https://github.com/thesofproject/sof/issues/2543 - -Signed-off-by: Jaroslav Kysela ---- - src/topology/dapm.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/topology/dapm.c b/src/topology/dapm.c -index cb85e66734f6..70645126d0bc 100644 ---- a/src/topology/dapm.c -+++ b/src/topology/dapm.c -@@ -43,6 +43,7 @@ static const struct map_elem widget_map[] = { - {"effect", SND_SOC_TPLG_DAPM_EFFECT}, - {"siggen", SND_SOC_TPLG_DAPM_SIGGEN}, - {"src", SND_SOC_TPLG_DAPM_SRC}, -+ {"asrc", SND_SOC_TPLG_DAPM_ASRC}, - {"encoder", SND_SOC_TPLG_DAPM_ENCODER}, - {"decoder", SND_SOC_TPLG_DAPM_DECODER}, - }; --- -2.16.4 - diff --git a/0007-ucm-clarify-the-index-syntax-for-the-device-names.patch b/0007-ucm-clarify-the-index-syntax-for-the-device-names.patch deleted file mode 100644 index 6aa93f9..0000000 --- a/0007-ucm-clarify-the-index-syntax-for-the-device-names.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 79102bf264f8651692fe9435a4d1bb06aa022d55 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Tue, 17 Mar 2020 10:21:10 +0100 -Subject: [PATCH 07/16] ucm: clarify the index syntax for the device names - -Signed-off-by: Jaroslav Kysela ---- - include/use-case.h | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/include/use-case.h b/include/use-case.h -index 134303afaa18..27cb3fe1613f 100644 ---- a/include/use-case.h -+++ b/include/use-case.h -@@ -117,7 +117,10 @@ extern "C" { - * - * If multiple devices with the same name exists, the number suffixes should - * be added to these names like HDMI1,HDMI2,HDMI3 etc. No number gaps are -- * allowed. The names with numbers must be continuous. -+ * allowed. The names with numbers must be continuous. It is allowed to put -+ * a whitespace between name and index (like 'Line 1') for the better -+ * readability. The device names 'Line 1' and 'Line1' are equal for -+ * thus purpose. - * - * If EnableSequence/DisableSequence controls independent paths in the hardware - * it is also recommended to split playback and capture UCM devices and use --- -2.16.4 - diff --git a/0008-ucm-fix-uc_mgr_scan_master_configs.patch b/0008-ucm-fix-uc_mgr_scan_master_configs.patch deleted file mode 100644 index 81d4a55..0000000 --- a/0008-ucm-fix-uc_mgr_scan_master_configs.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 6137d263f3805c72781ea74b813b0e3754f5fc34 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Tue, 17 Mar 2020 16:20:52 +0100 -Subject: [PATCH 08/16] ucm: fix uc_mgr_scan_master_configs() - -Skip the lookup, if the top level filename does not exist. - -Fixes: https://github.com/alsa-project/alsa-ucm-conf/issues/16 - -Signed-off-by: Jaroslav Kysela ---- - src/ucm/parser.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/ucm/parser.c b/src/ucm/parser.c -index 8d6eea31f8e7..0001e5953707 100644 ---- a/src/ucm/parser.c -+++ b/src/ucm/parser.c -@@ -1969,6 +1969,9 @@ int uc_mgr_scan_master_configs(const char **_list[]) - - configuration_filename2(filename, sizeof(filename), 2, - d_name, d_name, ".conf"); -+ if (eaccess(filename, R_OK)) -+ continue; -+ - err = uc_mgr_config_load(2, filename, &cfg); - if (err < 0) - goto __err; --- -2.16.4 - diff --git a/0009-namehint-remember-the-direction-from-the-upper-level.patch b/0009-namehint-remember-the-direction-from-the-upper-level.patch deleted file mode 100644 index eb8bbc7..0000000 --- a/0009-namehint-remember-the-direction-from-the-upper-level.patch +++ /dev/null @@ -1,31 +0,0 @@ -From d434638a683c01bd6decf8f41863044055237a50 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Fri, 27 Mar 2020 11:59:53 +0100 -Subject: [PATCH 09/16] namehint: remember the direction from the upper levels - -The current code resets the direction info for each level. -Simply remove this code. - -Fixes: https://github.com/alsa-project/alsa-lib/issues/39 - -Signed-off-by: Jaroslav Kysela ---- - src/control/namehint.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/src/control/namehint.c b/src/control/namehint.c -index 169bd4215fc5..ecd470f33d07 100644 ---- a/src/control/namehint.c -+++ b/src/control/namehint.c -@@ -270,8 +270,6 @@ static int try_config(snd_config_t *config, - if (snd_config_search(cfg1, "type", &cfg) >= 0 && - snd_config_get_string(cfg, &str) >= 0 && - strcmp(str, "hw") == 0) { -- list->device_input = -1; -- list->device_output = -1; - if (snd_config_search(cfg1, "device", &cfg) >= 0) { - if (snd_config_get_integer(cfg, &dev) < 0) { - SNDERR("(%s) device must be an integer", buf); --- -2.16.4 - diff --git a/0010-conf-fix-namehint-for-pcm.front-and-pcm.iec958.patch b/0010-conf-fix-namehint-for-pcm.front-and-pcm.iec958.patch deleted file mode 100644 index d18bcd3..0000000 --- a/0010-conf-fix-namehint-for-pcm.front-and-pcm.iec958.patch +++ /dev/null @@ -1,43 +0,0 @@ -From bca39e99d0c2a270a71dad640983fb739dac8bdd Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Fri, 27 Mar 2020 18:14:02 +0100 -Subject: [PATCH 10/16] conf: fix namehint for pcm.front and pcm.iec958 - -As suggested in: - -Fixes: https://github.com/alsa-project/alsa-lib/issues/39 - -Signed-off-by: Jaroslav Kysela ---- - src/conf/pcm/front.conf | 3 ++- - src/conf/pcm/iec958.conf | 2 +- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/conf/pcm/front.conf b/src/conf/pcm/front.conf -index 7aff0cbf007d..0edf6a6953b7 100644 ---- a/src/conf/pcm/front.conf -+++ b/src/conf/pcm/front.conf -@@ -53,6 +53,7 @@ pcm.!front { - name defaults.namehint.basic - } - description "Front speakers" -- device $DEV -+ device_output $DEV -+ omit_noargs true - } - } -diff --git a/src/conf/pcm/iec958.conf b/src/conf/pcm/iec958.conf -index ac139b5e4027..2b084d6fd1d7 100644 ---- a/src/conf/pcm/iec958.conf -+++ b/src/conf/pcm/iec958.conf -@@ -78,6 +78,6 @@ pcm.!iec958 { - name defaults.namehint.basic - } - description "IEC958 (S/PDIF) Digital Audio Output" -- device $DEV -+ device_output $DEV - } - } --- -2.16.4 - diff --git a/0011-pcm-add-chmap-option-to-route-plugin.patch b/0011-pcm-add-chmap-option-to-route-plugin.patch deleted file mode 100644 index aab170c..0000000 --- a/0011-pcm-add-chmap-option-to-route-plugin.patch +++ /dev/null @@ -1,216 +0,0 @@ -From 3b46b03f099da2f39c205a25b3cc62ec688fe6b3 Mon Sep 17 00:00:00 2001 -From: Jonas Holmberg -Date: Tue, 31 Mar 2020 17:09:25 +0200 -Subject: [PATCH 11/16] pcm: add chmap option to route plugin - -Add a config definition "chmap" to override the channel maps in the same -way as in the hw and null plugins. - -Signed-off-by: Jonas Holmberg -Signed-off-by: Takashi Iwai ---- - src/pcm/pcm_route.c | 57 +++++++++++++++++++++++++++++++++++++++++++---------- - 1 file changed, 47 insertions(+), 10 deletions(-) - -diff --git a/src/pcm/pcm_route.c b/src/pcm/pcm_route.c -index bbcc6118b593..d3e5f3ff1f15 100644 ---- a/src/pcm/pcm_route.c -+++ b/src/pcm/pcm_route.c -@@ -104,6 +104,7 @@ typedef struct { - int schannels; - snd_pcm_route_params_t params; - snd_pcm_chmap_t *chmap; -+ snd_pcm_chmap_query_t **chmap_override; - } snd_pcm_route_t; - - #endif /* DOC_HIDDEN */ -@@ -441,6 +442,7 @@ static int snd_pcm_route_close(snd_pcm_t *pcm) - free(params->dsts); - } - free(route->chmap); -+ snd_pcm_free_chmaps(route->chmap_override); - return snd_pcm_generic_close(pcm); - } - -@@ -634,6 +636,9 @@ static snd_pcm_chmap_t *snd_pcm_route_get_chmap(snd_pcm_t *pcm) - snd_pcm_chmap_t *map, *slave_map; - unsigned int src, dst, nsrcs; - -+ if (route->chmap_override) -+ return _snd_pcm_choose_fixed_chmap(pcm, route->chmap_override); -+ - slave_map = snd_pcm_generic_get_chmap(pcm); - if (!slave_map) - return NULL; -@@ -660,8 +665,14 @@ static snd_pcm_chmap_t *snd_pcm_route_get_chmap(snd_pcm_t *pcm) - - static snd_pcm_chmap_query_t **snd_pcm_route_query_chmaps(snd_pcm_t *pcm) - { -+ snd_pcm_route_t *route = pcm->private_data; - snd_pcm_chmap_query_t **maps; -- snd_pcm_chmap_t *map = snd_pcm_route_get_chmap(pcm); -+ snd_pcm_chmap_t *map; -+ -+ if (route->chmap_override) -+ return _snd_pcm_copy_chmap_query(route->chmap_override); -+ -+ map = snd_pcm_route_get_chmap(pcm); - if (!map) - return NULL; - maps = _snd_pcm_make_single_query_chmaps(map); -@@ -818,10 +829,10 @@ err: - return -EINVAL; - } - --static int find_matching_chmap(snd_pcm_t *spcm, snd_pcm_chmap_t *tt_chmap, -+static int find_matching_chmap(snd_pcm_chmap_query_t **chmaps, -+ snd_pcm_chmap_t *tt_chmap, - snd_pcm_chmap_t **found_chmap, int *schannels) - { -- snd_pcm_chmap_query_t** chmaps = snd_pcm_query_chmaps(spcm); - int i; - - *found_chmap = NULL; -@@ -854,7 +865,6 @@ static int find_matching_chmap(snd_pcm_t *spcm, snd_pcm_chmap_t *tt_chmap, - int size = sizeof(snd_pcm_chmap_t) + c->channels * sizeof(unsigned int); - *found_chmap = malloc(size); - if (!*found_chmap) { -- snd_pcm_free_chmaps(chmaps); - return -ENOMEM; - } - memcpy(*found_chmap, c, size); -@@ -863,8 +873,6 @@ static int find_matching_chmap(snd_pcm_t *spcm, snd_pcm_chmap_t *tt_chmap, - } - } - -- snd_pcm_free_chmaps(chmaps); -- - if (*found_chmap == NULL) { - SNDERR("Found no matching channel map"); - return -EINVAL; -@@ -1252,6 +1260,7 @@ pcm.name { - SCHANNEL REAL # route value (0.0 - 1.0) - } - } -+ [chmap MAP] # Override channel maps; MAP is a string array - } - \endcode - -@@ -1292,6 +1301,7 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, - snd_pcm_route_ttable_entry_t *ttable = NULL; - unsigned int csize, ssize; - unsigned int cused, sused; -+ snd_pcm_chmap_query_t **chmaps = NULL; - snd_config_for_each(i, next, conf) { - snd_config_t *n = snd_config_iterator_entry(i); - const char *id; -@@ -1306,31 +1316,45 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, - if (strcmp(id, "ttable") == 0) { - if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) { - SNDERR("Invalid type for %s", id); -+ snd_pcm_free_chmaps(chmaps); - return -EINVAL; - } - tt = n; - continue; - } -+ if (strcmp(id, "chmap") == 0) { -+ chmaps = _snd_pcm_parse_config_chmaps(n); -+ if (!chmaps) { -+ SNDERR("Invalid channel map for %s", id); -+ return -EINVAL; -+ } -+ continue; -+ } - SNDERR("Unknown field %s", id); - return -EINVAL; - } - if (!slave) { - SNDERR("slave is not defined"); -+ snd_pcm_free_chmaps(chmaps); - return -EINVAL; - } - if (!tt) { - SNDERR("ttable is not defined"); -+ snd_pcm_free_chmaps(chmaps); - return -EINVAL; - } - err = snd_pcm_slave_conf(root, slave, &sconf, 2, - SND_PCM_HW_PARAM_FORMAT, 0, &sformat, - SND_PCM_HW_PARAM_CHANNELS, 0, &schannels); -- if (err < 0) -+ if (err < 0) { -+ snd_pcm_free_chmaps(chmaps); - return err; -+ } - if (sformat != SND_PCM_FORMAT_UNKNOWN && - snd_pcm_format_linear(sformat) != 1) { - snd_config_delete(sconf); - SNDERR("slave format is not linear"); -+ snd_pcm_free_chmaps(chmaps); - return -EINVAL; - } - -@@ -1345,13 +1369,19 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, - if (err < 0) { - free(tt_chmap); - free(ttable); -+ snd_pcm_free_chmaps(chmaps); - return err; - } - - if (tt_chmap) { -- err = find_matching_chmap(spcm, tt_chmap, &chmap, &schannels); -+ if (!chmaps) -+ chmaps = snd_pcm_query_chmaps(spcm); -+ if (chmaps) -+ err = find_matching_chmap(chmaps, tt_chmap, &chmap, -+ &schannels); - free(tt_chmap); -- if (err < 0) { -+ if (chmaps && err < 0) { -+ snd_pcm_free_chmaps(chmaps); - snd_pcm_close(spcm); - return err; - } -@@ -1360,12 +1390,14 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, - err = _snd_pcm_route_determine_ttable(tt, &csize, &ssize, chmap); - if (err < 0) { - free(chmap); -+ snd_pcm_free_chmaps(chmaps); - snd_pcm_close(spcm); - return err; - } - ttable = malloc(csize * ssize * sizeof(snd_pcm_route_ttable_entry_t)); - if (ttable == NULL) { - free(chmap); -+ snd_pcm_free_chmaps(chmaps); - snd_pcm_close(spcm); - return -ENOMEM; - } -@@ -1374,6 +1406,7 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, - if (err < 0) { - free(chmap); - free(ttable); -+ snd_pcm_free_chmaps(chmaps); - snd_pcm_close(spcm); - return err; - } -@@ -1385,9 +1418,13 @@ int _snd_pcm_route_open(snd_pcm_t **pcmp, const char *name, - free(ttable); - if (err < 0) { - free(chmap); -+ snd_pcm_free_chmaps(chmaps); - snd_pcm_close(spcm); - } else { -- ((snd_pcm_route_t*) (*pcmp)->private_data)->chmap = chmap; -+ snd_pcm_route_t *route = (*pcmp)->private_data; -+ -+ route->chmap = chmap; -+ route->chmap_override = chmaps; - } - - return err; --- -2.16.4 - diff --git a/0012-usecase-allow-indexes-also-for-modifier-names.patch b/0012-usecase-allow-indexes-also-for-modifier-names.patch deleted file mode 100644 index c1f2ad3..0000000 --- a/0012-usecase-allow-indexes-also-for-modifier-names.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 341326c21ededb8c768c43ec2c9c7a80e7a26d35 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Fri, 3 Apr 2020 18:00:43 +0200 -Subject: [PATCH 12/16] usecase: allow indexes also for modifier names - -Signed-off-by: Jaroslav Kysela ---- - include/use-case.h | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/include/use-case.h b/include/use-case.h -index 27cb3fe1613f..c2ba79a9fdb1 100644 ---- a/include/use-case.h -+++ b/include/use-case.h -@@ -120,7 +120,7 @@ extern "C" { - * allowed. The names with numbers must be continuous. It is allowed to put - * a whitespace between name and index (like 'Line 1') for the better - * readability. The device names 'Line 1' and 'Line1' are equal for -- * thus purpose. -+ * this purpose. - * - * If EnableSequence/DisableSequence controls independent paths in the hardware - * it is also recommended to split playback and capture UCM devices and use -@@ -149,6 +149,13 @@ extern "C" { - * The use case modifier allows runtime configuration changes to deal with - * asynchronous events. - * -+ * If multiple modifiers with the same name exists, the number suffixes should -+ * be added to these names like 'Echo Reference 1','Echo Reference 2' etc. -+ * No number gaps are allowed. The names with numbers must be continuous. -+ * It is allowed to put a whitespace between name and index for the better -+ * readability. The modifier names 'Something 1' and 'Something1' are equal -+ * for this purpose. -+ * - * e.g. to record a voice call :- - * 1. Set verb to SND_USE_CASE_VERB_VOICECALL (for voice call) - * 2. Set modifier SND_USE_CASE_MOD_CAPTURE_VOICE when capture required. --- -2.16.4 - diff --git a/0013-ucm-fix-the-device-remove-operation.patch b/0013-ucm-fix-the-device-remove-operation.patch deleted file mode 100644 index d0b60c5..0000000 --- a/0013-ucm-fix-the-device-remove-operation.patch +++ /dev/null @@ -1,55 +0,0 @@ -From c9605484d165d2b707f78eef14a224b0b47ba322 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Mon, 6 Apr 2020 13:25:43 +0200 -Subject: [PATCH 13/16] ucm: fix the device remove operation - -- allow to remove device only from conflicting lists -- unify the error codes when the device is not found (ENODEV) - -Signed-off-by: Jaroslav Kysela ---- - src/ucm/utils.c | 13 +++++++++---- - 1 file changed, 9 insertions(+), 4 deletions(-) - -diff --git a/src/ucm/utils.c b/src/ucm/utils.c -index 50b2a1df4a6a..d78ba91c3844 100644 ---- a/src/ucm/utils.c -+++ b/src/ucm/utils.c -@@ -371,7 +371,7 @@ int uc_mgr_rename_in_dev_list(struct dev_list *dev_list, const char *src, - return 0; - } - } -- return -ENOENT; -+ return -ENODEV; - } - - int uc_mgr_remove_from_dev_list(struct dev_list *dev_list, const char *name) -@@ -528,17 +528,22 @@ int uc_mgr_remove_device(struct use_case_verb *verb, const char *name) - { - struct use_case_device *device; - struct list_head *pos, *npos; -+ int err, found = 0; - - list_for_each_safe(pos, npos, &verb->device_list) { - device = list_entry(pos, struct use_case_device, list); - if (strcmp(device->name, name) == 0) { - uc_mgr_free_device(device); -+ found++; - continue; - } -- uc_mgr_remove_from_dev_list(&device->dev_list, name); -- return 0; -+ err = uc_mgr_remove_from_dev_list(&device->dev_list, name); -+ if (err < 0 && err != -ENODEV) -+ return err; -+ if (err == 0) -+ found++; - } -- return -ENOENT; -+ return found == 0 ? -ENODEV : 0; - } - - void uc_mgr_free_verb(snd_use_case_mgr_t *uc_mgr) --- -2.16.4 - diff --git a/0014-ucm-fix-copy-n-paste-typo-RemoveDevice-list.patch b/0014-ucm-fix-copy-n-paste-typo-RemoveDevice-list.patch deleted file mode 100644 index e7cda17..0000000 --- a/0014-ucm-fix-copy-n-paste-typo-RemoveDevice-list.patch +++ /dev/null @@ -1,26 +0,0 @@ -From fb48ad9e4f6b84fd4ade689bd79e3a3c37d3e034 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Mon, 6 Apr 2020 17:20:24 +0200 -Subject: [PATCH 14/16] ucm: fix copy-n-paste typo (RemoveDevice list) - -Signed-off-by: Jaroslav Kysela ---- - src/ucm/parser.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/ucm/parser.c b/src/ucm/parser.c -index 0001e5953707..aca5ea8c3cea 100644 ---- a/src/ucm/parser.c -+++ b/src/ucm/parser.c -@@ -1176,7 +1176,7 @@ static int verb_device_management(struct use_case_verb *verb) - } - - /* remove devices */ -- list_for_each(pos, &verb->rename_list) { -+ list_for_each(pos, &verb->remove_list) { - dev = list_entry(pos, struct ucm_dev_name, list); - err = uc_mgr_remove_device(verb, dev->name2); - if (err < 0) { --- -2.16.4 - diff --git a/0015-pcm-dmix-fix-sw_params-handling-of-timestamp-types-i.patch b/0015-pcm-dmix-fix-sw_params-handling-of-timestamp-types-i.patch deleted file mode 100644 index 0392279..0000000 --- a/0015-pcm-dmix-fix-sw_params-handling-of-timestamp-types-i.patch +++ /dev/null @@ -1,238 +0,0 @@ -From d12df1dc9c095bcb52d104e5a39043b56424e9d2 Mon Sep 17 00:00:00 2001 -From: "sylvain.bertrand@gmail.com" -Date: Wed, 15 Apr 2020 00:44:39 +0000 -Subject: [PATCH 15/16] pcm: dmix: fix sw_params handling of timestamp types in - direct plugins - -In pcms using direct plugins (dmix/dsnoop/dshare), the timestamp type could -be different from the terminating hw plugin, then the kernel driver. - -Be sure such pcms have plugins using consistently the same timestamp type. - -signed-off-by: Sylvain Bertrand -Signed-off-by: Takashi Iwai ---- - src/conf/alsa.conf | 1 + - src/conf/pcm/dmix.conf | 4 ++++ - src/conf/pcm/dsnoop.conf | 4 ++++ - src/pcm/pcm_direct.c | 36 +++++++++++++++++++++++++++++++++++- - src/pcm/pcm_direct.h | 2 ++ - src/pcm/pcm_dmix.c | 4 ++++ - src/pcm/pcm_dshare.c | 4 ++++ - src/pcm/pcm_dsnoop.c | 4 ++++ - src/pcm/pcm_local.h | 2 ++ - 9 files changed, 60 insertions(+), 1 deletion(-) - -diff --git a/src/conf/alsa.conf b/src/conf/alsa.conf -index a091b810f9ed..0e01c887dc28 100644 ---- a/src/conf/alsa.conf -+++ b/src/conf/alsa.conf -@@ -69,6 +69,7 @@ defaults.pcm.minperiodtime 5000 # in us - defaults.pcm.ipc_key 5678293 - defaults.pcm.ipc_gid audio - defaults.pcm.ipc_perm 0660 -+defaults.pcm.tstamp_type "default" - defaults.pcm.dmix.max_periods 0 - defaults.pcm.dmix.channels 2 - defaults.pcm.dmix.rate 48000 -diff --git a/src/conf/pcm/dmix.conf b/src/conf/pcm/dmix.conf -index 7fa5c8b2e20a..50e573da5d35 100644 ---- a/src/conf/pcm/dmix.conf -+++ b/src/conf/pcm/dmix.conf -@@ -56,6 +56,10 @@ pcm.!dmix { - @func refer - name defaults.pcm.ipc_perm - } -+ tstamp_type { -+ @func refer -+ name defaults.pcm.tstamp_type -+ } - slave { - pcm { - type hw -diff --git a/src/conf/pcm/dsnoop.conf b/src/conf/pcm/dsnoop.conf -index abbd44f7fd79..f4336e5f5e07 100644 ---- a/src/conf/pcm/dsnoop.conf -+++ b/src/conf/pcm/dsnoop.conf -@@ -49,6 +49,10 @@ pcm.!dsnoop { - @func refer - name defaults.pcm.ipc_perm - } -+ tstamp_type { -+ @func refer -+ name defaults.pcm.tstamp_type -+ } - slave { - pcm { - type hw -diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c -index 54d99005461b..aa60a47774ae 100644 ---- a/src/pcm/pcm_direct.c -+++ b/src/pcm/pcm_direct.c -@@ -991,8 +991,11 @@ int snd_pcm_direct_hw_free(snd_pcm_t *pcm ATTRIBUTE_UNUSED) - return 0; - } - --int snd_pcm_direct_sw_params(snd_pcm_t *pcm ATTRIBUTE_UNUSED, snd_pcm_sw_params_t * params ATTRIBUTE_UNUSED) -+int snd_pcm_direct_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params) - { -+ if (params->tstamp_type != pcm->tstamp_type) -+ return -EINVAL; -+ - /* values are cached in the pcm structure */ - return 0; - } -@@ -1318,6 +1321,15 @@ int snd_pcm_direct_initialize_slave(snd_pcm_direct_t *dmix, snd_pcm_t *spcm, str - return ret; - } - -+ if (dmix->tstamp_type != -1) { -+ ret = snd_pcm_sw_params_set_tstamp_type(spcm, &sw_params, -+ dmix->tstamp_type); -+ if (ret < 0) { -+ SNDERR("unable to set tstamp type"); -+ return ret; -+ } -+ } -+ - if (dmix->type != SND_PCM_TYPE_DMIX && - dmix->type != SND_PCM_TYPE_DSHARE) - goto __skip_silencing; -@@ -1878,6 +1890,7 @@ int snd_pcm_direct_parse_open_conf(snd_config_t *root, snd_config_t *conf, - rec->var_periodsize = 0; - rec->direct_memory_access = 1; - rec->hw_ptr_alignment = SND_PCM_HW_PTR_ALIGNMENT_AUTO; -+ rec->tstamp_type = -1; - - /* read defaults */ - if (snd_config_search(root, "defaults.pcm.dmix_max_periods", &n) >= 0) { -@@ -1941,6 +1954,27 @@ int snd_pcm_direct_parse_open_conf(snd_config_t *root, snd_config_t *conf, - - continue; - } -+ if (strcmp(id, "tstamp_type") == 0) { -+ const char *str; -+ err = snd_config_get_string(n, &str); -+ if (err < 0) { -+ SNDERR("Invalid type for %s", id); -+ return -EINVAL; -+ } -+ if (strcmp(str, "default") == 0) -+ rec->tstamp_type = -1; -+ else if (strcmp(str, "gettimeofday") == 0) -+ rec->tstamp_type = SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY; -+ else if (strcmp(str, "monotonic") == 0) -+ rec->tstamp_type = SND_PCM_TSTAMP_TYPE_MONOTONIC; -+ else if (strcmp(str, "monotonic_raw") == 0) -+ rec->tstamp_type = SND_PCM_TSTAMP_TYPE_MONOTONIC_RAW; -+ else { -+ SNDERR("The field tstamp_type is invalid : %s", str); -+ return -EINVAL; -+ } -+ continue; -+ } - if (strcmp(id, "ipc_gid") == 0) { - char *group; - char *endp; -diff --git a/src/pcm/pcm_direct.h b/src/pcm/pcm_direct.h -index 221edbe16879..8a236970a3a1 100644 ---- a/src/pcm/pcm_direct.h -+++ b/src/pcm/pcm_direct.h -@@ -173,6 +173,7 @@ struct snd_pcm_direct { - unsigned int recoveries; /* mirror of executed recoveries on slave */ - int direct_memory_access; /* use arch-optimized buffer RW */ - snd_pcm_direct_hw_ptr_alignment_t hw_ptr_alignment; -+ int tstamp_type; /* cached from conf, can be -1(default) on top of real types */ - union { - struct { - int shmid_sum; /* IPC global sum ring buffer memory identification */ -@@ -357,6 +358,7 @@ struct snd_pcm_direct_open_conf { - int var_periodsize; - int direct_memory_access; - snd_pcm_direct_hw_ptr_alignment_t hw_ptr_alignment; -+ int tstamp_type; - snd_config_t *slave; - snd_config_t *bindings; - }; -diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c -index d533f40c5892..843fa3168756 100644 ---- a/src/pcm/pcm_dmix.c -+++ b/src/pcm/pcm_dmix.c -@@ -1038,6 +1038,7 @@ int snd_pcm_dmix_open(snd_pcm_t **pcmp, const char *name, - dmix->ipc_key = opts->ipc_key; - dmix->ipc_perm = opts->ipc_perm; - dmix->ipc_gid = opts->ipc_gid; -+ dmix->tstamp_type = opts->tstamp_type; - dmix->semid = -1; - dmix->shmid = -1; - -@@ -1237,6 +1238,9 @@ pcm.name { - # roundup - # rounddown - # auto (default) -+ tstamp_type STR # timestamp type -+ # STR can be one of the below strings : -+ # default, gettimeofday, monotonic, monotonic_raw - slave STR - # or - slave { # Slave definition -diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c -index 59448cfb5883..6a99452b80fb 100644 ---- a/src/pcm/pcm_dshare.c -+++ b/src/pcm/pcm_dshare.c -@@ -723,6 +723,7 @@ int snd_pcm_dshare_open(snd_pcm_t **pcmp, const char *name, - dshare->ipc_key = opts->ipc_key; - dshare->ipc_perm = opts->ipc_perm; - dshare->ipc_gid = opts->ipc_gid; -+ dshare->tstamp_type = opts->tstamp_type; - dshare->semid = -1; - dshare->shmid = -1; - -@@ -929,6 +930,9 @@ pcm.name { - # roundup - # rounddown - # auto (default) -+ tstamp_type STR # timestamp type -+ # STR can be one of the below strings : -+ # default, gettimeofday, monotonic, monotonic_raw - slave STR - # or - slave { # Slave definition -diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c -index 24f472c72c8e..c64df381e225 100644 ---- a/src/pcm/pcm_dsnoop.c -+++ b/src/pcm/pcm_dsnoop.c -@@ -591,6 +591,7 @@ int snd_pcm_dsnoop_open(snd_pcm_t **pcmp, const char *name, - dsnoop->ipc_key = opts->ipc_key; - dsnoop->ipc_perm = opts->ipc_perm; - dsnoop->ipc_gid = opts->ipc_gid; -+ dsnoop->tstamp_type = opts->tstamp_type; - dsnoop->semid = -1; - dsnoop->shmid = -1; - -@@ -780,6 +781,9 @@ pcm.name { - # roundup - # rounddown - # auto (default) -+ tstamp_type STR # timestamp type -+ # STR can be one of the below strings : -+ # default, gettimeofday, monotonic, monotonic_raw - slave STR - # or - slave { # Slave definition -diff --git a/src/pcm/pcm_local.h b/src/pcm/pcm_local.h -index 05ed935f1f16..89d4125b875d 100644 ---- a/src/pcm/pcm_local.h -+++ b/src/pcm/pcm_local.h -@@ -928,6 +928,8 @@ int INTERNAL(snd_pcm_hw_params_set_buffer_size_last)(snd_pcm_t *pcm, snd_pcm_hw_ - - int snd_pcm_sw_params_set_tstamp_mode(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_tstamp_t val); - int INTERNAL(snd_pcm_sw_params_get_tstamp_mode)(const snd_pcm_sw_params_t *params, snd_pcm_tstamp_t *val); -+int snd_pcm_sw_params_set_tstamp_type(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_tstamp_type_t val); -+int snd_pcm_sw_params_get_tstamp_type(const snd_pcm_sw_params_t *params, snd_pcm_tstamp_type_t *val); - int snd_pcm_sw_params_set_avail_min(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); - int INTERNAL(snd_pcm_sw_params_get_avail_min)(const snd_pcm_sw_params_t *params, snd_pcm_uframes_t *val); - int snd_pcm_sw_params_set_start_threshold(snd_pcm_t *pcm, snd_pcm_sw_params_t *params, snd_pcm_uframes_t val); --- -2.16.4 - diff --git a/0016-conf-USB-Audio-Fix-S-PDIF-output-of-ASUS-Xonar-AE.patch b/0016-conf-USB-Audio-Fix-S-PDIF-output-of-ASUS-Xonar-AE.patch deleted file mode 100644 index d74ffa5..0000000 --- a/0016-conf-USB-Audio-Fix-S-PDIF-output-of-ASUS-Xonar-AE.patch +++ /dev/null @@ -1,37 +0,0 @@ -From c996c9f52ced83a6f7b837fdc742e9b23e53a8a2 Mon Sep 17 00:00:00 2001 -From: Ivan Mironov -Date: Fri, 27 Mar 2020 00:46:45 +0500 -Subject: [PATCH 16/16] conf: USB-Audio: Fix S/PDIF output of ASUS Xonar AE - -ASUS Xonar AE is a PCI-Express card containing USB controller: - - USB controller [0c03]: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller [1b21:1142] - -and the actual USB sound card: - - ID 0b05:180f ASUSTek Computer, Inc. XONAR SOUND CARD - -As other Xonar USB sound cards, it uses second device for digital -output. - -Signed-off-by: Ivan Mironov -Signed-off-by: Jaroslav Kysela ---- - src/conf/cards/USB-Audio.conf | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf -index 89811086db1d..3f4c421b7e2c 100644 ---- a/src/conf/cards/USB-Audio.conf -+++ b/src/conf/cards/USB-Audio.conf -@@ -40,6 +40,7 @@ USB-Audio.pcm.iec958_device { - "USB Sound Blaster HD" 1 - "Xonar U7" 1 - "ASUS XONAR U5" 1 -+ "XONAR SOUND CARD" 1 - - # The below don't have digital in/out, so prevent them from being opened. - "Andrea PureAudio USB-SA Headset" 999 --- -2.16.4 - diff --git a/0017-pcm-rate-fix-the-remaining-size-calculation-in-snd_p.patch b/0017-pcm-rate-fix-the-remaining-size-calculation-in-snd_p.patch deleted file mode 100644 index 4d3d62f..0000000 --- a/0017-pcm-rate-fix-the-remaining-size-calculation-in-snd_p.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a43074ba17dd46878c7be447a50f9c4b5311929b Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Thu, 23 Apr 2020 13:43:32 +0200 -Subject: [PATCH 17/21] pcm: rate - fix the remaining size calculation in - snd_pcm_rate_drain() - -Signed-off-by: Jaroslav Kysela ---- - src/pcm/pcm_rate.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c -index fdcaa8de7382..21611f62c370 100644 ---- a/src/pcm/pcm_rate.c -+++ b/src/pcm/pcm_rate.c -@@ -1060,6 +1060,8 @@ static int snd_pcm_rate_drain(snd_pcm_t *pcm) - snd_pcm_sw_params(rate->gen.slave, &sw_params); - - size = rate->appl_ptr - rate->last_commit_ptr; -+ if (size > pcm->boundary) -+ size -= pcm->boundary; - ofs = rate->last_commit_ptr % pcm->buffer_size; - while (size > 0) { - snd_pcm_uframes_t psize, spsize; --- -2.16.4 - diff --git a/0018-use-case.h-add-USB-as-allowed-device-name.patch b/0018-use-case.h-add-USB-as-allowed-device-name.patch deleted file mode 100644 index ead18fb..0000000 --- a/0018-use-case.h-add-USB-as-allowed-device-name.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 4327660c7154344a0c6075d5a665a4e5b89fc78d Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Tue, 28 Apr 2020 12:58:41 +0200 -Subject: [PATCH 18/21] use-case.h: add USB as allowed device name - -Some USB devices are really generic where the -PCM stream can be routed to different paths. - -Signed-off-by: Jaroslav Kysela ---- - include/use-case.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/include/use-case.h b/include/use-case.h -index c2ba79a9fdb1..21df1de472d6 100644 ---- a/include/use-case.h -+++ b/include/use-case.h -@@ -140,6 +140,7 @@ extern "C" { - #define SND_USE_CASE_DEV_EARPIECE "Earpiece" /**< Earpiece Device */ - #define SND_USE_CASE_DEV_SPDIF "SPDIF" /**< SPDIF Device */ - #define SND_USE_CASE_DEV_HDMI "HDMI" /**< HDMI Device */ -+#define SND_USE_CASE_DEV_USB "USB" /**< USB Device (multifunctional) */ - /* add new devices to end of list */ - - --- -2.16.4 - diff --git a/0019-topology-Use-bool-parser-to-parse-boolean-value.patch b/0019-topology-Use-bool-parser-to-parse-boolean-value.patch deleted file mode 100644 index 8cda11e..0000000 --- a/0019-topology-Use-bool-parser-to-parse-boolean-value.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 496e239e65ecdab94358281b3b1346634a1476ef Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= - -Date: Fri, 17 Apr 2020 12:47:47 -0400 -Subject: [PATCH 19/21] topology: Use bool parser to parse boolean value -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It should be safe to change this as correct values with int would be 0 -or 1 and bool parser handles them correctly. - -Signed-off-by: Amadeusz Sławiński -Signed-off-by: Jaroslav Kysela ---- - src/topology/dapm.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/topology/dapm.c b/src/topology/dapm.c -index 70645126d0bc..cd1a87704681 100644 ---- a/src/topology/dapm.c -+++ b/src/topology/dapm.c -@@ -595,7 +595,8 @@ int tplg_parse_dapm_widget(snd_tplg_t *tplg, - } - - if (strcmp(id, "invert") == 0) { -- if (tplg_get_integer(n, &ival, 0)) -+ ival = snd_config_get_bool(n); -+ if (ival < 0) - return -EINVAL; - - widget->invert = ival; --- -2.16.4 - diff --git a/0020-fix-infinite-draining-of-the-rate-plugin-in-SND_PCM_.patch b/0020-fix-infinite-draining-of-the-rate-plugin-in-SND_PCM_.patch deleted file mode 100644 index 11e115d..0000000 --- a/0020-fix-infinite-draining-of-the-rate-plugin-in-SND_PCM_.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 29041c522071172af2c6bf086b3a0c19510a6660 Mon Sep 17 00:00:00 2001 -From: "sylvain.bertrand@gmail.com" -Date: Tue, 28 Apr 2020 12:09:18 +0000 -Subject: [PATCH 20/21] fix infinite draining of the rate plugin in - SND_PCM_NONBLOCK mode - -The draining function of the rate plugin does not handle properly the -SND_PCM_NONBLOCK case. It can write data to the slave plugin each time the -function is called, but does not update its internal state in order to -reach a stopping condition. Use a last_commit_ptr workaround to reach such -condition. - -Signed-off-by: Sylvain BERTRAND -Signed-off-by: Jaroslav Kysela ---- - src/pcm/pcm_rate.c | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c -index 21611f62c370..4f99a95b325f 100644 ---- a/src/pcm/pcm_rate.c -+++ b/src/pcm/pcm_rate.c -@@ -1051,6 +1051,7 @@ static int snd_pcm_rate_drain(snd_pcm_t *pcm) - /* commit the remaining fraction (if any) */ - snd_pcm_uframes_t size, ofs, saved_avail_min; - snd_pcm_sw_params_t sw_params; -+ int commit_err; - - __snd_pcm_lock(pcm); - /* temporarily set avail_min to one */ -@@ -1079,14 +1080,29 @@ static int snd_pcm_rate_drain(snd_pcm_t *pcm) - if (! spsize) - break; - } -- snd_pcm_rate_commit_area(pcm, rate, ofs, -+ commit_err = snd_pcm_rate_commit_area(pcm, rate, ofs, - psize, spsize); -+ if (commit_err == 1) { -+ rate->last_commit_ptr += psize; -+ if (rate->last_commit_ptr >= pcm->boundary) -+ rate->last_commit_ptr = 0; -+ } else if (commit_err == 0) { -+ if (pcm->mode & SND_PCM_NONBLOCK != 0) { -+ commit_err = -EAGAIN; -+ break; -+ } -+ continue; -+ } else -+ break; -+ - ofs = (ofs + psize) % pcm->buffer_size; - size -= psize; - } - sw_params.avail_min = saved_avail_min; - snd_pcm_sw_params(rate->gen.slave, &sw_params); - __snd_pcm_unlock(pcm); -+ if (commit_err < 0) -+ return commit_err; - } - return snd_pcm_drain(rate->gen.slave); - } --- -2.16.4 - diff --git a/0021-test-pcm_min-add-snd_pcm_drain-call-and-indentation-.patch b/0021-test-pcm_min-add-snd_pcm_drain-call-and-indentation-.patch deleted file mode 100644 index 1460cfb..0000000 --- a/0021-test-pcm_min-add-snd_pcm_drain-call-and-indentation-.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 21e2fc3857b842e8b47f77da785248edbaa69f5f Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Sun, 3 May 2020 20:07:29 +0200 -Subject: [PATCH 21/21] test: pcm_min - add snd_pcm_drain() call and - indentation fixes - -Fixes: https://github.com/alsa-project/alsa-lib/issues/46 -Signed-off-by: Jaroslav Kysela ---- - test/pcm_min.c | 50 ++++++++++++++++++++++++++------------------------ - 1 file changed, 26 insertions(+), 24 deletions(-) - -diff --git a/test/pcm_min.c b/test/pcm_min.c -index 7462a45fef33..4c120b4c2b27 100644 ---- a/test/pcm_min.c -+++ b/test/pcm_min.c -@@ -5,47 +5,49 @@ - #include "../include/asoundlib.h" - - static char *device = "default"; /* playback device */ -- --snd_output_t *output = NULL; - unsigned char buffer[16*1024]; /* some random data */ - - int main(void) - { -- int err; -- unsigned int i; -- snd_pcm_t *handle; -- snd_pcm_sframes_t frames; -+ int err; -+ unsigned int i; -+ snd_pcm_t *handle; -+ snd_pcm_sframes_t frames; - -- for (i = 0; i < sizeof(buffer); i++) -- buffer[i] = random() & 0xff; -+ for (i = 0; i < sizeof(buffer); i++) -+ buffer[i] = random() & 0xff; - - if ((err = snd_pcm_open(&handle, device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) { - printf("Playback open error: %s\n", snd_strerror(err)); - exit(EXIT_FAILURE); - } - if ((err = snd_pcm_set_params(handle, -- SND_PCM_FORMAT_U8, -- SND_PCM_ACCESS_RW_INTERLEAVED, -- 1, -- 48000, -- 1, -- 500000)) < 0) { /* 0.5sec */ -+ SND_PCM_FORMAT_U8, -+ SND_PCM_ACCESS_RW_INTERLEAVED, -+ 1, -+ 48000, -+ 1, -+ 500000)) < 0) { /* 0.5sec */ - printf("Playback open error: %s\n", snd_strerror(err)); - exit(EXIT_FAILURE); - } - - for (i = 0; i < 16; i++) { -- frames = snd_pcm_writei(handle, buffer, sizeof(buffer)); -- if (frames < 0) -- frames = snd_pcm_recover(handle, frames, 0); -- if (frames < 0) { -- printf("snd_pcm_writei failed: %s\n", snd_strerror(frames)); -- break; -- } -- if (frames > 0 && frames < (long)sizeof(buffer)) -- printf("Short write (expected %li, wrote %li)\n", (long)sizeof(buffer), frames); -- } -+ frames = snd_pcm_writei(handle, buffer, sizeof(buffer)); -+ if (frames < 0) -+ frames = snd_pcm_recover(handle, frames, 0); -+ if (frames < 0) { -+ printf("snd_pcm_writei failed: %s\n", snd_strerror(frames)); -+ break; -+ } -+ if (frames > 0 && frames < (long)sizeof(buffer)) -+ printf("Short write (expected %li, wrote %li)\n", (long)sizeof(buffer), frames); -+ } - -+ /* pass the remaining samples, otherwise they're dropped in close */ -+ err = snd_pcm_drain(handle); -+ if (err < 0) -+ printf("snd_pcm_drain failed: %s\n", snd_strerror(err)); - snd_pcm_close(handle); - return 0; - } --- -2.16.4 - diff --git a/alsa-lib-1.2.2.tar.bz2 b/alsa-lib-1.2.2.tar.bz2 deleted file mode 120000 index c997696..0000000 --- a/alsa-lib-1.2.2.tar.bz2 +++ /dev/null @@ -1 +0,0 @@ -/ipfs/bafybeignrex4rd73dpa5tep5cuwr3cvvdwv2ogjl3klkmg2yvun2nvonli \ No newline at end of file diff --git a/alsa-lib-1.2.3.tar.bz2 b/alsa-lib-1.2.3.tar.bz2 new file mode 120000 index 0000000..802a9f8 --- /dev/null +++ b/alsa-lib-1.2.3.tar.bz2 @@ -0,0 +1 @@ +/ipfs/bafybeiar2hq27pterjd2ejuodx7cr5jim6ttr5nlek2ndoc26id664mdka \ No newline at end of file diff --git a/alsa.changes b/alsa.changes index 0a6cf96..57bc130 100644 --- a/alsa.changes +++ b/alsa.changes @@ -1,4 +1,33 @@ ------------------------------------------------------------------- +Tue Jun 9 11:15:28 CEST 2020 - tiwai@suse.de + +- Update to alsa-lib 1.2.3: + including previous fixes, see the detailed changes at: + https://www.alsa-project.org/wiki/Detailed_changes_v1.2.2_v1.2.3 +- Drop obsoleted patches: + 0001-conf-change-the-order-of-PCM-devices-in-alsa.conf.patch + 0002-conf-namehint-add-omit_noargs-to-the-hint-section.patch + 0003-Change-PCM-device-number-of-Asus-Xonar-U5.patch + 0004-configure-add-embed-for-python3-config-python-3.8.patch + 0005-conf-USB-Audio-Add-C-Media-USB-Headphone-Set-to-the-.patch + 0006-topology-add-back-asrc-to-widget_map-in-dapm.c.patch + 0007-ucm-clarify-the-index-syntax-for-the-device-names.patch + 0008-ucm-fix-uc_mgr_scan_master_configs.patch + 0009-namehint-remember-the-direction-from-the-upper-level.patch + 0010-conf-fix-namehint-for-pcm.front-and-pcm.iec958.patch + 0011-pcm-add-chmap-option-to-route-plugin.patch + 0012-usecase-allow-indexes-also-for-modifier-names.patch + 0013-ucm-fix-the-device-remove-operation.patch + 0014-ucm-fix-copy-n-paste-typo-RemoveDevice-list.patch + 0015-pcm-dmix-fix-sw_params-handling-of-timestamp-types-i.patch + 0016-conf-USB-Audio-Fix-S-PDIF-output-of-ASUS-Xonar-AE.patch + 0017-pcm-rate-fix-the-remaining-size-calculation-in-snd_p.patch + 0018-use-case.h-add-USB-as-allowed-device-name.patch + 0019-topology-Use-bool-parser-to-parse-boolean-value.patch + 0020-fix-infinite-draining-of-the-rate-plugin-in-SND_PCM_.patch + 0021-test-pcm_min-add-snd_pcm_drain-call-and-indentation-.patch + +------------------------------------------------------------------- Wed May 6 16:01:32 CEST 2020 - tiwai@suse.de - Revert a problematic namehint change (boo#1171044) diff --git a/alsa.spec b/alsa.spec index 65136e3..73061e0 100644 --- a/alsa.spec +++ b/alsa.spec @@ -26,7 +26,7 @@ %endif Name: alsa -Version: 1.2.2 +Version: 1.2.3 Release: 0 Summary: Advanced Linux Sound Architecture License: LGPL-2.1-or-later @@ -47,28 +47,6 @@ Source30: all_notes_off Source31: all_notes_off.bin Source32: all_notes_off.mid Source34: alsa-init.sh -# upstream fixes -Patch1: 0001-conf-change-the-order-of-PCM-devices-in-alsa.conf.patch -Patch2: 0002-conf-namehint-add-omit_noargs-to-the-hint-section.patch -Patch3: 0003-Change-PCM-device-number-of-Asus-Xonar-U5.patch -Patch4: 0004-configure-add-embed-for-python3-config-python-3.8.patch -Patch5: 0005-conf-USB-Audio-Add-C-Media-USB-Headphone-Set-to-the-.patch -Patch6: 0006-topology-add-back-asrc-to-widget_map-in-dapm.c.patch -Patch7: 0007-ucm-clarify-the-index-syntax-for-the-device-names.patch -Patch8: 0008-ucm-fix-uc_mgr_scan_master_configs.patch -Patch9: 0009-namehint-remember-the-direction-from-the-upper-level.patch -Patch10: 0010-conf-fix-namehint-for-pcm.front-and-pcm.iec958.patch -Patch11: 0011-pcm-add-chmap-option-to-route-plugin.patch -Patch12: 0012-usecase-allow-indexes-also-for-modifier-names.patch -Patch13: 0013-ucm-fix-the-device-remove-operation.patch -Patch14: 0014-ucm-fix-copy-n-paste-typo-RemoveDevice-list.patch -Patch15: 0015-pcm-dmix-fix-sw_params-handling-of-timestamp-types-i.patch -Patch16: 0016-conf-USB-Audio-Fix-S-PDIF-output-of-ASUS-Xonar-AE.patch -Patch17: 0017-pcm-rate-fix-the-remaining-size-calculation-in-snd_p.patch -Patch18: 0018-use-case.h-add-USB-as-allowed-device-name.patch -Patch19: 0019-topology-Use-bool-parser-to-parse-boolean-value.patch -Patch20: 0020-fix-infinite-draining-of-the-rate-plugin-in-SND_PCM_.patch -Patch21: 0021-test-pcm_min-add-snd_pcm_drain-call-and-indentation-.patch # rest suse fixes Patch101: alsa-lib-ignore-non-accessible-ALSA_CONFIG_PATH.patch BuildRequires: doxygen @@ -153,30 +131,6 @@ This package contains the library for ALSA topology support. %prep %setup -q -n alsa-lib-%{version} -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -# causing a regression for capture streams on some apps (boo#1171044) -%if 0 -%patch10 -p1 -%endif -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 -%patch18 -p1 -%patch19 -p1 -%patch20 -p1 -%patch21 -p1 %patch101 -p1 %build