OpenCloudOS-Kernel/sound/core
Pawel MOLL f90c06a2b6 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.

Additionally the device field of struct snd_pcm had to be changed to int,
as its "unsignednity" caused a lot of problems when comparing it to
potentially negative signed values. (-1 is 0xffffffff or even more then ;-)

Signed-off-by: Pawel Moll <pawel.moll@st.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-01 13:37:15 +02:00
..
oss sound: Revert "ALSA: Fix limit of 8 PCM devices in SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE" 2008-08-01 13:36:04 +02:00
seq sound: ensure device number is valid in snd_seq_oss_synth_make_info 2008-08-04 17:03:26 -07: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
control.c ALSA: make snd_ctl_elem_read() and snd_ctl_elem_write() static 2008-06-13 16:48:49 +02:00
control_compat.c [ALSA] copy_ctl_value_from_user() warning fix 2008-01-31 17:29:34 +01:00
device.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
hwdep.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
info.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
info_oss.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01: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
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.c ALSA: Fix limit of 8 PCM devices in SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE 2008-08-01 13:37:15 +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
rawmidi.c ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*() 2008-09-25 14:51:03 +02:00
rawmidi_compat.c [ALSA] Remove xxx_t typedefs: Raw MIDI 2006-01-03 12:17:35 +01: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.c ALSA: Fix limit of 8 PCM devices in SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE 2008-08-01 13:37:15 +02:00
sound_oss.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
timer.c ALSA: remove CONFIG_KMOD from sound 2008-07-10 09:32:58 +02:00
timer_compat.c [ALSA] Remove xxx_t typedefs: Timer 2006-01-03 12:17:34 +01:00
vmaster.c [ALSA] Keep private TLV entry in vmaster itself 2008-04-24 12:00:12 +02:00