Mailinglist Archive: opensuse-commit (159 mails)

< Previous Next >
commit alsa
  • From: root@xxxxxxx (h_root)
  • Date: Fri, 31 Mar 2006 15:28:18 +0200 (CEST)
  • Message-id: <20060331132818.5AA848AF34@xxxxxxxxxxxxxxx>

Hello community,

here is the log from the commit of package alsa
checked in at Fri Mar 31 15:28:18 CEST 2006.

--------
--- alsa/alsa.changes 2006-03-24 19:04:17.000000000 +0100
+++ alsa/alsa.changes 2006-03-29 12:17:49.000000000 +0200
@@ -1,0 +2,7 @@
+Wed Mar 29 12:15:16 CEST 2006 - tiwai@xxxxxxx
+
+- fix the bogus -EPIPE detection (and thus may lead to hang up)
+ in 32bit compat mode (ALSA bug#1938).
+- correct a typo in the help text of speaker-test
+
+-------------------------------------------------------------------

New:
----
alsa-lib-32bit-compat-fix.diff
alsa-lib-applptr-sync-fix.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ alsa.spec ++++++
--- /var/tmp/diff_new_pack.1pV27R/_old 2006-03-31 15:25:30.000000000 +0200
+++ /var/tmp/diff_new_pack.1pV27R/_new 2006-03-31 15:25:30.000000000 +0200
@@ -21,7 +21,7 @@
Autoreqprov: on
Summary: Advanced Linux Sound Architecture
Version: 1.0.11
-Release: 20
+Release: 21
Source1: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2
Source2: ftp://ftp.alsa-project.org/pub/util/alsa-utils-%{package_version}.tar.bz2
# Source5: ftp://ftp.alsa-project.org/pub/oss/alsa-oss-%{package_version}.tar.bz2
@@ -69,6 +69,8 @@
Patch31: alsa-lib-pcm-timer-size-hack.diff
Patch32: alsa-lib-dmix-generic-fix.diff
Patch33: alsa-lib-dmix-2-periods-fix.diff
+Patch34: alsa-lib-32bit-compat-fix.diff
+Patch35: alsa-lib-applptr-sync-fix.diff
Patch50: alsa-utils-speaker-test-5.1-fix.diff
Patch51: alsa-utils-speaker-test-buffer-fix.diff
Patch52: alsa-utils-alsaconf-lspci-fix.diff
@@ -151,6 +153,8 @@
%patch31 -p1
%patch32 -p1
%patch33 -p1
+%patch34 -p1
+%patch35 -p1
cd ..
cd alsa-utils*/.
# %patch2 -p1
@@ -434,6 +438,10 @@
%doc alsa-lib*/doc/doxygen/html/*

%changelog -n alsa
+* Wed Mar 29 2006 - tiwai@xxxxxxx
+- fix the bogus -EPIPE detection (and thus may lead to hang up)
+ in 32bit compat mode (ALSA bug#1938).
+- correct a typo in the help text of speaker-test
* Fri Mar 24 2006 - tiwai@xxxxxxx
- fix the endless poll() loop without starting PCM
- fix the noisy output and xrun from dmix with 2 periods







++++++ alsa-lib-32bit-compat-fix.diff ++++++
Index: alsa-lib/src/pcm/pcm_hw.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-lib/src/pcm/pcm_hw.c,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -r1.113 -r1.114
--- alsa-lib/src/pcm/pcm_hw.c 20 Mar 2006 11:15:55 -0000 1.113
+++ alsa-lib/src/pcm/pcm_hw.c 29 Mar 2006 09:30:49 -0000 1.114
@@ -942,6 +942,7 @@
}
}
snd_pcm_mmap_appl_forward(pcm, size);
+ sync_ptr(hw, 0);
#ifdef DEBUG_MMAP
fprintf(stderr, "appl_forward: hw_ptr = %li, appl_ptr = %li, size = %li\n", *pcm->hw.ptr, *pcm->appl.ptr, size);
#endif
Index: alsa-lib/src/pcm/pcm_plugin.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-lib/src/pcm/pcm_plugin.c,v
retrieving revision 1.52
retrieving revision 1.54
diff -u -r1.52 -r1.54
--- alsa-lib/src/pcm/pcm_plugin.c 22 May 2005 18:06:44 -0000 1.52
+++ alsa-lib/src/pcm/pcm_plugin.c 29 Mar 2006 09:34:15 -0000 1.54
@@ -137,7 +137,7 @@
snd_atomic_write_init(&plugin->watom);
}

-int snd_pcm_plugin_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *delayp)
+static int snd_pcm_plugin_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *delayp)
{
snd_pcm_plugin_t *plugin = pcm->private_data;
snd_pcm_sframes_t sd;
@@ -150,7 +150,7 @@
return 0;
}

-int snd_pcm_plugin_prepare(snd_pcm_t *pcm)
+static int snd_pcm_plugin_prepare(snd_pcm_t *pcm)
{
snd_pcm_plugin_t *plugin = pcm->private_data;
int err;
@@ -192,7 +192,7 @@
return 0;
}

-snd_pcm_sframes_t snd_pcm_plugin_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t frames)
+static snd_pcm_sframes_t snd_pcm_plugin_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t frames)
{
snd_pcm_plugin_t *plugin = pcm->private_data;
snd_pcm_sframes_t n = snd_pcm_mmap_hw_avail(pcm);
@@ -221,7 +221,7 @@
return n;
}

-snd_pcm_sframes_t snd_pcm_plugin_forward(snd_pcm_t *pcm, snd_pcm_uframes_t frames)
+static snd_pcm_sframes_t snd_pcm_plugin_forward(snd_pcm_t *pcm, snd_pcm_uframes_t frames)
{
snd_pcm_plugin_t *plugin = pcm->private_data;
snd_pcm_sframes_t n = snd_pcm_mmap_avail(pcm);
@@ -345,7 +345,8 @@
}


-snd_pcm_sframes_t snd_pcm_plugin_writei(snd_pcm_t *pcm, const void *buffer, snd_pcm_uframes_t size)
+static snd_pcm_sframes_t
+snd_pcm_plugin_writei(snd_pcm_t *pcm, const void *buffer, snd_pcm_uframes_t size)
{
snd_pcm_channel_area_t areas[pcm->channels];
snd_pcm_areas_from_buf(pcm, areas, (void*)buffer);
@@ -353,7 +354,8 @@
snd_pcm_plugin_write_areas);
}

-snd_pcm_sframes_t snd_pcm_plugin_writen(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size)
+static snd_pcm_sframes_t
+snd_pcm_plugin_writen(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size)
{
snd_pcm_channel_area_t areas[pcm->channels];
snd_pcm_areas_from_bufs(pcm, areas, bufs);
@@ -361,7 +363,8 @@
snd_pcm_plugin_write_areas);
}

-snd_pcm_sframes_t snd_pcm_plugin_readi(snd_pcm_t *pcm, void *buffer, snd_pcm_uframes_t size)
+static snd_pcm_sframes_t
+snd_pcm_plugin_readi(snd_pcm_t *pcm, void *buffer, snd_pcm_uframes_t size)
{
snd_pcm_channel_area_t areas[pcm->channels];
snd_pcm_areas_from_buf(pcm, areas, buffer);
@@ -369,7 +372,8 @@
snd_pcm_plugin_read_areas);
}

-snd_pcm_sframes_t snd_pcm_plugin_readn(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size)
+static snd_pcm_sframes_t
+snd_pcm_plugin_readn(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size)
{
snd_pcm_channel_area_t areas[pcm->channels];
snd_pcm_areas_from_bufs(pcm, areas, bufs);
@@ -377,9 +381,10 @@
snd_pcm_plugin_read_areas);
}

-snd_pcm_sframes_t snd_pcm_plugin_mmap_commit(snd_pcm_t *pcm,
- snd_pcm_uframes_t offset ATTRIBUTE_UNUSED,
- snd_pcm_uframes_t size)
+static snd_pcm_sframes_t
+snd_pcm_plugin_mmap_commit(snd_pcm_t *pcm,
+ snd_pcm_uframes_t offset ATTRIBUTE_UNUSED,
+ snd_pcm_uframes_t size)
{
snd_pcm_plugin_t *plugin = pcm->private_data;
snd_pcm_t *slave = plugin->gen.slave;
@@ -445,7 +450,7 @@
return xfer;
}

-snd_pcm_sframes_t snd_pcm_plugin_avail_update(snd_pcm_t *pcm)
+static snd_pcm_sframes_t snd_pcm_plugin_avail_update(snd_pcm_t *pcm)
{
snd_pcm_plugin_t *plugin = pcm->private_data;
snd_pcm_t *slave = plugin->gen.slave;
@@ -516,7 +521,7 @@
}
}

-int snd_pcm_plugin_status(snd_pcm_t *pcm, snd_pcm_status_t * status)
+static int snd_pcm_plugin_status(snd_pcm_t *pcm, snd_pcm_status_t * status)
{
snd_pcm_plugin_t *plugin = pcm->private_data;
snd_pcm_sframes_t err;
@@ -524,6 +529,9 @@
snd_atomic_read_init(&ratom, &plugin->watom);
_again:
snd_atomic_read_begin(&ratom);
+ /* sync with the latest hw and appl ptrs */
+ snd_pcm_plugin_avail_update(pcm);
+
err = snd_pcm_status(plugin->gen.slave, status);
if (err < 0) {
snd_atomic_read_ok(&ratom);
@@ -545,7 +553,7 @@
}

snd_pcm_fast_ops_t snd_pcm_plugin_fast_ops = {
- .status = snd_pcm_generic_status,
+ .status = snd_pcm_plugin_status,
.state = snd_pcm_generic_state,
.hwsync = snd_pcm_generic_hwsync,
.delay = snd_pcm_plugin_delay,
Index: alsa-lib/src/pcm/pcm_plugin.h
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-lib/src/pcm/pcm_plugin.h,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- alsa-lib/src/pcm/pcm_plugin.h 20 Jan 2005 17:38:12 -0000 1.32
+++ alsa-lib/src/pcm/pcm_plugin.h 29 Mar 2006 09:34:15 -0000 1.33
@@ -52,16 +52,6 @@
} snd_pcm_plugin_t;

void snd_pcm_plugin_init(snd_pcm_plugin_t *plugin);
-int snd_pcm_plugin_status(snd_pcm_t *pcm, snd_pcm_status_t * status);
-int snd_pcm_plugin_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *delayp);
-int snd_pcm_plugin_prepare(snd_pcm_t *pcm);
-snd_pcm_sframes_t snd_pcm_plugin_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t frames);
-snd_pcm_sframes_t snd_pcm_plugin_writei(snd_pcm_t *pcm, const void *buffer, snd_pcm_uframes_t size);
-snd_pcm_sframes_t snd_pcm_plugin_writen(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size);
-snd_pcm_sframes_t snd_pcm_plugin_readi(snd_pcm_t *pcm, void *buffer, snd_pcm_uframes_t size);
-snd_pcm_sframes_t snd_pcm_plugin_readn(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size);
-snd_pcm_sframes_t snd_pcm_plugin_mmap_commit(snd_pcm_t *pcm, snd_pcm_uframes_t offset, snd_pcm_uframes_t size);
-snd_pcm_sframes_t snd_pcm_plugin_avail_update(snd_pcm_t *pcm);

extern snd_pcm_fast_ops_t snd_pcm_plugin_fast_ops;

Index: alsa-lib/src/pcm/pcm_rate.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-lib/src/pcm/pcm_rate.c,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -r1.85 -r1.86
--- alsa-lib/src/pcm/pcm_rate.c 17 Mar 2006 18:03:44 -0000 1.85
+++ alsa-lib/src/pcm/pcm_rate.c 29 Mar 2006 09:33:00 -0000 1.86
@@ -1060,10 +1060,12 @@
result = snd_pcm_mmap_begin(rate->gen.slave, &slave_areas, &slave_offset, &slave_frames);
if (result < 0)
return result;
+#if 0
if (slave_offset) {
SNDERR("non-zero slave_offset %ld", slave_offset);
return -EIO;
}
+#endif
snd_pcm_areas_copy(slave_areas, slave_offset,
rate->sareas, xfer,
pcm->channels, cont,
@@ -1151,10 +1153,12 @@
result = snd_pcm_mmap_begin(rate->gen.slave, &slave_areas, &slave_offset, &slave_frames);
if (result < 0)
return result;
+#if 0
if (slave_offset) {
SNDERR("non-zero slave_offset %ld", slave_offset);
return -EIO;
}
+#endif
snd_pcm_areas_copy(rate->sareas, xfer,
slave_areas, slave_offset,
pcm->channels, cont,
++++++ alsa-lib-applptr-sync-fix.diff ++++++
Index: alsa-lib/src/pcm/pcm_hw.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-lib/src/pcm/pcm_hw.c,v
retrieving revision 1.114
diff -u -r1.114 pcm_hw.c
--- alsa-lib/src/pcm/pcm_hw.c 29 Mar 2006 09:30:49 -0000 1.114
+++ alsa-lib/src/pcm/pcm_hw.c 31 Mar 2006 10:04:17 -0000
@@ -624,6 +624,9 @@
SYSMSG("SNDRV_PCM_IOCTL_REWIND failed");
return err;
}
+ err = sync_ptr(hw, SNDRV_PCM_SYNC_PTR_APPL);
+ if (err < 0)
+ return err;
return frames;
}

@@ -637,6 +640,9 @@
SYSMSG("SNDRV_PCM_IOCTL_FORWARD failed");
return err;
}
+ err = sync_ptr(hw, SNDRV_PCM_SYNC_PTR_APPL);
+ if (err < 0)
+ return err;
return frames;
} else {
snd_pcm_sframes_t avail;
Index: alsa-lib/src/pcm/pcm_multi.c
===================================================================
RCS file: /home/iwai/cvs/alsa/alsa-lib/src/pcm/pcm_multi.c,v
retrieving revision 1.72
diff -u -r1.72 pcm_multi.c
--- alsa-lib/src/pcm/pcm_multi.c 27 Feb 2006 12:39:29 -0000 1.72
+++ alsa-lib/src/pcm/pcm_multi.c 31 Mar 2006 10:04:17 -0000
@@ -424,8 +424,9 @@
int err = 0;
unsigned int i;
for (i = 0; i < multi->slaves_count; ++i) {
- if (multi->slaves[i].linked)
- continue;
+ /* We call prepare to each slave even if it's linked.
+ * This is to make sure to sync non-mmaped control/status.
+ */
err = snd_pcm_prepare(multi->slaves[i].pcm);
if (err < 0)
return err;
@@ -439,8 +440,7 @@
int err = 0;
unsigned int i;
for (i = 0; i < multi->slaves_count; ++i) {
- if (multi->slaves[i].linked)
- continue;
+ /* Reset each slave, as well as in prepare */
err = snd_pcm_reset(multi->slaves[i].pcm);
if (err < 0)
return err;
++++++ alsa-utils-speaker-test-buffer-fix.diff ++++++
--- /var/tmp/diff_new_pack.1pV27R/_old 2006-03-31 15:25:31.000000000 +0200
+++ /var/tmp/diff_new_pack.1pV27R/_new 2006-03-31 15:25:31.000000000 +0200
@@ -303,7 +303,7 @@
+ "-P,--nperiods number of periods\n"
"-t,--test pink=use pink noise, sine=use sine wave, wav=WAV file\n"
- "-s,--speaker single speaker test. Values 1=Left or 2=right\n"
-+ "-n,--nloops specify number of loops to test, 0 = infinite\n"
++ "-l,--nloops specify number of loops to test, 0 = infinite\n"
+ "-s,--speaker single speaker test. Values 1=Left, 2=right, etc\n"
"-w,--wavfile Use the given WAV file as a test sound\n"
"-W,--wavdir Specify the directory containing WAV files\n"












++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...


< Previous Next >
This Thread
  • No further messages