linux/sound/core
Pawel MOLL 9423969005 ALSA: Fix limit of 8 PCM devices in SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE
When compiled with CONFIG_SND_DYNAMIC_MINORS the ALSA core is fine
to have more than 8 PCM devices per card, except one place - the
SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE ioctl, which will not enumerate
devices > 7. This patch fixes the issue, changing the devices list
organisation.

Instead of adding new device to the tail, the list is now kept always
ordered (by card number, then device number). Thus, during enumeration,
it is easy to discover the fact that there is no more given card's
devices. The same limit was present in OSS emulation code. It has
been fixed as well.

Additionally the device field of struct snd_pcm is now int, instead of
unsigned int, as there is no obvious reason for keeping it unsigned.
This caused a lot of problems with comparing this value with other
(almost always signed) variables. There is just one more place where
device number is unsigned - in struct snd_pcm_info, which should be
also sorted out in future.

Signed-off-by: Pawel MOLL <pawel.moll@st.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-07-29 21:32:48 +02:00
..
oss ALSA: Fix limit of 8 PCM devices in SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE 2008-07-29 21:32:48 +02:00
seq sound: ensure device number is valid in snd_seq_oss_synth_make_info 2008-08-04 17:03:26 -07:00
control_compat.c [ALSA] copy_ctl_value_from_user() warning fix 2008-01-31 17:29:34 +01:00
control.c ALSA: make snd_ctl_elem_read() and snd_ctl_elem_write() static 2008-06-13 16:48:49 +02:00
device.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
hwdep_compat.c [PATCH] hwdep_compat missed __user annotations 2006-10-10 15:37:21 -07:00
hwdep.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
info_oss.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
info.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
init.c device create: sound: convert device_create to device_create_drvdata 2008-07-21 21:54:44 -07:00
isadma.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
jack.c ALSA: Add jack reporting API 2008-07-29 21:32:03 +02:00
Kconfig ALSA: Build jack detection 2008-07-29 21:32:06 +02:00
Makefile ALSA: Build jack detection 2008-07-29 21:32:06 +02:00
memalloc.c [ALSA] Remove unneeded ugly hack for i386 in memalloc.c 2008-05-19 13:19:15 +02:00
memory.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
misc.c [ALSA] sound: this amplifier only goes up to 7 2008-04-24 12:00:35 +02:00
pcm_compat.c [ALSA] Add SNDRV_PCM_IOCTL_TSTAMP back to compat ioctl 2008-01-31 17:29:36 +01:00
pcm_lib.c [ALSA] PCM interface - rename SNDRV_PCM_TSTAMP_MMAP to SNDRV_PCM_TSTAMP_ENABLE 2008-01-31 17:29:54 +01:00
pcm_memory.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
pcm_misc.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
pcm_native.c ALSA: remove unneeded power_mutex lock in snd_pcm_drop 2008-09-25 17:52:07 +02:00
pcm_timer.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
pcm.c ALSA: Fix limit of 8 PCM devices in SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE 2008-07-29 21:32:48 +02:00
rawmidi_compat.c [ALSA] Remove xxx_t typedefs: Raw MIDI 2006-01-03 12:17:35 +01:00
rawmidi.c ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*() 2008-09-25 14:51:03 +02:00
rtctimer.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
sgbuf.c [ALSA] use the ALIGN macro 2006-12-20 08:55:36 +01:00
sound_oss.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
sound.c ALSA: Fix limit of 8 PCM devices in SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE 2008-07-29 21:32:48 +02:00
timer_compat.c [ALSA] Remove xxx_t typedefs: Timer 2006-01-03 12:17:34 +01:00
timer.c ALSA: remove CONFIG_KMOD from sound 2008-07-10 09:32:58 +02:00
vmaster.c [ALSA] Keep private TLV entry in vmaster itself 2008-04-24 12:00:12 +02:00