|
Jaroslav Kysela |
95c168 |
From 3d7433a3c87754ff8b51cf06de53a3e6c38c20b0 Mon Sep 17 00:00:00 2001
|
|
Jaroslav Kysela |
95c168 |
From: Jordi Mallach <jordi@debian.org>
|
|
Jaroslav Kysela |
95c168 |
Date: Fri, 17 May 2013 18:25:51 +0200
|
|
Jaroslav Kysela |
95c168 |
Subject: [PATCH 1/5] =?UTF-8?q?pcm:=20Fix=20typo=20in=20documentation:=20P?=
|
|
Jaroslav Kysela |
95c168 |
=?UTF-8?q?REPARE=20=E2=86=92=20PREPARED.?=
|
|
Jaroslav Kysela |
95c168 |
MIME-Version: 1.0
|
|
Jaroslav Kysela |
95c168 |
Content-Type: text/plain; charset=UTF-8
|
|
Jaroslav Kysela |
95c168 |
Content-Transfer-Encoding: 8bit
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
Signed-off-by: Jordi Mallach <jordi@debian.org>
|
|
Jaroslav Kysela |
95c168 |
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Jaroslav Kysela |
95c168 |
---
|
|
Jaroslav Kysela |
95c168 |
src/pcm/pcm.c | 2 +-
|
|
Jaroslav Kysela |
95c168 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
|
|
Jaroslav Kysela |
95c168 |
index 438fb3f..7ec1f0e 100644
|
|
Jaroslav Kysela |
95c168 |
--- a/src/pcm/pcm.c
|
|
Jaroslav Kysela |
95c168 |
+++ b/src/pcm/pcm.c
|
|
Jaroslav Kysela |
95c168 |
@@ -437,7 +437,7 @@ to #SND_PCM_STATE_SETUP
|
|
Jaroslav Kysela |
95c168 |
if successfully finishes, otherwise the state #SND_PCM_STATE_OPEN
|
|
Jaroslav Kysela |
95c168 |
is entered.
|
|
Jaroslav Kysela |
95c168 |
When it is brought to SETUP state, this function automatically
|
|
Jaroslav Kysela |
95c168 |
-calls #snd_pcm_prepare() function to bring to the PREPARE state
|
|
Jaroslav Kysela |
95c168 |
+calls #snd_pcm_prepare() function to bring to the PREPARED state
|
|
Jaroslav Kysela |
95c168 |
as below.
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
\par snd_pcm_prepare
|
|
Jaroslav Kysela |
95c168 |
--
|
|
Jaroslav Kysela |
95c168 |
1.8.1.4
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
From 14d653d7c374f9ba6319a7c5a8ee6f0bc3071304 Mon Sep 17 00:00:00 2001
|
|
Jaroslav Kysela |
95c168 |
From: =?UTF-8?q?Juho=20H=C3=A4m=C3=A4l=C3=A4inen?=
|
|
Jaroslav Kysela |
95c168 |
<juho.hamalainen@tieto.com>
|
|
Jaroslav Kysela |
95c168 |
Date: Fri, 24 May 2013 14:01:25 +0300
|
|
Jaroslav Kysela |
95c168 |
Subject: [PATCH 2/5] ucm: Fix segfault when device argument is missing from
|
|
Jaroslav Kysela |
95c168 |
_sw{dev, mod}
|
|
Jaroslav Kysela |
95c168 |
MIME-Version: 1.0
|
|
Jaroslav Kysela |
95c168 |
Content-Type: text/plain; charset=UTF-8
|
|
Jaroslav Kysela |
95c168 |
Content-Transfer-Encoding: 8bit
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
Signed-off-by: Juho Hämäläinen <juho.hamalainen@tieto.com>
|
|
Jaroslav Kysela |
95c168 |
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Jaroslav Kysela |
95c168 |
---
|
|
Jaroslav Kysela |
95c168 |
src/ucm/main.c | 3 ++-
|
|
Jaroslav Kysela |
95c168 |
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
diff --git a/src/ucm/main.c b/src/ucm/main.c
|
|
Jaroslav Kysela |
95c168 |
index d38b7fa..0494728 100644
|
|
Jaroslav Kysela |
95c168 |
--- a/src/ucm/main.c
|
|
Jaroslav Kysela |
95c168 |
+++ b/src/ucm/main.c
|
|
Jaroslav Kysela |
95c168 |
@@ -1647,7 +1647,8 @@ int snd_use_case_set(snd_use_case_mgr_t *uc_mgr,
|
|
Jaroslav Kysela |
95c168 |
goto __end;
|
|
Jaroslav Kysela |
95c168 |
}
|
|
Jaroslav Kysela |
95c168 |
} else {
|
|
Jaroslav Kysela |
95c168 |
- str = NULL;
|
|
Jaroslav Kysela |
95c168 |
+ err = -EINVAL;
|
|
Jaroslav Kysela |
95c168 |
+ goto __end;
|
|
Jaroslav Kysela |
95c168 |
}
|
|
Jaroslav Kysela |
95c168 |
if (check_identifier(identifier, "_swdev"))
|
|
Jaroslav Kysela |
95c168 |
err = switch_device(uc_mgr, str, value);
|
|
Jaroslav Kysela |
95c168 |
--
|
|
Jaroslav Kysela |
95c168 |
1.8.1.4
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
From 2f43b66c06ece64529e482a6dcc95cde37648252 Mon Sep 17 00:00:00 2001
|
|
Jaroslav Kysela |
95c168 |
From: Takashi Iwai <tiwai@suse.de>
|
|
Jaroslav Kysela |
95c168 |
Date: Fri, 24 May 2013 17:21:15 +0200
|
|
Jaroslav Kysela |
95c168 |
Subject: [PATCH 3/5] Allow specifying the max number of cards
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
Add --with-max-cards option to specify the max number of cards in
|
|
Jaroslav Kysela |
95c168 |
configure script, when the support for more than 32 cards is
|
|
Jaroslav Kysela |
95c168 |
required.
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Jaroslav Kysela |
95c168 |
---
|
|
Jaroslav Kysela |
95c168 |
configure.in | 14 ++++++++++++++
|
|
Jaroslav Kysela |
95c168 |
src/confmisc.c | 2 +-
|
|
Jaroslav Kysela |
95c168 |
src/control/cards.c | 6 +++---
|
|
Jaroslav Kysela |
95c168 |
src/control/control_hw.c | 2 +-
|
|
Jaroslav Kysela |
95c168 |
src/hwdep/hwdep_hw.c | 2 +-
|
|
Jaroslav Kysela |
95c168 |
5 files changed, 20 insertions(+), 6 deletions(-)
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
diff --git a/configure.in b/configure.in
|
|
Jaroslav Kysela |
95c168 |
index 35b8e84..3d394fc 100644
|
|
Jaroslav Kysela |
95c168 |
--- a/configure.in
|
|
Jaroslav Kysela |
95c168 |
+++ b/configure.in
|
|
Jaroslav Kysela |
95c168 |
@@ -632,6 +632,20 @@ for t in $CTL_PLUGIN_LIST; do
|
|
Jaroslav Kysela |
95c168 |
fi
|
|
Jaroslav Kysela |
95c168 |
done
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
+dnl Max number of cards
|
|
Jaroslav Kysela |
95c168 |
+AC_MSG_CHECKING(for max number of cards)
|
|
Jaroslav Kysela |
95c168 |
+AC_ARG_WITH(max-cards,
|
|
Jaroslav Kysela |
95c168 |
+ AS_HELP_STRING([--with-max-cards], [Specify the max number of cards (default = 32)]),
|
|
Jaroslav Kysela |
95c168 |
+ [ max_cards="$withval" ], [ max_cards="32" ])
|
|
Jaroslav Kysela |
95c168 |
+AC_MSG_RESULT([$max_cards])
|
|
Jaroslav Kysela |
95c168 |
+
|
|
Jaroslav Kysela |
95c168 |
+if test "$max_cards" -lt 1; then
|
|
Jaroslav Kysela |
95c168 |
+ AC_ERROR([Invalid max cards $max_cards])
|
|
Jaroslav Kysela |
95c168 |
+elif test "$max_cards" -gt 256; then
|
|
Jaroslav Kysela |
95c168 |
+ AC_ERROR([Invalid max cards $max_cards])
|
|
Jaroslav Kysela |
95c168 |
+fi
|
|
Jaroslav Kysela |
95c168 |
+AC_DEFINE_UNQUOTED(SND_MAX_CARDS, $max_cards, [Max number of cards])
|
|
Jaroslav Kysela |
95c168 |
+
|
|
Jaroslav Kysela |
95c168 |
dnl Make a symlink for inclusion of alsa/xxx.h
|
|
Jaroslav Kysela |
95c168 |
if test ! -L "$srcdir"/include/alsa ; then
|
|
Jaroslav Kysela |
95c168 |
echo "Making a symlink include/alsa"
|
|
Jaroslav Kysela |
95c168 |
diff --git a/src/confmisc.c b/src/confmisc.c
|
|
Jaroslav Kysela |
95c168 |
index 80b0027..af686be 100644
|
|
Jaroslav Kysela |
95c168 |
--- a/src/confmisc.c
|
|
Jaroslav Kysela |
95c168 |
+++ b/src/confmisc.c
|
|
Jaroslav Kysela |
95c168 |
@@ -668,7 +668,7 @@ int snd_determine_driver(int card, char **driver)
|
|
Jaroslav Kysela |
95c168 |
char *res = NULL;
|
|
Jaroslav Kysela |
95c168 |
int err;
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
- assert(card >= 0 && card <= 32);
|
|
Jaroslav Kysela |
95c168 |
+ assert(card >= 0 && card <= SND_MAX_CARDS);
|
|
Jaroslav Kysela |
95c168 |
err = open_ctl(card, &ctl;;
|
|
Jaroslav Kysela |
95c168 |
if (err < 0) {
|
|
Jaroslav Kysela |
95c168 |
SNDERR("could not open control for card %i", card);
|
|
Jaroslav Kysela |
95c168 |
diff --git a/src/control/cards.c b/src/control/cards.c
|
|
Jaroslav Kysela |
95c168 |
index b528e33..5d7376c 100644
|
|
Jaroslav Kysela |
95c168 |
--- a/src/control/cards.c
|
|
Jaroslav Kysela |
95c168 |
+++ b/src/control/cards.c
|
|
Jaroslav Kysela |
95c168 |
@@ -103,7 +103,7 @@ int snd_card_next(int *rcard)
|
|
Jaroslav Kysela |
95c168 |
return -EINVAL;
|
|
Jaroslav Kysela |
95c168 |
card = *rcard;
|
|
Jaroslav Kysela |
95c168 |
card = card < 0 ? 0 : card + 1;
|
|
Jaroslav Kysela |
95c168 |
- for (; card < 32; card++) {
|
|
Jaroslav Kysela |
95c168 |
+ for (; card < SND_MAX_CARDS; card++) {
|
|
Jaroslav Kysela |
95c168 |
if (snd_card_load(card)) {
|
|
Jaroslav Kysela |
95c168 |
*rcard = card;
|
|
Jaroslav Kysela |
95c168 |
return 0;
|
|
Jaroslav Kysela |
95c168 |
@@ -134,7 +134,7 @@ int snd_card_get_index(const char *string)
|
|
Jaroslav Kysela |
95c168 |
(isdigit(*string) && isdigit(*(string + 1)) && *(string + 2) == 0)) {
|
|
Jaroslav Kysela |
95c168 |
if (sscanf(string, "%i", &card) != 1)
|
|
Jaroslav Kysela |
95c168 |
return -EINVAL;
|
|
Jaroslav Kysela |
95c168 |
- if (card < 0 || card > 31)
|
|
Jaroslav Kysela |
95c168 |
+ if (card < 0 || card >= SND_MAX_CARDS)
|
|
Jaroslav Kysela |
95c168 |
return -EINVAL;
|
|
Jaroslav Kysela |
95c168 |
err = snd_card_load1(card);
|
|
Jaroslav Kysela |
95c168 |
if (err >= 0)
|
|
Jaroslav Kysela |
95c168 |
@@ -143,7 +143,7 @@ int snd_card_get_index(const char *string)
|
|
Jaroslav Kysela |
95c168 |
}
|
|
Jaroslav Kysela |
95c168 |
if (string[0] == '/') /* device name */
|
|
Jaroslav Kysela |
95c168 |
return snd_card_load2(string);
|
|
Jaroslav Kysela |
95c168 |
- for (card = 0; card < 32; card++) {
|
|
Jaroslav Kysela |
95c168 |
+ for (card = 0; card < SND_MAX_CARDS; card++) {
|
|
Jaroslav Kysela |
95c168 |
#ifdef SUPPORT_ALOAD
|
|
Jaroslav Kysela |
95c168 |
if (! snd_card_load(card))
|
|
Jaroslav Kysela |
95c168 |
continue;
|
|
Jaroslav Kysela |
95c168 |
diff --git a/src/control/control_hw.c b/src/control/control_hw.c
|
|
Jaroslav Kysela |
95c168 |
index 90c4ba7..148097f 100644
|
|
Jaroslav Kysela |
95c168 |
--- a/src/control/control_hw.c
|
|
Jaroslav Kysela |
95c168 |
+++ b/src/control/control_hw.c
|
|
Jaroslav Kysela |
95c168 |
@@ -382,7 +382,7 @@ int snd_ctl_hw_open(snd_ctl_t **handle, const char *name, int card, int mode)
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
*handle = NULL;
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
- if (CHECK_SANITY(card < 0 || card >= 32)) {
|
|
Jaroslav Kysela |
95c168 |
+ if (CHECK_SANITY(card < 0 || card >= SND_MAX_CARDS)) {
|
|
Jaroslav Kysela |
95c168 |
SNDMSG("Invalid card index %d", card);
|
|
Jaroslav Kysela |
95c168 |
return -EINVAL;
|
|
Jaroslav Kysela |
95c168 |
}
|
|
Jaroslav Kysela |
95c168 |
diff --git a/src/hwdep/hwdep_hw.c b/src/hwdep/hwdep_hw.c
|
|
Jaroslav Kysela |
95c168 |
index e4fcdc3..4314e32 100644
|
|
Jaroslav Kysela |
95c168 |
--- a/src/hwdep/hwdep_hw.c
|
|
Jaroslav Kysela |
95c168 |
+++ b/src/hwdep/hwdep_hw.c
|
|
Jaroslav Kysela |
95c168 |
@@ -112,7 +112,7 @@ int snd_hwdep_hw_open(snd_hwdep_t **handle, const char *name, int card, int devi
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
*handle = NULL;
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
- if (card < 0 || card >= 32)
|
|
Jaroslav Kysela |
95c168 |
+ if (card < 0 || card >= SND_MAX_CARDS)
|
|
Jaroslav Kysela |
95c168 |
return -EINVAL;
|
|
Jaroslav Kysela |
95c168 |
sprintf(filename, SNDRV_FILE_HWDEP, card, device);
|
|
Jaroslav Kysela |
95c168 |
fd = snd_open_device(filename, mode);
|
|
Jaroslav Kysela |
95c168 |
--
|
|
Jaroslav Kysela |
95c168 |
1.8.1.4
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
From 7f877543a36efd8fd5d38fae21352fc0567ece21 Mon Sep 17 00:00:00 2001
|
|
Jaroslav Kysela |
95c168 |
From: David Henningsson <david.henningsson@canonical.com>
|
|
Jaroslav Kysela |
95c168 |
Date: Thu, 30 May 2013 12:26:33 +0200
|
|
Jaroslav Kysela |
95c168 |
Subject: [PATCH 4/5] pcm_hw: Remove unused fields in struct
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
These fields are not used, and their name similarity to other
|
|
Jaroslav Kysela |
95c168 |
fields are quite confusing when trying to debug alsa-lib.
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
|
|
Jaroslav Kysela |
95c168 |
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
Jaroslav Kysela |
95c168 |
---
|
|
Jaroslav Kysela |
95c168 |
src/pcm/pcm_hw.c | 2 --
|
|
Jaroslav Kysela |
95c168 |
1 file changed, 2 deletions(-)
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
diff --git a/src/pcm/pcm_hw.c b/src/pcm/pcm_hw.c
|
|
Jaroslav Kysela |
95c168 |
index 0f3226d..196393d 100644
|
|
Jaroslav Kysela |
95c168 |
--- a/src/pcm/pcm_hw.c
|
|
Jaroslav Kysela |
95c168 |
+++ b/src/pcm/pcm_hw.c
|
|
Jaroslav Kysela |
95c168 |
@@ -95,8 +95,6 @@ typedef struct {
|
|
Jaroslav Kysela |
95c168 |
volatile struct snd_pcm_mmap_status * mmap_status;
|
|
Jaroslav Kysela |
95c168 |
struct snd_pcm_mmap_control *mmap_control;
|
|
Jaroslav Kysela |
95c168 |
struct snd_pcm_sync_ptr *sync_ptr;
|
|
Jaroslav Kysela |
95c168 |
- snd_pcm_uframes_t hw_ptr;
|
|
Jaroslav Kysela |
95c168 |
- snd_pcm_uframes_t appl_ptr;
|
|
Jaroslav Kysela |
95c168 |
int period_event;
|
|
Jaroslav Kysela |
95c168 |
snd_timer_t *period_timer;
|
|
Jaroslav Kysela |
95c168 |
struct pollfd period_timer_pfd;
|
|
Jaroslav Kysela |
95c168 |
--
|
|
Jaroslav Kysela |
95c168 |
1.8.1.4
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
From f2d39afe6139ab16aa2aeea0f51f32db79ab1262 Mon Sep 17 00:00:00 2001
|
|
Jaroslav Kysela |
95c168 |
From: David Henningsson <david.henningsson@canonical.com>
|
|
Jaroslav Kysela |
95c168 |
Date: Thu, 30 May 2013 12:26:34 +0200
|
|
Jaroslav Kysela |
95c168 |
Subject: [PATCH 5/5] pcm_plugin: Fix return value of snd_pcm_rewind
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
In case the rewind did not rewind as much as expected, e g due to
|
|
Jaroslav Kysela |
95c168 |
time delay between the latest avail update and the rewind, we must
|
|
Jaroslav Kysela |
95c168 |
properly account for that in the plugin layer.
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
Otherwise, the plugin's appl ptr and the hw's appl ptr become
|
|
Jaroslav Kysela |
95c168 |
unsynchronised, which is very bad, especially in mmap_shadow plugins,
|
|
Jaroslav Kysela |
95c168 |
e g, this could cause the overlapping memcpy in the softvol plugin
|
|
Jaroslav Kysela |
95c168 |
as seen here:
|
|
Jaroslav Kysela |
95c168 |
https://bugs.freedesktop.org/show_bug.cgi?id=64299
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
|
|
Jaroslav Kysela |
95c168 |
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
Jaroslav Kysela |
95c168 |
---
|
|
Jaroslav Kysela |
95c168 |
src/pcm/pcm_plugin.c | 4 ++--
|
|
Jaroslav Kysela |
95c168 |
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
diff --git a/src/pcm/pcm_plugin.c b/src/pcm/pcm_plugin.c
|
|
Jaroslav Kysela |
95c168 |
index 96218a8..17157e8 100644
|
|
Jaroslav Kysela |
95c168 |
--- a/src/pcm/pcm_plugin.c
|
|
Jaroslav Kysela |
95c168 |
+++ b/src/pcm/pcm_plugin.c
|
|
Jaroslav Kysela |
95c168 |
@@ -219,9 +219,9 @@ static snd_pcm_sframes_t snd_pcm_plugin_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t
|
|
Jaroslav Kysela |
95c168 |
snd_atomic_write_end(&plugin->watom);
|
|
Jaroslav Kysela |
95c168 |
return sframes;
|
|
Jaroslav Kysela |
95c168 |
}
|
|
Jaroslav Kysela |
95c168 |
- snd_pcm_mmap_appl_backward(pcm, (snd_pcm_uframes_t) frames);
|
|
Jaroslav Kysela |
95c168 |
+ snd_pcm_mmap_appl_backward(pcm, (snd_pcm_uframes_t) sframes);
|
|
Jaroslav Kysela |
95c168 |
snd_atomic_write_end(&plugin->watom);
|
|
Jaroslav Kysela |
95c168 |
- return (snd_pcm_sframes_t) frames;
|
|
Jaroslav Kysela |
95c168 |
+ return (snd_pcm_sframes_t) sframes;
|
|
Jaroslav Kysela |
95c168 |
}
|
|
Jaroslav Kysela |
95c168 |
|
|
Jaroslav Kysela |
95c168 |
static snd_pcm_sframes_t snd_pcm_plugin_forwardable(snd_pcm_t *pcm)
|
|
Jaroslav Kysela |
95c168 |
--
|
|
Jaroslav Kysela |
95c168 |
1.8.1.4
|
|
Jaroslav Kysela |
95c168 |
|