diff --git a/0001-conf-pcm-Add-support-for-Echo3G-devices.-Thanks-to-u.patch b/0001-conf-pcm-Add-support-for-Echo3G-devices.-Thanks-to-u.patch deleted file mode 100644 index 2f643a3..0000000 --- a/0001-conf-pcm-Add-support-for-Echo3G-devices.-Thanks-to-u.patch +++ /dev/null @@ -1,355 +0,0 @@ -From 65298d98f3b1222001283a2bfc92eecb12096def Mon Sep 17 00:00:00 2001 -From: Luke Yelavich -Date: Wed, 8 Feb 2012 15:09:55 +1100 -Subject: [PATCH 01/14] conf/pcm: Add support for Echo3G devices. Thanks to - unimatrix. - -BugLink: https://bugs.launchpad.net/bugs/433573 - -Signed-off-by: Luke Yelavich -Signed-off-by: Jaroslav Kysela ---- - src/conf/cards/Echo_Echo3G.conf | 318 +++++++++++++++++++++++++++++++++++++++ - src/conf/cards/Makefile.am | 1 + - 2 files changed, 319 insertions(+) - create mode 100644 src/conf/cards/Echo_Echo3G.conf - -diff --git a/src/conf/cards/Echo_Echo3G.conf b/src/conf/cards/Echo_Echo3G.conf -new file mode 100644 -index 0000000..766f13f ---- /dev/null -+++ b/src/conf/cards/Echo_Echo3G.conf -@@ -0,0 +1,318 @@ -+# -+# Configuration for the Echo3G driver -+# -+ -+ -+Echo_Echo3G.pcm.front.0 { -+ @args [ CARD ] -+ @args.CARD { -+ type string -+ } -+ type hw -+ card $CARD -+ device 0 -+ subdevice 0 -+} -+ -+ -+Echo_Echo3G.pcm.rear.0 { -+ @args [ CARD ] -+ @args.CARD { -+ type string -+ } -+ type hw -+ card $CARD -+ device 0 -+ subdevice 4 -+} -+ -+ -+Echo_Echo3G.pcm.center_lfe.0 { -+ @args [ CARD ] -+ @args.CARD { -+ type string -+ } -+ type hw -+ card $CARD -+ device 0 -+ subdevice 2 -+} -+ -+ -+Echo_Echo3G.pcm.side.0 { -+ @args [ CARD ] -+ @args.CARD { -+ type string -+ } -+ type hw -+ card $CARD -+ device 0 -+ subdevice 6 -+} -+ -+ -+Echo_Echo3G.pcm.surround40.0 { -+ @args [ CARD ] -+ @args.CARD { -+ type string -+ } -+ type multi -+ slaves [ -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ ] -+ bindings [ -+ { slave 0 channel 0 } -+ { slave 0 channel 1 } -+ { slave 1 channel 0 } -+ { slave 1 channel 1 } -+ ] -+} -+ -+ -+Echo_Echo3G.pcm.surround41.0 { -+ @args [ CARD ] -+ @args.CARD { -+ type string -+ } -+ type multi -+ slaves [ -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.center_lfe.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ ] -+ bindings [ -+ { slave 0 channel 0 } -+ { slave 0 channel 1 } -+ { slave 1 channel 0 } -+ { slave 1 channel 1 } -+ { slave 2 channel 0 } -+ ] -+} -+ -+ -+Echo_Echo3G.pcm.surround50.0 { -+ @args [ CARD ] -+ @args.CARD { -+ type string -+ } -+ type multi -+ slaves [ -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.center_lfe.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ ] -+ bindings [ -+ { slave 0 channel 0 } -+ { slave 0 channel 1 } -+ { slave 1 channel 0 } -+ { slave 1 channel 1 } -+ { slave 2 channel 1 } -+ ] -+} -+ -+ -+Echo_Echo3G.pcm.surround51.0 { -+ @args [ CARD ] -+ @args.CARD { -+ type string -+ } -+ type multi -+ slaves [ -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.center_lfe.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ ] -+ bindings [ -+ { slave 0 channel 0 } -+ { slave 0 channel 1 } -+ { slave 1 channel 0 } -+ { slave 1 channel 1 } -+ { slave 2 channel 0 } -+ { slave 2 channel 1 } -+ ] -+} -+ -+ -+Echo_Echo3G.pcm.surround71.0 { -+ @args [ CARD ] -+ @args.CARD { -+ type string -+ } -+ type multi -+ slaves [ -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.front.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.rear.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.center_lfe.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ { -+ pcm { -+ @func concat -+ strings [ -+ "cards.Echo_Echo3G.pcm.side.0:CARD=" $CARD -+ ] -+ } -+ channels 2 -+ } -+ ] -+ bindings [ -+ { slave 0 channel 0 } -+ { slave 0 channel 1 } -+ { slave 1 channel 0 } -+ { slave 1 channel 1 } -+ { slave 2 channel 0 } -+ { slave 2 channel 1 } -+ { slave 3 channel 0 } -+ { slave 3 channel 1 } -+ ] -+} -+ -+ -+Echo_Echo3G.pcm.iec958.0 { -+ @args [ CARD AES0 AES1 AES2 AES3 ] -+ @args.CARD { -+ type string -+ } -+ @args.AES0 { -+ type integer -+ } -+ @args.AES1 { -+ type integer -+ } -+ @args.AES2 { -+ type integer -+ } -+ @args.AES3 { -+ type integer -+ } -+ type hooks -+ slave.pcm { -+ type hw -+ card $CARD -+ device 1 -+ } -+ -+ hooks.0 { -+ type ctl_elems -+ hook_args [ -+ { -+ interface PCM -+ name "IEC958 Playback Default" -+ preserve true -+ optional true -+ value [ $AES0 $AES1 $AES2 $AES3 ] -+ } -+ ] -+ } -+} -diff --git a/src/conf/cards/Makefile.am b/src/conf/cards/Makefile.am -index b7190e7..ee7991b 100644 ---- a/src/conf/cards/Makefile.am -+++ b/src/conf/cards/Makefile.am -@@ -19,6 +19,7 @@ cfg_files = aliases.conf \ - CMI8738-MC8.conf \ - CMI8788.conf \ - CS46xx.conf \ -+ Echo_Echo3G.conf \ - EMU10K1.conf \ - EMU10K1X.conf \ - ENS1370.conf \ --- -1.7.9.2 - diff --git a/0002-USB-Audio-Blacklist-iec958-for-some-USB-devices.patch b/0002-USB-Audio-Blacklist-iec958-for-some-USB-devices.patch deleted file mode 100644 index 7000d0a..0000000 --- a/0002-USB-Audio-Blacklist-iec958-for-some-USB-devices.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 1a9627dfe74d373010bbd41d738eda25e03f2231 Mon Sep 17 00:00:00 2001 -From: David Henningsson -Date: Fri, 9 Mar 2012 11:46:06 +0100 -Subject: [PATCH 02/14] USB-Audio: Blacklist iec958 for some USB devices - -Some common USB devices are analog only, so prevent the digital -devices from being opened. This simplifies probing the device -in PulseAudio. - -I have a "Logitech USB Headset" myself, the "Logitech Web Camera" -was reported by Raymond Yau, and the "Blue Snowball" was reported by -Andy Whitcroft. - -Cc: Andy Whitcroft -Cc: Raymond Yau -BugLink: https://bugs.launchpad.net/bugs/940145 -Signed-off-by: David Henningsson -Signed-off-by: Takashi Iwai ---- - src/conf/cards/USB-Audio.conf | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf -index 0726c34..d7c121e 100644 ---- a/src/conf/cards/USB-Audio.conf -+++ b/src/conf/cards/USB-Audio.conf -@@ -36,6 +36,11 @@ USB-Audio.pcm.surround40_type { - # number for the iec958 device can be changed here. - USB-Audio.pcm.iec958_device { - # "NoiseBlaster 3000" 42 -+ -+ # The below don't have digital in/out, so prevent them from being opened. -+ "Logitech USB Headset" 999 -+ "Logitech Web Camera" 999 -+ "Blue Snowball" 999 - } - - --- -1.7.9.2 - diff --git a/0003-USB-Audio-Fixup-card-name-for-Logitech-web-camera.patch b/0003-USB-Audio-Fixup-card-name-for-Logitech-web-camera.patch deleted file mode 100644 index 1e9ac98..0000000 --- a/0003-USB-Audio-Fixup-card-name-for-Logitech-web-camera.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 947d208076e3e7e7ff167833ec3335804a6b7d2a Mon Sep 17 00:00:00 2001 -From: David Henningsson -Date: Fri, 9 Mar 2012 14:06:04 +0100 -Subject: [PATCH 03/14] USB-Audio: Fixup card name for Logitech web camera - -Reported-by: Raymond Yau -Signed-off-by: David Henningsson -Signed-off-by: Takashi Iwai ---- - src/conf/cards/USB-Audio.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf -index d7c121e..966172f 100644 ---- a/src/conf/cards/USB-Audio.conf -+++ b/src/conf/cards/USB-Audio.conf -@@ -39,7 +39,7 @@ USB-Audio.pcm.iec958_device { - - # The below don't have digital in/out, so prevent them from being opened. - "Logitech USB Headset" 999 -- "Logitech Web Camera" 999 -+ "USB Device 0x46d:0x992" 999 - "Blue Snowball" 999 - } - --- -1.7.9.2 - diff --git a/0004-mixer-Remove-redundant-CHECK_ENUM-from-snd_mixer_sel.patch b/0004-mixer-Remove-redundant-CHECK_ENUM-from-snd_mixer_sel.patch deleted file mode 100644 index ac16554..0000000 --- a/0004-mixer-Remove-redundant-CHECK_ENUM-from-snd_mixer_sel.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 2ab86d96c9c9f63212eee89f92f516d537b086e1 Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Tue, 13 Mar 2012 14:30:22 +0100 -Subject: [PATCH 04/14] mixer: Remove redundant CHECK_ENUM() from - snd_mixer_selem_is_enum*() - -The functions to check whether the element is an enum don't need the -extra check of the type. It should return simply 0 or 1 without error. - -Signed-off-by: Takashi Iwai ---- - src/mixer/simple.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/src/mixer/simple.c b/src/mixer/simple.c -index 8079fe7..ec22a9c 100644 ---- a/src/mixer/simple.c -+++ b/src/mixer/simple.c -@@ -889,7 +889,6 @@ int snd_mixer_selem_is_enumerated(snd_mixer_elem_t *elem) - int snd_mixer_selem_is_enum_playback(snd_mixer_elem_t *elem) - { - CHECK_BASIC(elem); -- CHECK_ENUM(elem); - return sm_selem_ops(elem)->is(elem, SM_PLAY, SM_OPS_IS_ENUMERATED, 1); - } - -@@ -901,7 +900,6 @@ int snd_mixer_selem_is_enum_playback(snd_mixer_elem_t *elem) - int snd_mixer_selem_is_enum_capture(snd_mixer_elem_t *elem) - { - CHECK_BASIC(elem); -- CHECK_ENUM(elem); - return sm_selem_ops(elem)->is(elem, SM_CAPT, SM_OPS_IS_ENUMERATED, 1); - } - --- -1.7.9.2 - diff --git a/0005-seqmid-more-descriptions-on-snd_seq_parse_address-be.patch b/0005-seqmid-more-descriptions-on-snd_seq_parse_address-be.patch deleted file mode 100644 index a5226d2..0000000 --- a/0005-seqmid-more-descriptions-on-snd_seq_parse_address-be.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 193724743965d4548d632ebfde15c0c5d3c44e9d Mon Sep 17 00:00:00 2001 -From: Henning Thielemann -Date: Wed, 14 Mar 2012 18:45:02 +0100 -Subject: [PATCH 05/14] seqmid - more descriptions on snd_seq_parse_address() - behavior - -Signed-off-by: Takashi Iwai ---- - src/seq/seqmid.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/src/seq/seqmid.c b/src/seq/seqmid.c -index 894c3a2..2ff7e8d 100644 ---- a/src/seq/seqmid.c -+++ b/src/seq/seqmid.c -@@ -378,9 +378,18 @@ int snd_seq_sync_output_queue(snd_seq_t *seq) - * \return 0 on success or negative error code - * - * This function parses the sequencer client and port numbers from the given string. -- * The client and port tokes are separated by either colon or period, e.g. 128:1. -+ * The client and port tokens are separated by either colon or period, e.g. 128:1. - * When \a seq is not NULL, the function accepts also a client name not only - * digit numbers. -+ * Actually \a arg need to be only a prefix of the wanted client. -+ * That is, if a client named "Foobar XXL Master 2012" with number 128 is available, -+ * then parsing "Foobar" will return the address 128:0. -+ * However parsing is biased towards small client numbers, -+ * thus if also a client named "Foobar" with number 129 exists, -+ * then parsing will still yield address 128:0 and not 129:0. -+ * If you want be able to access all clients by prefixes -+ * then you must write your own parser that checks for matching client names -+ * in the order of increasing name lengths. - */ - int snd_seq_parse_address(snd_seq_t *seq, snd_seq_addr_t *addr, const char *arg) - { --- -1.7.9.2 - diff --git a/0006-doc-Fix-typo-in-PCM-formats.patch b/0006-doc-Fix-typo-in-PCM-formats.patch deleted file mode 100644 index df4de77..0000000 --- a/0006-doc-Fix-typo-in-PCM-formats.patch +++ /dev/null @@ -1,37 +0,0 @@ -From e5c4c248a1ad6a84140759bfe6a26348c222a929 Mon Sep 17 00:00:00 2001 -From: Adrian Knoth -Date: Tue, 27 Mar 2012 17:54:47 +0200 -Subject: [PATCH 06/14] doc: Fix typo in PCM formats - -Of course, 24bit samples are not stored in three bits, but bytes. - -Signed-off-by: Adrian Knoth -Signed-off-by: Takashi Iwai ---- - src/pcm/pcm.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c -index ea1afdc..18b43b3 100644 ---- a/src/pcm/pcm.c -+++ b/src/pcm/pcm.c -@@ -209,13 +209,13 @@ The device is physicaly disconnected. It does not accept any I/O calls in this s - \section pcm_formats PCM formats - - The full list of formats present the #snd_pcm_format_t type. --The 24-bit linear samples uses 32-bit physical space, but the sample is --stored in low three bits. Some hardware does not support processing of full -+The 24-bit linear samples use 32-bit physical space, but the sample is -+stored in the lower three bytes. Some hardware does not support processing of full - range, thus you may get the significant bits for linear samples via - #snd_pcm_hw_params_get_sbits() function. The example: ICE1712 - chips support 32-bit sample processing, but low byte is ignored (playback) - or zero (capture). The function snd_pcm_hw_params_get_sbits() --returns 24 in the case. -+returns 24 in this case. - - \section alsa_transfers ALSA transfers - --- -1.7.9.2 - diff --git a/0007-alsa-lib-conf-block-S-PDIF-access-for-Sennheiser-USB.patch b/0007-alsa-lib-conf-block-S-PDIF-access-for-Sennheiser-USB.patch deleted file mode 100644 index 85e3615..0000000 --- a/0007-alsa-lib-conf-block-S-PDIF-access-for-Sennheiser-USB.patch +++ /dev/null @@ -1,30 +0,0 @@ -From ed0e48583fbd9dc9d86dad25bb26ac089b9e3528 Mon Sep 17 00:00:00 2001 -From: David Henningsson -Date: Sat, 14 Apr 2012 01:14:09 +0200 -Subject: [PATCH 07/14] alsa-lib conf: block S/PDIF access for Sennheiser USB - headset - -The Sennheiser USB headset has no S/PDIF input or output, so make -sure we can't open it that way. - -Signed-off-by: David Henningsson -Signed-off-by: Takashi Iwai ---- - 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 966172f..b9148e7 100644 ---- a/src/conf/cards/USB-Audio.conf -+++ b/src/conf/cards/USB-Audio.conf -@@ -38,6 +38,7 @@ USB-Audio.pcm.iec958_device { - # "NoiseBlaster 3000" 42 - - # The below don't have digital in/out, so prevent them from being opened. -+ "Sennheiser USB headset" 999 - "Logitech USB Headset" 999 - "USB Device 0x46d:0x992" 999 - "Blue Snowball" 999 --- -1.7.9.2 - diff --git a/0008-control_external-Add-ability-to-specify-TLV-data.patch b/0008-control_external-Add-ability-to-specify-TLV-data.patch deleted file mode 100644 index 9492c56..0000000 --- a/0008-control_external-Add-ability-to-specify-TLV-data.patch +++ /dev/null @@ -1,139 +0,0 @@ -From a6c50d64d9d06cece520d0ab9b109990241af47b Mon Sep 17 00:00:00 2001 -From: Dylan Reid -Date: Sun, 15 Apr 2012 16:59:55 -0700 -Subject: [PATCH 08/14] control_external: Add ability to specify TLV data. - -Allow external control plugins to provide TLV data. This allows -user-space pcms to specify dB ranges for controls. - -This follows the same model as the ALSA drivers for accessing the -data. The code is based on that implementation. The control can -provide static data or a callback. The data is accessed or modified -in the new snd_ctl_ext_elem_tlv callback. - -Rev bump the protocol version to enable checking if an external -control supports TLV. - -Signed-off-by: Dylan Reid -Signed-off-by: Takashi Iwai ---- - include/control_external.h | 17 +++++++++++++++- - src/control/control_ext.c | 46 ++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 62 insertions(+), 1 deletion(-) - -diff --git a/include/control_external.h b/include/control_external.h -index 7c066cf..5392ea6 100644 ---- a/include/control_external.h -+++ b/include/control_external.h -@@ -60,13 +60,16 @@ typedef struct snd_ctl_ext snd_ctl_ext_t; - typedef struct snd_ctl_ext_callback snd_ctl_ext_callback_t; - /** Key to access a control pointer */ - typedef unsigned long snd_ctl_ext_key_t; -+/** Callback to handle TLV commands. */ -+typedef int (snd_ctl_ext_tlv_rw_t)(snd_ctl_ext_t *ext, snd_ctl_ext_key_t key, int op_flag, unsigned int numid, -+ unsigned int *tlv, unsigned int tlv_size); - - /* - * Protocol version - */ - #define SND_CTL_EXT_VERSION_MAJOR 1 /**< Protocol major version */ - #define SND_CTL_EXT_VERSION_MINOR 0 /**< Protocol minor version */ --#define SND_CTL_EXT_VERSION_TINY 0 /**< Protocol tiny version */ -+#define SND_CTL_EXT_VERSION_TINY 1 /**< Protocol tiny version */ - /** - * external plugin protocol version - */ -@@ -122,6 +125,13 @@ struct snd_ctl_ext { - * control handle filled by #snd_ctl_ext_create() - */ - snd_ctl_t *handle; -+ /** -+ * optional TLV data for the control. -+ */ -+ union { -+ snd_ctl_ext_tlv_rw_t *c; -+ const unsigned int *p; -+ } tlv; - - int nonblock; /**< non-block mode; read-only */ - int subscribed; /**< events subscribed; read-only */ -@@ -245,7 +255,12 @@ typedef enum snd_ctl_ext_access { - SND_CTL_EXT_ACCESS_WRITE = (1<<1), - SND_CTL_EXT_ACCESS_READWRITE = (3<<0), - SND_CTL_EXT_ACCESS_VOLATILE = (1<<2), -+ SND_CTL_EXT_ACCESS_TLV_READ = (1<<4), -+ SND_CTL_EXT_ACCESS_TLV_WRITE = (1<<5), -+ SND_CTL_EXT_ACCESS_TLV_READWRITE = (3<<4), -+ SND_CTL_EXT_ACCESS_TLV_COMMAND = (1<<6), - SND_CTL_EXT_ACCESS_INACTIVE = (1<<8), -+ SND_CTL_EXT_ACCESS_TLV_CALLBACK = (1<<28), - } snd_ctl_ext_access_t; - - /** -diff --git a/src/control/control_ext.c b/src/control/control_ext.c -index e20d4f3..cc30766 100644 ---- a/src/control/control_ext.c -+++ b/src/control/control_ext.c -@@ -324,6 +324,51 @@ static int snd_ctl_ext_elem_unlock(snd_ctl_t *handle ATTRIBUTE_UNUSED, - return -ENXIO; - } - -+static int snd_ctl_ext_elem_tlv(snd_ctl_t *handle, int op_flag, -+ unsigned int numid, -+ unsigned int *tlv, unsigned int tlv_size) -+{ -+ snd_ctl_ext_t *ext = handle->private_data; -+ snd_ctl_ext_key_t key; -+ int type, ret; -+ unsigned int access, count, len; -+ snd_ctl_elem_id_t id; -+ -+ /* we don't support TLV on protocol ver 1.0.0 or earlier */ -+ if (ext->version <= SNDRV_PROTOCOL_VERSION(1, 0, 0)) -+ return -ENXIO; -+ -+ snd_ctl_elem_id_clear(&id); -+ if (numid > 0) { -+ ext->callback->elem_list(ext, numid - 1, &id); -+ id.numid = numid; -+ } else -+ id.numid = 0; -+ key = ext->callback->find_elem(ext, &id); -+ -+ if (key == SND_CTL_EXT_KEY_NOT_FOUND) -+ return -ENOENT; -+ ret = ext->callback->get_attribute(ext, key, &type, &access, &count); -+ if (ret < 0) -+ return ret; -+ -+ if ((op_flag == 0 && (access & SND_CTL_EXT_ACCESS_TLV_READ) == 0) || -+ (op_flag > 0 && (access & SND_CTL_EXT_ACCESS_TLV_WRITE) == 0) || -+ (op_flag < 0 && (access & SND_CTL_EXT_ACCESS_TLV_COMMAND) == 0)) -+ return -ENXIO; -+ if (access & SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK) { -+ return ext->tlv.c(ext, key, op_flag, numid, tlv, tlv_size); -+ } else { -+ if (op_flag) -+ return -ENXIO; -+ len = ext->tlv.p[1] + 2 * sizeof(unsigned int); -+ if (tlv_size < len) -+ return -ENOMEM; -+ memcpy(tlv, ext->tlv.p, len); -+ return 0; -+ } -+} -+ - static int snd_ctl_ext_next_device(snd_ctl_t *handle ATTRIBUTE_UNUSED, - int *device ATTRIBUTE_UNUSED) - { -@@ -429,6 +474,7 @@ static const snd_ctl_ops_t snd_ctl_ext_ops = { - .element_write = snd_ctl_ext_elem_write, - .element_lock = snd_ctl_ext_elem_lock, - .element_unlock = snd_ctl_ext_elem_unlock, -+ .element_tlv = snd_ctl_ext_elem_tlv, - .hwdep_next_device = snd_ctl_ext_next_device, - .hwdep_info = snd_ctl_ext_hwdep_info, - .pcm_next_device = snd_ctl_ext_next_device, --- -1.7.9.2 - diff --git a/0009-alsa-lib-conf-Add-two-more-USB-devices-to-iec958-bla.patch b/0009-alsa-lib-conf-Add-two-more-USB-devices-to-iec958-bla.patch deleted file mode 100644 index d6972cb..0000000 --- a/0009-alsa-lib-conf-Add-two-more-USB-devices-to-iec958-bla.patch +++ /dev/null @@ -1,40 +0,0 @@ -From bb5c49fa4160ec1d819fb03fc8dfb5387dad0522 Mon Sep 17 00:00:00 2001 -From: David Henningsson -Date: Mon, 23 Apr 2012 10:39:13 +0200 -Subject: [PATCH 09/14] alsa-lib conf: Add two more USB devices to iec958 - blacklist - -Add "Logitech Wireless Headset" and "Logitech Speaker Lapdesk N700" to -the iec958 blacklist. -Also reorder the list in alphabetic order. - -BugLink: https://bugs.launchpad.net/bugs/987163 -Reported-by: Jean-Baptiste Lallement -Signed-off-by: David Henningsson -Signed-off-by: Takashi Iwai ---- - src/conf/cards/USB-Audio.conf | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf -index b9148e7..0a0e374 100644 ---- a/src/conf/cards/USB-Audio.conf -+++ b/src/conf/cards/USB-Audio.conf -@@ -38,10 +38,12 @@ USB-Audio.pcm.iec958_device { - # "NoiseBlaster 3000" 42 - - # The below don't have digital in/out, so prevent them from being opened. -- "Sennheiser USB headset" 999 -+ "Blue Snowball" 999 -+ "Logitech Speaker Lapdesk N700" 999 - "Logitech USB Headset" 999 -+ "Logitech Wireless Headset" 999 -+ "Sennheiser USB headset" 999 - "USB Device 0x46d:0x992" 999 -- "Blue Snowball" 999 - } - - --- -1.7.9.2 - diff --git a/0010-Fix-invalid-long-long-format-specifier.patch b/0010-Fix-invalid-long-long-format-specifier.patch deleted file mode 100644 index 444c020..0000000 --- a/0010-Fix-invalid-long-long-format-specifier.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 1d3f7975f920f47e6a8a324f547da2180e64171a Mon Sep 17 00:00:00 2001 -From: John Spencer -Date: Tue, 24 Apr 2012 12:58:48 +0200 -Subject: [PATCH 10/14] Fix invalid long long format specifier - -Per POSIX: - - L Specifies that a following a, A, e, E, f, F, g, or G conversion - specifier applies to a long double argument. - -L is only intended to be used with long doubles, not long long ints. - -the proper way is to use "ll" instead. - -Signed-off-by: John Spencer -Signed-off-by: Takashi Iwai ---- - src/conf.c | 6 +++--- - test/midiloop.c | 2 +- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/conf.c b/src/conf.c -index 5b1b5a6..32446a2 100644 ---- a/src/conf.c -+++ b/src/conf.c -@@ -496,7 +496,7 @@ static int safe_strtoll(const char *str, long long *val) - if (!*str) - return -EINVAL; - errno = 0; -- if (sscanf(str, "%Li%n", &v, &endidx) < 1) -+ if (sscanf(str, "%lli%n", &v, &endidx) < 1) - return -EINVAL; - if (str[endidx]) - return -EINVAL; -@@ -1378,7 +1378,7 @@ static int _snd_config_save_node_value(snd_config_t *n, snd_output_t *out, - snd_output_printf(out, "%ld", n->u.integer); - break; - case SND_CONFIG_TYPE_INTEGER64: -- snd_output_printf(out, "%Ld", n->u.integer64); -+ snd_output_printf(out, "%lld", n->u.integer64); - break; - case SND_CONFIG_TYPE_REAL: - snd_output_printf(out, "%-16g", n->u.real); -@@ -2630,7 +2630,7 @@ int snd_config_get_ascii(const snd_config_t *config, char **ascii) - { - char res[32]; - int err; -- err = snprintf(res, sizeof(res), "%Li", config->u.integer64); -+ err = snprintf(res, sizeof(res), "%lli", config->u.integer64); - if (err < 0 || err == sizeof(res)) { - assert(0); - return -ENOMEM; -diff --git a/test/midiloop.c b/test/midiloop.c -index ee2e563..d6548b5 100644 ---- a/test/midiloop.c -+++ b/test/midiloop.c -@@ -175,7 +175,7 @@ int main(int argc, char** argv) - printf("output.status.xruns = %zi\n", snd_rawmidi_status_get_xruns(ostat)); - - diff = timediff(end, start); -- printf("Time diff: %Liusec (%Li bytes/sec)\n", diff, ((long long)opos * 1000000) / diff); -+ printf("Time diff: %lliusec (%lli bytes/sec)\n", diff, ((long long)opos * 1000000) / diff); - - if (verbose) { - fprintf(stderr,"Closing\n"); --- -1.7.9.2 - diff --git a/0011-pcm-add-missing-break-in-switch.patch b/0011-pcm-add-missing-break-in-switch.patch deleted file mode 100644 index cbc5f39..0000000 --- a/0011-pcm-add-missing-break-in-switch.patch +++ /dev/null @@ -1,36 +0,0 @@ -From b7334b1a81994bf3005a8999dd779c85683f86c0 Mon Sep 17 00:00:00 2001 -From: Antonio Borneo -Date: Sun, 13 May 2012 00:06:23 +0800 -Subject: [PATCH 11/14] pcm: add missing "break" in "switch" - -A missing "break" in procedure snd_pcm_write_mmap() causes -execution of "case SND_PCM_ACCESS_MMAP_NONINTERLEAVED" to -fall through next "default" case of the "switch" statement. -Since "default" handles error cases, the procedure returns -error. - -The error fixed by this patch blocks transfer of capture -data from kernel to application. Execution get stuck in -alsa-lib, that discards all received data. - -Signed-off-by: Antonio Borneo -Signed-off-by: Takashi Iwai ---- - src/pcm/pcm_mmap.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/pcm/pcm_mmap.c b/src/pcm/pcm_mmap.c -index 6b44050..83e74e5 100644 ---- a/src/pcm/pcm_mmap.c -+++ b/src/pcm/pcm_mmap.c -@@ -622,6 +622,7 @@ snd_pcm_sframes_t snd_pcm_read_mmap(snd_pcm_t *pcm, snd_pcm_uframes_t offset, - err = _snd_pcm_readn(pcm->fast_op_arg, bufs, frames); - if (err >= 0) - frames = err; -+ break; - } - default: - SNDMSG("invalid access type %d", pcm->access); --- -1.7.9.2 - diff --git a/0012-pcm_dsnoop-comment-fall-through-in-next-case.patch b/0012-pcm_dsnoop-comment-fall-through-in-next-case.patch deleted file mode 100644 index 7902c93..0000000 --- a/0012-pcm_dsnoop-comment-fall-through-in-next-case.patch +++ /dev/null @@ -1,26 +0,0 @@ -From afaffe80d9f18bd4e85e665bb078be9511855d51 Mon Sep 17 00:00:00 2001 -From: Antonio Borneo -Date: Mon, 14 May 2012 23:56:34 +0800 -Subject: [PATCH 12/14] pcm_dsnoop: comment fall-through in next "case" - -Signed-off-by: Antonio Borneo -Signed-off-by: Takashi Iwai ---- - src/pcm/pcm_dsnoop.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c -index 988f1f4..bacb4ae 100644 ---- a/src/pcm/pcm_dsnoop.c -+++ b/src/pcm/pcm_dsnoop.c -@@ -223,6 +223,7 @@ static int snd_pcm_dsnoop_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *delayp) - err = snd_pcm_dsnoop_sync_ptr(pcm); - if (err < 0) - return err; -+ /* Fall through */ - case SNDRV_PCM_STATE_PREPARED: - case SNDRV_PCM_STATE_SUSPENDED: - *delayp = snd_pcm_mmap_capture_hw_avail(pcm); --- -1.7.9.2 - diff --git a/0013-tlv-improve-robustness-of-raw-value-ranges.patch b/0013-tlv-improve-robustness-of-raw-value-ranges.patch deleted file mode 100644 index 5e4831c..0000000 --- a/0013-tlv-improve-robustness-of-raw-value-ranges.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 70b958f460a253f2cbdfd9773d54d489d3dcc4ba Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Beno=C3=AEt=20Th=C3=A9baudeau?= - -Date: Wed, 23 May 2012 01:53:01 +0200 -Subject: [PATCH 13/14] tlv: improve robustness of raw value ranges -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -snd_tlv_convert_from_dB() relies on rangemin/max blindly. -Since this function is exported, it is better for robustness and -consistency to parse the range properly, which this patch does. - -Signed-off-by: Benoît Thébaudeau -Signed-off-by: Takashi Iwai ---- - src/control/tlv.c | 36 ++++++++++++++++-------------------- - 1 file changed, 16 insertions(+), 20 deletions(-) - -diff --git a/src/control/tlv.c b/src/control/tlv.c -index f7c9976..6b0b9f4 100644 ---- a/src/control/tlv.c -+++ b/src/control/tlv.c -@@ -291,41 +291,37 @@ int snd_tlv_convert_from_dB(unsigned int *tlv, long rangemin, long rangemax, - { - switch (tlv[0]) { - case SND_CTL_TLVT_DB_RANGE: { -- long dbmin, dbmax, prev_rangemax; -+ long dbmin, dbmax, prev_submax; - unsigned int pos, len; - len = int_index(tlv[1]); -- if (len > MAX_TLV_RANGE_SIZE) -- return -EINVAL; -- if (snd_tlv_get_dB_range(tlv, rangemin, rangemax, -- &dbmin, &dbmax)) -+ if (len < 6 || len > MAX_TLV_RANGE_SIZE) - return -EINVAL; -- if (db_gain <= dbmin) { -- *value = rangemin; -- return 0; -- } else if (db_gain >= dbmax) { -- *value = rangemax; -- return 0; -- } - pos = 2; -- prev_rangemax = 0; -+ prev_submax = 0; - while (pos + 4 <= len) { -- rangemin = (int)tlv[pos]; -- rangemax = (int)tlv[pos + 1]; -+ long submin, submax; -+ submin = (int)tlv[pos]; -+ submax = (int)tlv[pos + 1]; -+ if (rangemax < submax) -+ submax = rangemax; - if (!snd_tlv_get_dB_range(tlv + pos + 2, -- rangemin, rangemax, -+ submin, submax, - &dbmin, &dbmax) && - db_gain >= dbmin && db_gain <= dbmax) - return snd_tlv_convert_from_dB(tlv + pos + 2, -- rangemin, rangemax, -+ submin, submax, - db_gain, value, xdir); - else if (db_gain < dbmin) { -- *value = xdir ? rangemin : prev_rangemax; -+ *value = xdir || pos == 2 ? submin : prev_submax; - return 0; - } -- prev_rangemax = rangemax; -+ prev_submax = submax; -+ if (rangemax == submax) -+ break; - pos += int_index(tlv[pos + 3]) + 4; - } -- return -EINVAL; -+ *value = prev_submax; -+ return 0; - } - case SND_CTL_TLVT_DB_SCALE: { - int min, step, max; --- -1.7.9.2 - diff --git a/0014-conf-Add-more-USB-devices-to-S-PDIF-blacklist.patch b/0014-conf-Add-more-USB-devices-to-S-PDIF-blacklist.patch deleted file mode 100644 index 1002835..0000000 --- a/0014-conf-Add-more-USB-devices-to-S-PDIF-blacklist.patch +++ /dev/null @@ -1,32 +0,0 @@ -From e4d9c348304880399e622d99d0177f434a517d88 Mon Sep 17 00:00:00 2001 -From: David Henningsson -Date: Wed, 23 May 2012 09:59:50 +0200 -Subject: [PATCH 14/14] conf: Add more USB devices to S/PDIF blacklist - -These devices don't have digital in/out, so prevent them from being -opened. - -Signed-off-by: David Henningsson -Signed-off-by: Takashi Iwai ---- - src/conf/cards/USB-Audio.conf | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf -index 0a0e374..177a7af 100644 ---- a/src/conf/cards/USB-Audio.conf -+++ b/src/conf/cards/USB-Audio.conf -@@ -42,6 +42,10 @@ USB-Audio.pcm.iec958_device { - "Logitech Speaker Lapdesk N700" 999 - "Logitech USB Headset" 999 - "Logitech Wireless Headset" 999 -+ "Plantronics GameCom 780" 999 -+ "Plantronics USB Headset" 999 -+ "Plantronics Wireless Audio" 999 -+ "SB WoW Headset" 999 - "Sennheiser USB headset" 999 - "USB Device 0x46d:0x992" 999 - } --- -1.7.9.2 - diff --git a/0015-Fix-the-binary-compatibility-of-ext-ctl-plugin-with-.patch b/0015-Fix-the-binary-compatibility-of-ext-ctl-plugin-with-.patch deleted file mode 100644 index 5784bb3..0000000 --- a/0015-Fix-the-binary-compatibility-of-ext-ctl-plugin-with-.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 52160de21ee6a710a746b0881d9581994d039123 Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Mon, 25 Jun 2012 23:16:14 +0200 -Subject: [PATCH] Fix the binary compatibility of ext-ctl plugin with protocol - 1.0.0 - -Signed-off-by: Takashi Iwai ---- - include/control_external.h | 9 +++++---- - src/control/control_ext.c | 3 ++- - 2 files changed, 7 insertions(+), 5 deletions(-) - -diff --git a/include/control_external.h b/include/control_external.h -index 5392ea6..e98f4d6 100644 ---- a/include/control_external.h -+++ b/include/control_external.h -@@ -125,16 +125,17 @@ struct snd_ctl_ext { - * control handle filled by #snd_ctl_ext_create() - */ - snd_ctl_t *handle; -+ -+ int nonblock; /**< non-block mode; read-only */ -+ int subscribed; /**< events subscribed; read-only */ -+ - /** -- * optional TLV data for the control. -+ * optional TLV data for the control (since protocol 1.0.1) - */ - union { - snd_ctl_ext_tlv_rw_t *c; - const unsigned int *p; - } tlv; -- -- int nonblock; /**< non-block mode; read-only */ -- int subscribed; /**< events subscribed; read-only */ - }; - - /** Callback table of ext */ -diff --git a/src/control/control_ext.c b/src/control/control_ext.c -index cc30766..56552fa 100644 ---- a/src/control/control_ext.c -+++ b/src/control/control_ext.c -@@ -706,7 +706,8 @@ int snd_ctl_ext_create(snd_ctl_ext_t *ext, const char *name, int mode) - snd_ctl_t *ctl; - int err; - -- if (ext->version != SND_CTL_EXT_VERSION) { -+ if (ext->version < SNDRV_PROTOCOL_VERSION(1, 0, 0) || -+ ext->version > SND_CTL_EXT_VERSION) { - SNDERR("ctl_ext: Plugin version mismatch\n"); - return -ENXIO; - } --- -1.7.10.4 - diff --git a/0016-hctl-Remove-a-useless-assert.patch b/0016-hctl-Remove-a-useless-assert.patch deleted file mode 100644 index f1281c7..0000000 --- a/0016-hctl-Remove-a-useless-assert.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 86e27cdbf119440101a850e1b44baebfefe863ca Mon Sep 17 00:00:00 2001 -From: Martin Sandsmark -Date: Thu, 5 Jul 2012 09:40:07 +0200 -Subject: [PATCH] hctl: Remove a useless assert - -The case where the element is unavailable (for example gone away since -the event was created) is handled beneath. - -See also bug 5471. - https://bugtrack.alsa-project.org/alsa-bug/view.php?id=5471 - -Signed-off-by: Takashi Iwai ---- - src/control/hcontrol.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/control/hcontrol.c b/src/control/hcontrol.c -index 8ffc434..ee1d907 100644 ---- a/src/control/hcontrol.c -+++ b/src/control/hcontrol.c -@@ -761,7 +761,6 @@ static int snd_hctl_handle_event(snd_hctl_t *hctl, snd_ctl_event_t *event) - if (event->data.elem.mask & (SNDRV_CTL_EVENT_MASK_VALUE | - SNDRV_CTL_EVENT_MASK_INFO)) { - elem = snd_hctl_find_elem(hctl, &event->data.elem.id); -- assert(elem); - if (!elem) - return -ENOENT; - res = snd_hctl_elem_throw_event(elem, event->data.elem.mask & --- -1.7.10.4 - diff --git a/alsa-lib-1.0.25.tar.bz2 b/alsa-lib-1.0.25.tar.bz2 deleted file mode 100644 index f878dca..0000000 --- a/alsa-lib-1.0.25.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a1a805cf04106316d549ec650116ce6711a162e107ba8b3c551866680e286e6 -size 838403 diff --git a/alsa-lib-1.0.26.tar.bz2 b/alsa-lib-1.0.26.tar.bz2 new file mode 100644 index 0000000..02e55c1 --- /dev/null +++ b/alsa-lib-1.0.26.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c9f8161603cc3db640619650401292c3e110da63429ab6938aac763319f6e7d +size 883076 diff --git a/alsa.changes b/alsa.changes index 3c795b0..33ba8c6 100644 --- a/alsa.changes +++ b/alsa.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Sep 7 15:29:41 CEST 2012 - tiwai@suse.de + +- Updated to version 1.0.26: + * just including all previous patches + ------------------------------------------------------------------- Thu Jul 5 10:11:35 CEST 2012 - tiwai@suse.de diff --git a/alsa.spec b/alsa.spec index 8d69dec..45c3db8 100644 --- a/alsa.spec +++ b/alsa.spec @@ -20,7 +20,7 @@ Name: alsa BuildRequires: doxygen BuildRequires: libtool BuildRequires: pkg-config -%define package_version 1.0.25 +%define package_version 1.0.26 Requires: alsa-utils Recommends: alsa-plugins alsa-oss PreReq: %insserv_prereq %fillup_prereq @@ -32,7 +32,7 @@ Obsoletes: alsa-64bit Summary: Advanced Linux Sound Architecture License: LGPL-2.1+ Group: System/Libraries -Version: 1.0.25 +Version: 1.0.26 Release: 0 Source: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2 Source2: baselibs.conf @@ -53,22 +53,6 @@ Source34: alsa-init.sh Source40: 50-alsa.conf Source41: install-snd-module # Patch: alsa-lib-git-fixes.diff -Patch1: 0001-conf-pcm-Add-support-for-Echo3G-devices.-Thanks-to-u.patch -Patch2: 0002-USB-Audio-Blacklist-iec958-for-some-USB-devices.patch -Patch3: 0003-USB-Audio-Fixup-card-name-for-Logitech-web-camera.patch -Patch4: 0004-mixer-Remove-redundant-CHECK_ENUM-from-snd_mixer_sel.patch -Patch5: 0005-seqmid-more-descriptions-on-snd_seq_parse_address-be.patch -Patch6: 0006-doc-Fix-typo-in-PCM-formats.patch -Patch7: 0007-alsa-lib-conf-block-S-PDIF-access-for-Sennheiser-USB.patch -Patch8: 0008-control_external-Add-ability-to-specify-TLV-data.patch -Patch9: 0009-alsa-lib-conf-Add-two-more-USB-devices-to-iec958-bla.patch -Patch10: 0010-Fix-invalid-long-long-format-specifier.patch -Patch11: 0011-pcm-add-missing-break-in-switch.patch -Patch12: 0012-pcm_dsnoop-comment-fall-through-in-next-case.patch -Patch13: 0013-tlv-improve-robustness-of-raw-value-ranges.patch -Patch14: 0014-conf-Add-more-USB-devices-to-S-PDIF-blacklist.patch -Patch15: 0015-Fix-the-binary-compatibility-of-ext-ctl-plugin-with-.patch -Patch16: 0016-hctl-Remove-a-useless-assert.patch Patch99: alsa-lib-doxygen-avoid-crash-for-11.3.diff Url: http://www.alsa-project.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -119,22 +103,6 @@ Architecture. %prep %setup -q -n alsa-lib-%{package_version} # %patch -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 %if %suse_version == 1130 %patch99 -p1 %endif