Commit Graph

122 Commits

Author SHA1 Message Date
Clemens Ladisch
aa1e77e691 [ALSA] seq: reorganize sequencer client numbers
Modules: ALSA sequencer

Reduce the maximum possible number of global clients to 16 to make
more numbers available for card clients, and allow dynamically allocated
card client numbers to share the same range as application client
numbers to make sure that all 32 cards can be used at the same time.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:30:50 +01:00
Clemens Ladisch
7b6d92451a [ALSA] seq: set client name in snd_seq_create_kernel_client()
All users of snd_seq_create_kernel_client() have to set the client name
anyway, so we can just pass the name as parameter.  This relieves us
from having to muck around with a struct snd_seq_client_info in these
cases.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:30:49 +01:00
Clemens Ladisch
83e8ad6984 [ALSA] seq: remove struct snd_seq_client_callback
The fields of struct snd_seq_client_callback either aren't used or are
always set to the same value, so we can get rid of it altogether.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:30:47 +01:00
Clemens Ladisch
255bd169ab [ALSA] seq: remove superfluous fields
Modules: ALSA sequencer

None of the fields of struct snd_seq_kernel_client was actually used, so
remove them.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:30:45 +01:00
Takashi Iwai
235475cb77 [ALSA] pcm - Fix wrong asserts
Modules: PCM Midlevel

Fixed wrong or supreflous snd_assert()'s.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:30:41 +01:00
Clemens Ladisch
416c1079d3 [ALSA] Nest sound devices
Modules: ALSA Core

Make the control device parent of all other ALSA devices of a card.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:30:36 +01:00
Takashi Iwai
59d4858250 [ALSA] pcm - Make the support of old API selectable
Modules: ALSA Core,PCM Midlevel

Make the support of old API selectable via config option.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:30:10 +01:00
Takashi Iwai
04f141a880 [ALSA] Optimize for config without PROC_FS (seq and oss parts)
Modules: ALSA<-OSS emulation,ALSA sequencer,ALSA<-OSS sequencer

Optimize the code when compiled without CONFIG_PROC_FS (in seq and oss
emulation parts).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:30:05 +01:00
Takashi Iwai
e28563cceb [ALSA] Optimize for config without PROC_FS
Modules: HWDEP Midlevel,ALSA Core,PCM Midlevel,Timer Midlevel

Optimize the code when compiled without CONFIG_PROC_FS.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:30:02 +01:00
Adrian Bunk
18612048b3 [ALSA] sound/: possible cleanups
Modules: RawMidi Midlevel,HDA generic driver

This patch contains the following possible cleanups:
- pci/hda/hda_proc.c should #include 'hda_local.h' for including the
  prototype of it's global function snd_hda_codec_proc_new()
- core/rawmidi.c: make the needlessly global and EXPORT_SYMBOL'ed
  function snd_rawmidi_info() static

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:29:40 +01:00
Takashi Iwai
9a1a2a1d4e [ALSA] Fix a missing include
Modules: ALSA Core

Fix missing include <linux/device.h>

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:29:38 +01:00
Clemens Ladisch
1b98ea4791 [ALSA] rawmidi: adjust runtime->avail when changing output buffer size
Modules: RawMidi Midlevel

When the output buffer size is changed, runtime->avail must be
adjusted to the new size; otherwise, draining of a bigger buffer would
appear to fail because avail does not reach buffer_size.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:29:25 +01:00
Clemens Ladisch
d001544ded [ALSA] dynamic minors (6/6): increase maximum number of sound cards
Modules: ALSA Core,Memalloc module,ALSA sequencer

With dynamic minor numbers, we can increase the number of sound cards.

This requires that the sequencer client numbers of some kernel drivers
are allocated dynamically, too.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:29:21 +01:00
Clemens Ladisch
204bdb1b50 [ALSA] dynamic minors (5/6): reduce maximum number of MIDI devices per card
Modules: ALSA sequencer,Generic drivers

To allow increasing the maximum number of sound cards, we have to limit
the number of sequencer clients per card because client numbers are
still allocated statically.

Reducing the number of clients to four limits the number of sequencer
MIDI ports to 1024 per card.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:29:20 +01:00
Clemens Ladisch
332682b1cd [ALSA] dynamic minors (4/6): dynamic minor number allocation
Modules: ALSA Core,ALSA Minor Numbers

Add an option to allocate device file minor numbers dynamically.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:29:19 +01:00
Clemens Ladisch
f87135f56c [ALSA] dynamic minors (3/6): store device-specific object pointers dynamically
Instead of storing the pointers to the device-specific structures in an
array, put them into the struct snd_minor, and look them up dynamically.

This makes the device type modules independent of the minor number
encoding.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:29:17 +01:00
Clemens Ladisch
6983b7240c [ALSA] dynamic minors (2/6): simplify storage of snd_minor structures
Modules: ALSA Core

Store the snd_minor structure pointers in one array instead of using a
separate list for each card.  This simplifies the mapping from device
files to minor struct by removing the need to know about the encoding
of the card number in the minor number.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:29:15 +01:00
Clemens Ladisch
2af677fc88 [ALSA] dynamic minors (1/6): store device type in struct snd_minor
Instead of a comment string, store the device type in the snd_minor
structure.  This makes snd_minor more flexible, and has the nice side
effect that we don't need anymore to create a separate snd_minor
template for registering a device but can pass the file_operations
directly to snd_register_device().

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:29:14 +01:00
Clemens Ladisch
a106cd3d9e [ALSA] rawmidi: protect against invalid device number in snd_rawmidi_info_select()
Modules: RawMidi Midlevel

In snd_rawmidi_info_select(), check that the device identified by the
passed device number actually exists.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-03 12:29:12 +01:00
Takashi Iwai
b32425ac93 [ALSA] Fix possible races in timer callbacks
Fix possible races in timer callbacks.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:29:08 +01:00
Takashi Iwai
73e77ba023 [ALSA] Add error messages
Add error messages in the critial error path to be more verbose.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:28:58 +01:00
Takashi Iwai
603bf524aa [ALSA] pcm - NULL check in snd_pcm_suspend*()
Modules: PCM Midlevel

Add NULL check in snd_pcm_suspend*() so that the caller doesn't have to do it
by itself.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:20:20 +01:00
Takashi Iwai
a381a7a664 [ALSA] Decentralize PM control
Modules: ALSA Core,Control Midlevel,/oss/Makefile

Remove the centralized PM control in the sound core.
Each driver is responsible to get callbacks from bus/driver now.

SND_GENERIC_DRIVER is removed together with this action.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:20:19 +01:00
Takashi Iwai
080dece346 [ALSA] Remove xxx_t typedefs: Sequencer OSS-emulation
Modules: ALSA<-OSS sequencer,ALSA sequencer

Remove xxx_t typedefs from the core sequencer OSS-emulation codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:57 +01:00
Takashi Iwai
19ac31e82c [ALSA] Remove xxx_t typedefs: Instrument layer
Modules: Instrument layer

Remove xxx_t typedefs from the core instrument layer codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:54 +01:00
Takashi Iwai
c7e0b5bf9f [ALSA] Remove xxx_t typedefs: Sequencer
Modules: ALSA sequencer

Remove xxx_t typedefs from the core sequencer codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:52 +01:00
Takashi Iwai
6ac77bc180 [ALSA] Remove xxx_t typedefs: PCM OSS-emulation
Modules: ALSA<-OSS emulation

Remove xxx_t typedefs from the core PCM OSS-emulation codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:48 +01:00
Takashi Iwai
f956b4a3ae [ALSA] Remove xxx_t typedefs: Mixer OSS-emulation
Modules: ALSA<-OSS emulation

Remove xxx_t typedefs from the core mixer OSS-emulation codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:47 +01:00
Takashi Iwai
174c1f65e5 [ALSA] Remove xxx_t typedefs: OSS-emulation
Modules: ALSA Core

Remove xxx_t typedefs from the core OSS-emulation codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:44 +01:00
Takashi Iwai
877211f5e1 [ALSA] Remove xxx_t typedefs: PCM
Modules: PCM Midlevel

Remove xxx_t typedefs from the core PCM codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:43 +01:00
Takashi Iwai
24c1f93188 [ALSA] Remove xxx_t typedefs: Proc handler
Modules: ALSA Core

Remove xxx_t typedefs from the core proc handler codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:39 +01:00
Takashi Iwai
d9a98de218 [ALSA] Remove xxx_t typedefs: Hwdep
Modules: HWDEP Midlevel

Remove xxx_t typedefs from the core hwdep codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:38 +01:00
Takashi Iwai
48c9d417d7 [ALSA] Remove xxx_t typedefs: Raw MIDI
Modules: RawMidi Midlevel

Remove xxx_t typedefs from the core raw MIDI codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:35 +01:00
Takashi Iwai
53d2f744af [ALSA] Remove xxx_t typedefs: Timer
Modules: RTC timer driver,Timer Midlevel

Remove xxx_t typedefs from the core timer.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:34 +01:00
Takashi Iwai
82e9bae6fd [ALSA] Remove xxx_t typedefs: Controls
Modules: Control Midlevel

Remove xxx_t typedefs from the core controls.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:32 +01:00
Takashi Iwai
512bbd6a85 [ALSA] Remove xxx_t typedefs: Core component
Modules: ALSA Core

Remove xxx_t typedefs from the core component.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:17:30 +01:00
Takashi Iwai
47eaebfd31 [ALSA] Use standard bitmap functions
Modules: ALSA<-OSS emulation

Use standard bitmap functions instead of in-house ones.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-03 12:16:33 +01:00
Hugh Dickins
f3d48f0373 [PATCH] unpaged: fix sound Bad page states
Earlier I unifdefed PageCompound, so that snd_pcm_mmap_control_nopage and
others can give out a 0-order component of a higher-order page, which won't
be mistakenly freed when zap_pte_range unmaps it.  But many Bad page states
reported a PG_reserved was freed after all: I had missed that we need to
say __GFP_COMP to get compound page behaviour.

Some of these higher-order pages are allocated by snd_malloc_pages, some by
snd_malloc_dev_pages; or if SBUS, by sbus_alloc_consistent - but that has
no gfp arg, so add __GFP_COMP into its sparc32/64 implementations.

I'm still rather puzzled that DRM seems not to need a similar change.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-22 09:13:43 -08:00
Russell King
3ae5eaec1d [DRIVER MODEL] Convert platform drivers to use struct platform_driver
This allows us to eliminate the casts in the drivers, and eventually
remove the use of the device_driver function pointer methods for
platform device drivers.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-11-09 22:32:44 +00:00
Jaroslav Kysela
b140c8bced [ALSA] Cleanup - remove sound/core/wrappers.c
Signed-off-by: Jaroslav Kysela <perex@suse.de>
2005-11-07 11:22:04 +01:00
Takashi Iwai
aa92c4af15 [ALSA] Fix a typo in the last fix
Modules: ALSA Core

Fix a typo (bogus check) in the last patch to fix Oops with suspend/resume.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:20:11 +01:00
Clemens Ladisch
f190286016 [ALSA] fix improper CONFIG_SND_MAJOR usage
Modules: HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel,ALSA Core

Replace usage of CONFIG_SND_MAJOR with snd_major, where appropriate.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-11-04 13:20:08 +01:00
Clemens Ladisch
3939e7142d [ALSA] clean up device types symbols
Modules: ALSA Core,ALSA Minor Numbers

Remove the unused and undefined symbols SNDRV_DEVICE_TYPE_{MIXER,
PCM_PLOOP,PCM_CLOOP}, and introduce a new symbol SNDRV_MINOR_GLOBAL
for non-card-specific devices like the sequencer or the timer.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-11-04 13:19:58 +01:00
Nishanth Aravamudan
8433a509c0 [ALSA] Fix schedule_timeout usage
Use schedule_timeout_{,un}interruptible() instead of
set_current_state()/schedule_timeout() to reduce kernel size.  Also use
human-time conversion functions instead of hard-coded division to avoid
rounding issues.

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:19:49 +01:00
Takashi Iwai
d3d579f84e [ALSA] Add missing KERN_* prefix
Modules: ALSA<-OSS emulation,USB generic driver,USB USX2Y

Added missing KERN_* prefix to printk.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04 13:19:32 +01:00
Clemens Ladisch
87ef7779be [ALSA] seq-timer: restrict timer frequencies
Modules: ALSA sequencer

When no default timer frequency has been set, initialize_timer() just
uses the maximum frequency supported by the timer, which is ridiculously
high on 96 kHz timers.

This patch introduces a default frequency of 1000 Hz for this case, and
makes sure that a frequency set by the user isn't too high.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-11-04 13:19:07 +01:00
Clemens Ladisch
6b172a8538 [ALSA] timer: formatting changes
Modules: Timer Midlevel

Split or rewrite lines that are longer than 80 characters, and remove
whitespaces at the end of lines.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-11-04 13:18:47 +01:00
Clemens Ladisch
9dfba38012 [ALSA] timer: remove list_entry() type casts
Modules: Timer Midlevel

The return value of list_entry() already has the type from the second
argument, so we don't need to typecase it again.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-11-04 13:18:45 +01:00
Clemens Ladisch
de24214d0c [ALSA] timers: add module refcounting for global timers
Modules: RTC timer driver,Timer Midlevel

Add a module pointer to the timer structure and use it for refcounting
instead of the card's module pointer to prevent the global timer
modules (rtctimer and hpetimer) from being removed while in use.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-11-04 13:18:43 +01:00
Clemens Ladisch
2fd43d1159 [ALSA] timer: fix timer instance memory allocation checks
Modules: Timer Midlevel

Add checks to return -ENOMEM in case snd_timer_instance_new() fails.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-11-04 13:18:38 +01:00