This commit is contained in:
parent
203f09df1d
commit
17d72ab7df
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c487645d32b8124b9ae224b8929e5aa45e581bd8d8c8da666add423cf927d1ea
|
||||
size 790052
|
3
alsa-lib-1.0.19.tar.bz2
Normal file
3
alsa-lib-1.0.19.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:32ee26d93a25963fdc49b4b5ccd014749d675e33f419022c646a61c31a4a2886
|
||||
size 792682
|
@ -1,33 +0,0 @@
|
||||
From 0400fa6f8d979b708bb36a35c9fbe22e3949912d Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Wed, 10 Dec 2008 18:20:50 +0100
|
||||
Subject: [PATCH] Don't accept an empty string for $ALSA_CONFIG_PATH
|
||||
|
||||
The variable $ALSA_CONFIG_PATH specifies the config path, but the current
|
||||
code accepts the empty string and results in a mysterious error because
|
||||
no config file is found.
|
||||
|
||||
This patch fixes the check of the variable and takes the default value
|
||||
if the string is empty.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/conf.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/src/conf.c b/src/conf.c
|
||||
index 32a7608..c86f819 100644
|
||||
--- a/src/conf.c
|
||||
+++ b/src/conf.c
|
||||
@@ -2962,7 +2962,7 @@ int snd_config_update_r(snd_config_t **_top, snd_config_update_t **_update, cons
|
||||
configs = cfgs;
|
||||
if (!configs) {
|
||||
configs = getenv(ALSA_CONFIG_PATH_VAR);
|
||||
- if (!configs)
|
||||
+ if (!configs || !*configs)
|
||||
configs = ALSA_CONFIG_PATH_DEFAULT;
|
||||
}
|
||||
for (k = 0, c = configs; (l = strcspn(c, ": ")) > 0; ) {
|
||||
--
|
||||
1.6.0.5
|
||||
|
@ -1,94 +1,57 @@
|
||||
diff --git a/configure.in b/configure.in
|
||||
index 9a71d95..ea6a8a0 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -367,6 +367,7 @@ AC_ARG_ENABLE(seq,
|
||||
AC_ARG_ENABLE(alisp,
|
||||
AS_HELP_STRING([--disable-alisp], [disable the alisp component]),
|
||||
[build_alisp="$enableval"], [build_alisp="yes"])
|
||||
+test "$softfloat" = "yes" && build_alisp="no"
|
||||
AC_ARG_ENABLE(old-symbols,
|
||||
AS_HELP_STRING([--disable-old-symbols], [disable old obsoleted symbols]),
|
||||
[keep_old_symbols="$enableval"], [keep_old_symbols="yes"])
|
||||
@@ -474,6 +475,7 @@ fi
|
||||
|
||||
if test "$softfloat" = "yes"; then
|
||||
build_pcm_lfloat="no"
|
||||
+ build_pcm_ladspa="no"
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(BUILD_PCM_PLUGIN, test x$build_pcm_plugin = xyes)
|
||||
diff --git a/modules/mixer/simple/Makefile.am b/modules/mixer/simple/Makefile.am
|
||||
index f73871f..bad0944 100644
|
||||
--- a/modules/mixer/simple/Makefile.am
|
||||
+++ b/modules/mixer/simple/Makefile.am
|
||||
@@ -21,11 +21,11 @@ smixer_sbase_la_LIBADD = ../../../src/libasound.la
|
||||
|
||||
smixer_ac97_la_SOURCES = ac97.c sbasedl.c
|
||||
smixer_ac97_la_LDFLAGS = -module -avoid-version $(LDFLAGS_NOUNDEFINED)
|
||||
-smixer_ac97_la_LIBADD = ../../../src/libasound.la
|
||||
+smixer_ac97_la_LIBADD = ../../../src/libasound.la -ldl
|
||||
|
||||
smixer_hda_la_SOURCES = hda.c sbasedl.c
|
||||
smixer_hda_la_LDFLAGS = -module -avoid-version $(LDFLAGS_NOUNDEFINED)
|
||||
-smixer_hda_la_LIBADD = ../../../src/libasound.la
|
||||
+smixer_hda_la_LIBADD = ../../../src/libasound.la -ldl
|
||||
|
||||
if BUILD_PYTHON
|
||||
smixer_python_la_SOURCES = python.c
|
||||
diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c
|
||||
index ef277de..8d6aae8 100644
|
||||
index 0f4dd3a..4802200 100644
|
||||
--- a/src/mixer/simple_none.c
|
||||
+++ b/src/mixer/simple_none.c
|
||||
@@ -809,14 +809,14 @@ static int simple_update(snd_mixer_elem_t *melem)
|
||||
if (caps & (SM_CAP_GSWITCH|SM_CAP_CSWITCH))
|
||||
caps |= SM_CAP_CSWITCH_JOIN;
|
||||
if (caps & (SM_CAP_GVOLUME|SM_CAP_CVOLUME))
|
||||
- caps |= SM_CAP_PVOLUME_JOIN;
|
||||
+ caps |= SM_CAP_CVOLUME_JOIN;
|
||||
if (pchannels > 1 || cchannels > 1) {
|
||||
if (simple->ctls[CTL_SINGLE].elem &&
|
||||
simple->ctls[CTL_SINGLE].values > 1) {
|
||||
if (caps & SM_CAP_GSWITCH)
|
||||
- caps &= ~SM_CAP_PSWITCH_JOIN;
|
||||
+ caps &= ~(SM_CAP_PSWITCH_JOIN|SM_CAP_CSWITCH_JOIN);
|
||||
else
|
||||
- caps &= ~SM_CAP_PVOLUME_JOIN;
|
||||
+ caps &= ~(SM_CAP_PVOLUME_JOIN|SM_CAP_CVOLUME_JOIN);
|
||||
@@ -1450,7 +1450,14 @@ static int simple_add1(snd_mixer_class_t *class, const char *name,
|
||||
}
|
||||
if (simple->ctls[CTL_GLOBAL_ROUTE].elem ||
|
||||
(simple->ctls[CTL_GLOBAL_SWITCH].elem &&
|
||||
@@ -946,6 +946,8 @@ static int base_len(const char *name, selem_ctl_type_t *type)
|
||||
static int _snd_mixer_selem_set_volume(snd_mixer_elem_t *elem, int dir, snd_mixer_selem_channel_id_t channel, long value)
|
||||
{
|
||||
selem_none_t *s = snd_mixer_elem_get_private(elem);
|
||||
+ if (s->selem.caps & SM_CAP_GVOLUME)
|
||||
+ dir = SM_PLAY;
|
||||
if ((unsigned int) channel >= s->str[dir].channels)
|
||||
if (ctype != SND_CTL_ELEM_TYPE_BOOLEAN)
|
||||
return 0;
|
||||
if (value < s->str[dir].min || value > s->str[dir].max)
|
||||
@@ -1064,6 +1066,8 @@ static int get_volume_ops(snd_mixer_elem_t *elem, int dir,
|
||||
snd_mixer_selem_channel_id_t channel, long *value)
|
||||
{
|
||||
selem_none_t *s = snd_mixer_elem_get_private(elem);
|
||||
+ if (s->selem.caps & SM_CAP_GVOLUME)
|
||||
+ dir = SM_PLAY;
|
||||
if ((unsigned int) channel >= s->str[dir].channels)
|
||||
return -EINVAL;
|
||||
*value = s->str[dir].vol[channel];
|
||||
@@ -1158,6 +1162,8 @@ static int get_dB_range_ops(snd_mixer_elem_t *elem, int dir,
|
||||
selem_none_t *s = snd_mixer_elem_get_private(elem);
|
||||
selem_ctl_t *c;
|
||||
|
||||
+ if (s->selem.caps & SM_CAP_GVOLUME)
|
||||
+ dir = SM_PLAY;
|
||||
c = get_selem_ctl(s, dir);
|
||||
if (! c)
|
||||
return -EINVAL;
|
||||
@@ -1199,6 +1205,8 @@ static int get_dB_ops(snd_mixer_elem_t *elem,
|
||||
int err;
|
||||
long volume, db_gain;
|
||||
|
||||
+ if (s->selem.caps & SM_CAP_GVOLUME)
|
||||
+ dir = SM_PLAY;
|
||||
c = get_selem_ctl(s, dir);
|
||||
if (! c)
|
||||
return -EINVAL;
|
||||
@@ -1216,6 +1224,8 @@ static int get_switch_ops(snd_mixer_elem_t *elem, int dir,
|
||||
snd_mixer_selem_channel_id_t channel, int *value)
|
||||
{
|
||||
selem_none_t *s = snd_mixer_elem_get_private(elem);
|
||||
+ if (s->selem.caps & SM_CAP_GSWITCH)
|
||||
+ dir = SM_PLAY;
|
||||
if ((unsigned int) channel >= s->str[dir].channels)
|
||||
return -EINVAL;
|
||||
*value = !!(s->str[dir].sw & (1 << channel));
|
||||
@@ -1240,6 +1250,8 @@ static int ask_dB_vol_ops(snd_mixer_elem_t *elem, int dir,
|
||||
selem_none_t *s = snd_mixer_elem_get_private(elem);
|
||||
selem_ctl_t *c;
|
||||
|
||||
+ if (s->selem.caps & SM_CAP_GVOLUME)
|
||||
+ dir = SM_PLAY;
|
||||
c = get_selem_ctl(s, dir);
|
||||
if (! c)
|
||||
return -EINVAL;
|
||||
@@ -1255,6 +1267,8 @@ static int set_dB_ops(snd_mixer_elem_t *elem, int dir,
|
||||
long value;
|
||||
int err;
|
||||
|
||||
+ if (s->selem.caps & SM_CAP_GVOLUME)
|
||||
+ dir = SM_PLAY;
|
||||
c = get_selem_ctl(s, dir);
|
||||
if (! c)
|
||||
return -EINVAL;
|
||||
@@ -1269,6 +1283,8 @@ static int set_switch_ops(snd_mixer_elem_t *elem, int dir,
|
||||
{
|
||||
int changed;
|
||||
selem_none_t *s = snd_mixer_elem_get_private(elem);
|
||||
+ if (s->selem.caps & SM_CAP_GSWITCH)
|
||||
+ dir = SM_PLAY;
|
||||
if (dir == SM_PLAY) {
|
||||
if (! (s->selem.caps & (SM_CAP_GSWITCH|SM_CAP_PSWITCH)))
|
||||
return -EINVAL;
|
||||
+#ifdef HAVE_SOFT_FLOAT
|
||||
+ /* up to 256 channels */
|
||||
+ for (n = 1; n < 256; n++)
|
||||
+ if (n * n == values)
|
||||
+ break;
|
||||
+#else
|
||||
n = sqrt((double)values);
|
||||
+#endif
|
||||
if (n * n != values)
|
||||
return 0;
|
||||
values = n;
|
||||
|
@ -1,118 +0,0 @@
|
||||
commit cb1fd837d93fbc495eab4aa3efaf8072937ff2df
|
||||
Author: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Wed Nov 19 14:59:03 2008 +0100
|
||||
|
||||
Add linear plugin wrapping iec958 PCM for ice1724-based boards
|
||||
|
||||
The ice1724-based cards can handle only 32bit while the apps almost
|
||||
expet 16bit format for SPDIF I/O. This prevents the default config
|
||||
working on many apps like mplayer, xine, etc.
|
||||
|
||||
This patch simply adds the least automatic conversion by linear plugin.
|
||||
Note that "plug" isn't used here. Otherwise we get a problem of the
|
||||
routing (plug over plug is buggy).
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
|
||||
diff --git a/src/conf/cards/Aureon51.conf b/src/conf/cards/Aureon51.conf
|
||||
index 1b8ee85..24b4d94 100644
|
||||
--- a/src/conf/cards/Aureon51.conf
|
||||
+++ b/src/conf/cards/Aureon51.conf
|
||||
@@ -121,6 +121,8 @@ Aureon51.pcm.iec958.0 {
|
||||
}
|
||||
type asym
|
||||
playback.pcm {
|
||||
+ type linear
|
||||
+ slave.pcm {
|
||||
type hooks
|
||||
slave.pcm {
|
||||
type hw
|
||||
@@ -147,8 +149,12 @@ Aureon51.pcm.iec958.0 {
|
||||
}
|
||||
]
|
||||
}
|
||||
+ }
|
||||
+ slave.format S32_LE
|
||||
}
|
||||
capture.pcm {
|
||||
+ type linear
|
||||
+ slave.pcm {
|
||||
type hooks
|
||||
slave.pcm {
|
||||
type hw
|
||||
@@ -167,5 +173,7 @@ Aureon51.pcm.iec958.0 {
|
||||
}
|
||||
]
|
||||
}
|
||||
+ }
|
||||
+ slave.format S32_LE
|
||||
}
|
||||
}
|
||||
diff --git a/src/conf/cards/Aureon71.conf b/src/conf/cards/Aureon71.conf
|
||||
index 8a88cce..1479c25 100644
|
||||
--- a/src/conf/cards/Aureon71.conf
|
||||
+++ b/src/conf/cards/Aureon71.conf
|
||||
@@ -132,6 +132,8 @@ Aureon71.pcm.iec958.0 {
|
||||
}
|
||||
type asym
|
||||
playback.pcm {
|
||||
+ type linear
|
||||
+ slave.pcm {
|
||||
type hooks
|
||||
slave.pcm {
|
||||
type hw
|
||||
@@ -158,8 +160,12 @@ Aureon71.pcm.iec958.0 {
|
||||
}
|
||||
]
|
||||
}
|
||||
+ }
|
||||
+ slave.format S32_LE
|
||||
}
|
||||
capture.pcm {
|
||||
+ type linear
|
||||
+ slave.pcm {
|
||||
type hooks
|
||||
slave.pcm {
|
||||
type hw
|
||||
@@ -178,5 +184,7 @@ Aureon71.pcm.iec958.0 {
|
||||
}
|
||||
]
|
||||
}
|
||||
+ }
|
||||
+ slave.format S32_LE
|
||||
}
|
||||
}
|
||||
diff --git a/src/conf/cards/ICE1724.conf b/src/conf/cards/ICE1724.conf
|
||||
index 7f15332..e806b36 100644
|
||||
--- a/src/conf/cards/ICE1724.conf
|
||||
+++ b/src/conf/cards/ICE1724.conf
|
||||
@@ -166,6 +166,8 @@ ICE1724.pcm.iec958.0 {
|
||||
}
|
||||
type asym
|
||||
playback.pcm {
|
||||
+ type linear
|
||||
+ slave.pcm {
|
||||
type hooks
|
||||
slave.pcm {
|
||||
type hw
|
||||
@@ -192,8 +194,12 @@ ICE1724.pcm.iec958.0 {
|
||||
}
|
||||
]
|
||||
}
|
||||
+ }
|
||||
+ slave.format S32_LE
|
||||
}
|
||||
capture.pcm {
|
||||
+ type linear
|
||||
+ slave.pcm {
|
||||
type hooks
|
||||
slave.pcm {
|
||||
type hw
|
||||
@@ -212,5 +218,7 @@ ICE1724.pcm.iec958.0 {
|
||||
}
|
||||
]
|
||||
}
|
||||
+ }
|
||||
+ slave.format S32_LE
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
commit 73ddcda842935c2aed6dd57d141688fe61985b26
|
||||
Author: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Wed Nov 19 16:14:27 2008 +0100
|
||||
|
||||
Fix segfault with invalid meter plugin option
|
||||
|
||||
snd_pcm_meter_add_scope_conf() may cause a segfault when pcm_scope_type
|
||||
isn't defined.
|
||||
|
||||
Initialize type_conf properly to avoid it.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
|
||||
diff --git a/src/pcm/pcm_meter.c b/src/pcm/pcm_meter.c
|
||||
index 0dedb42..83d643a 100644
|
||||
--- a/src/pcm/pcm_meter.c
|
||||
+++ b/src/pcm/pcm_meter.c
|
||||
@@ -603,7 +603,7 @@ static int snd_pcm_meter_add_scope_conf(snd_pcm_t *pcm, const char *name,
|
||||
snd_config_iterator_t i, next;
|
||||
const char *id;
|
||||
const char *lib = NULL, *open_name = NULL, *str = NULL;
|
||||
- snd_config_t *c, *type_conf;
|
||||
+ snd_config_t *c, *type_conf = NULL;
|
||||
int (*open_func)(snd_pcm_t *, const char *,
|
||||
snd_config_t *, snd_config_t *) = NULL;
|
||||
snd_pcm_meter_t *meter = pcm->private_data;
|
@ -1,139 +0,0 @@
|
||||
From 48e4d089dc68ad29267fe6b9c7efc4a66611aeda Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Thu, 4 Dec 2008 15:21:40 +0100
|
||||
Subject: [PATCH] Fix softvol access refine
|
||||
|
||||
The commit a13707da6bb0161db855a146c3e4d1d849e4108b
|
||||
|
||||
pcm_softvol plugin: remove access type change for refine
|
||||
|
||||
breaks the softvol in the case of RW -> MMAP. The slave of softvol
|
||||
must be an mmap although the previous fix forces RW access.
|
||||
|
||||
This patch reverts the commit, and the fixed access refine method
|
||||
to hanle non-interleaved <-> interleaved changes.
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/pcm/pcm_softvol.c | 56 +++++++++++++++++++++++++++++++++++++++++++++---
|
||||
1 files changed, 52 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/pcm/pcm_softvol.c b/src/pcm/pcm_softvol.c
|
||||
index 4c5f0f7..637e5cb 100644
|
||||
--- a/src/pcm/pcm_softvol.c
|
||||
+++ b/src/pcm/pcm_softvol.c
|
||||
@@ -399,6 +399,7 @@ static int snd_pcm_softvol_hw_refine_cprepare(snd_pcm_t *pcm,
|
||||
{
|
||||
int err;
|
||||
snd_pcm_softvol_t *svol = pcm->private_data;
|
||||
+ snd_pcm_access_mask_t access_mask = { SND_PCM_ACCBIT_SHM };
|
||||
snd_pcm_format_mask_t format_mask = {
|
||||
{
|
||||
(1ULL << SND_PCM_FORMAT_S16_LE) |
|
||||
@@ -412,6 +413,10 @@ static int snd_pcm_softvol_hw_refine_cprepare(snd_pcm_t *pcm,
|
||||
snd_pcm_format_mask_none(&format_mask);
|
||||
snd_pcm_format_mask_set(&format_mask, svol->sformat);
|
||||
}
|
||||
+ err = _snd_pcm_hw_param_set_mask(params, SND_PCM_HW_PARAM_ACCESS,
|
||||
+ &access_mask);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
err = _snd_pcm_hw_param_set_mask(params, SND_PCM_HW_PARAM_FORMAT,
|
||||
&format_mask);
|
||||
if (err < 0)
|
||||
@@ -429,7 +434,10 @@ static int snd_pcm_softvol_hw_refine_cprepare(snd_pcm_t *pcm,
|
||||
static int snd_pcm_softvol_hw_refine_sprepare(snd_pcm_t *pcm, snd_pcm_hw_params_t *sparams)
|
||||
{
|
||||
snd_pcm_softvol_t *svol = pcm->private_data;
|
||||
+ snd_pcm_access_mask_t saccess_mask = { SND_PCM_ACCBIT_MMAP };
|
||||
_snd_pcm_hw_params_any(sparams);
|
||||
+ _snd_pcm_hw_param_set_mask(sparams, SND_PCM_HW_PARAM_ACCESS,
|
||||
+ &saccess_mask);
|
||||
if (svol->sformat != SND_PCM_FORMAT_UNKNOWN) {
|
||||
_snd_pcm_hw_params_set_format(sparams, svol->sformat);
|
||||
_snd_pcm_hw_params_set_subformat(sparams, SND_PCM_SUBFORMAT_STD);
|
||||
@@ -437,14 +445,45 @@ static int snd_pcm_softvol_hw_refine_sprepare(snd_pcm_t *pcm, snd_pcm_hw_params_
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * refine the access mask
|
||||
+ */
|
||||
+static int check_access_mask(snd_pcm_hw_params_t *src,
|
||||
+ snd_pcm_hw_params_t *dst)
|
||||
+{
|
||||
+ const snd_pcm_access_mask_t *mask;
|
||||
+ snd_pcm_access_mask_t smask;
|
||||
+
|
||||
+ mask = snd_pcm_hw_param_get_mask(src, SND_PCM_HW_PARAM_ACCESS);
|
||||
+ snd_mask_none(&smask);
|
||||
+ if (snd_pcm_access_mask_test(mask, SND_PCM_ACCESS_RW_INTERLEAVED) ||
|
||||
+ snd_pcm_access_mask_test(mask, SND_PCM_ACCESS_MMAP_INTERLEAVED)) {
|
||||
+ snd_pcm_access_mask_set(&smask,
|
||||
+ SND_PCM_ACCESS_RW_INTERLEAVED);
|
||||
+ snd_pcm_access_mask_set(&smask,
|
||||
+ SND_PCM_ACCESS_MMAP_INTERLEAVED);
|
||||
+ }
|
||||
+ if (snd_pcm_access_mask_test(mask, SND_PCM_ACCESS_RW_NONINTERLEAVED) ||
|
||||
+ snd_pcm_access_mask_test(mask, SND_PCM_ACCESS_MMAP_NONINTERLEAVED)) {
|
||||
+ snd_pcm_access_mask_set(&smask,
|
||||
+ SND_PCM_ACCESS_RW_NONINTERLEAVED);
|
||||
+ snd_pcm_access_mask_set(&smask,
|
||||
+ SND_PCM_ACCESS_MMAP_NONINTERLEAVED);
|
||||
+ }
|
||||
+ if (snd_pcm_access_mask_test(mask, SND_PCM_ACCESS_MMAP_COMPLEX))
|
||||
+ snd_pcm_access_mask_set(&smask,
|
||||
+ SND_PCM_ACCESS_MMAP_COMPLEX);
|
||||
+
|
||||
+ return _snd_pcm_hw_param_set_mask(dst, SND_PCM_HW_PARAM_ACCESS, &smask);
|
||||
+}
|
||||
+
|
||||
static int snd_pcm_softvol_hw_refine_schange(snd_pcm_t *pcm,
|
||||
snd_pcm_hw_params_t *params,
|
||||
snd_pcm_hw_params_t *sparams)
|
||||
{
|
||||
snd_pcm_softvol_t *svol = pcm->private_data;
|
||||
int err;
|
||||
- unsigned int links = (SND_PCM_HW_PARBIT_ACCESS |
|
||||
- SND_PCM_HW_PARBIT_CHANNELS |
|
||||
+ unsigned int links = (SND_PCM_HW_PARBIT_CHANNELS |
|
||||
SND_PCM_HW_PARBIT_RATE |
|
||||
SND_PCM_HW_PARBIT_PERIODS |
|
||||
SND_PCM_HW_PARBIT_PERIOD_SIZE |
|
||||
@@ -459,6 +498,11 @@ static int snd_pcm_softvol_hw_refine_schange(snd_pcm_t *pcm,
|
||||
err = _snd_pcm_hw_params_refine(sparams, links, params);
|
||||
if (err < 0)
|
||||
return err;
|
||||
+
|
||||
+ err = check_access_mask(params, sparams);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -468,8 +512,7 @@ static int snd_pcm_softvol_hw_refine_cchange(snd_pcm_t *pcm,
|
||||
{
|
||||
snd_pcm_softvol_t *svol = pcm->private_data;
|
||||
int err;
|
||||
- unsigned int links = (SND_PCM_HW_PARBIT_ACCESS |
|
||||
- SND_PCM_HW_PARBIT_CHANNELS |
|
||||
+ unsigned int links = (SND_PCM_HW_PARBIT_CHANNELS |
|
||||
SND_PCM_HW_PARBIT_RATE |
|
||||
SND_PCM_HW_PARBIT_PERIODS |
|
||||
SND_PCM_HW_PARBIT_PERIOD_SIZE |
|
||||
@@ -484,6 +527,11 @@ static int snd_pcm_softvol_hw_refine_cchange(snd_pcm_t *pcm,
|
||||
err = _snd_pcm_hw_params_refine(params, links, sparams);
|
||||
if (err < 0)
|
||||
return err;
|
||||
+
|
||||
+ err = check_access_mask(sparams, params);
|
||||
+ if (err < 0)
|
||||
+ return err;
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
1.6.0.4
|
||||
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 22 13:59:24 CET 2009 - tiwai@suse.de
|
||||
|
||||
- updated to version 1.0.19:
|
||||
* including previous patches
|
||||
- fix build without math support
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 13 12:34:56 CET 2009 - olh@suse.de
|
||||
|
||||
|
16
alsa.spec
16
alsa.spec
@ -20,7 +20,7 @@
|
||||
|
||||
Name: alsa
|
||||
BuildRequires: doxygen
|
||||
%define package_version 1.0.18
|
||||
%define package_version 1.0.19
|
||||
License: GPL v2 or later
|
||||
Group: System/Libraries
|
||||
Requires: alsa-utils
|
||||
@ -34,7 +34,7 @@ Obsoletes: alsa-64bit
|
||||
#
|
||||
Summary: Advanced Linux Sound Architecture
|
||||
Version: 1.0.18
|
||||
Release: 11
|
||||
Release: 13
|
||||
Source: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2
|
||||
Source8: 40-alsa.rules
|
||||
Source11: alsasound
|
||||
@ -51,10 +51,6 @@ Source32: all_notes_off.mid
|
||||
Source33: alsa-info.sh
|
||||
Source34: alsa-init.sh
|
||||
Patch: alsa-lib-git-fixes.diff
|
||||
Patch1: alsa-lib-ice1724-spdif-fix.diff
|
||||
Patch2: alsa-lib-meter-plugin-segfault-fix.diff
|
||||
Patch3: alsa-lib-softvol-access-refine-fix.diff
|
||||
Patch4: alsa-lib-conf-path-check-fix.diff
|
||||
Url: http://www.alsa-project.org/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
@ -127,10 +123,6 @@ Authors:
|
||||
%prep
|
||||
%setup -q -n alsa-lib-%{package_version}
|
||||
%patch -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
|
||||
%build
|
||||
# build alsa-lib
|
||||
@ -252,6 +244,10 @@ exit 0
|
||||
%{_datadir}/alsa
|
||||
|
||||
%changelog
|
||||
* Thu Jan 22 2009 tiwai@suse.de
|
||||
- updated to version 1.0.19:
|
||||
* including previous patches
|
||||
- fix build without math support
|
||||
* Tue Jan 13 2009 olh@suse.de
|
||||
- obsolete old -XXbit packages (bnc#437293)
|
||||
* Mon Jan 12 2009 tiwai@suse.de
|
||||
|
Loading…
Reference in New Issue
Block a user