summaryrefslogtreecommitdiffstats
path: root/sound/core
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] maximum latency tracking: ALSA supportTakashi Iwai2006-10-012-1/+25
| | | | | | | | | | | | | | | | | | | | | | Add maximum latency tracking to the ALSA subsystem for PCM playback. In ALSA, the playback application controls the buffer size and thus indirectly the period of latency that it can deal with. This patch uses 75% of the total available latency as threshold to announce to the latency subsystem; While 75% is a crude heuristic it's a quite reasonable one; the remaining 25% can be used for all driver processing for the next samples which is also proportional to the size of the buffer. With ogg123 a latency setting of about 4msec was seen (at 44Khz), while with the "play" command a much longer maximum tolerable latency was seen. Other, more multimedia oriented players as well as games, will have a lot smaller buffers to allow better synchronization and those will actually get into the latency domains where there is impact on the power management rules. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [ALSA] sound core: Use SEEK_{SET,CUR,END} instead of hardcoded valuesJosef 'Jeff' Sipek2006-09-231-3/+3
| | | | | | | | | sound core: Use SEEK_{SET,CUR,END} instead of hardcoded values Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Add missing compat ioctls for ALSA control APITakashi Iwai2006-09-231-0/+4
| | | | | | | | Added the missing 32bit-compat ioctl entries for ALSA control API (espcially for recent additions of TLV stuff). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Add pcm_class attribute to PCM sysfs entryTakashi Iwai2006-09-232-12/+68
| | | | | | | | | This patch adds a new attribute, pcm_class, to each PCM sysfs entry. It's useful to detect what kind of PCM stream is, for example, HAL can check whether it's a modem or not. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Return error if no user TLV is definedTakashi Iwai2006-09-231-0/+2
| | | | | | | | Retrun error to user TLV_READ ioctl if no TLV is defined. (Until now, nothing was written and rerunred successfully.) Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Fix errors with user TLV_WRITETakashi Iwai2006-09-231-0/+1
| | | | | | | | Fixed the errors at checking info.access field during user TLV_WRITE call. It should have been zero-initialized. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Fix substream selection in PCM and rawmidiTakashi Iwai2006-09-233-2/+6
| | | | | | | | | | | | The PCM and rawmidi substreams can be selected explicitly by opening control handle and set via *_PREFER_SUBDEVICE ioctl. But, when multiple controls are opened, the driver gets confused. The patch fixes the initialization of prefer_*_subdevice and the check of multiple controls. The first set subdevice is picked up as the valid one. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Fix control/status mmap with shared PCM substreamTakashi Iwai2006-09-232-40/+11
| | | | | | | | | | | | The flag to avoid 32bit-incompatible mmap for control/status records should be outside the pcm substream instance since a substream can be shared among multiple opens. Now it's flagged in pcm_file list that is directly assigned to file->private_data. Also, removed snd_pcm_add_file() and remove_file() functions and substream.files field that are not really used in the code. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] system timer: remove unused snd_timer_system_private.timer fieldClemens Ladisch2006-09-231-1/+0
| | | | | | | Remove the snd_timer_system_private structure's timer field that was never used. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] timer: fix timer reschedulingClemens Ladisch2006-09-231-1/+1
| | | | | | | | | When checking whether a hardware timer needs to be rescheduled, we have to compare against the previously scheduled interval and not against the actual interval between the last two interrupts. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] system timer: clear correction value when timer stopsClemens Ladisch2006-09-231-0/+1
| | | | | | | Do not retain the old correction value when the timer was stopped. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] system timer: accumulate correction for multiple lost ticksClemens Ladisch2006-09-231-1/+1
| | | | | | | | When multiple timer interrupts arrive too late, correct for all delays instead of ignoring the earlier ones. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] system timer: fix lost ticks correction adjustmentClemens Ladisch2006-09-231-1/+1
| | | | | | | | | | Fix the adjustment of the lost ticks correction variable in the case when the correction has been fully taken into account in the next timer expiration value. Subtracting the scheduled ticks value would result in an underflow. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Control API - more robust TLV implementationJaroslav Kysela2006-09-231-30/+109
| | | | | | | | | | - added callback option - added READ/WRITE/COMMAND flags to access member - added WRITE/COMMAND ioctls - added SNDRV_CTL_EVENT_MASK_TLV for TLV change notifications - added TLV support to ELEM_ADD ioctl Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Deprecate snd_card_free_in_thread()Takashi Iwai2006-09-231-53/+3
| | | | | | | | Deprecated snd_card_free_in_thread(), replaced with snd_card_free_when_closed(). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Unregister device files at disconnectionTakashi Iwai2006-09-2311-165/+141
| | | | | | | | | | | | Orignally proposed by Sam Revitch <sam.revitch@gmail.com>. Unregister device files at disconnection to avoid the futher accesses. Also, the dev_unregister callback is removed and replaced with the combination of disconnect + free. A new function snd_card_free_when_closed() is introduced, which is used in USB disconnect callback. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Fix disconnection of proc interfaceTakashi Iwai2006-09-2315-117/+90
| | | | | | | | | | - Add the linked list to each proc entry to enable a single-shot disconnection (unregister) - Deprecate snd_info_unregister(), use snd_info_free_entry() - Removed NULL checks of snd_info_free_entry() Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Control API - TLV implementation for additional information like dB scaleJaroslav Kysela2006-09-231-2/+39
| | | | | | | | This patch implements a TLV mechanism to transfer an additional information like dB scale to the user space. The types might be extended in future. Acked-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Don't reject O_RDWR at opening PCM OSS with read/write-only deviceTakashi Iwai2006-08-031-0/+2
| | | | | | | | Accept O_RDWR at opening a PCM OSS device that is read- or write-only, just for the compatibility with the behavior of older versions. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Conversions from kmalloc+memset to k(z|c)allocPanagiotis Issaris2006-08-033-10/+5
| | | | | | | | sound: Conversions from kmalloc+memset to k(c|z)alloc. Signed-off-by: Panagiotis Issaris <takis@issaris.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Fix a deadlock in snd-rtctimerTakashi Iwai2006-07-121-2/+3
| | | | | | | | Fix a occasional deadlock occuring with snd-rtctimer driver, added irqsave to the lock in tasklet (ALSA bug#952). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] remove unused snd_minor.name fieldClemens Ladisch2006-07-121-2/+1
| | | | | | | | Drop the snd_minor structure's name field that was just a helper for devfs device deregistration. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [PATCH] lockdep: annotate sound/core/seq/seq_device.cArjan van de Ven2006-07-031-0/+6
| | | | | | | | | | | | | | | | The ops structure has complex locking rules, where not all ops are equal, some are subordinate on others for some complex sound cards. This requires for lockdep checking that each individual reg_mutex is considered in separation for its locking rules. Has no effect on non-lockdep kernels. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Takashi Iwai <tiwai@suse.de> Cc: Jaroslav Kysela <perex@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] lockdep: annotate sound/core/seq/seq_ports.cIngo Molnar2006-07-031-2/+2
| | | | | | | | | | | | Teach special (recursive) locking code to the lock validator. Has no effect on non-lockdep kernels. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Cc: Takashi Iwai <tiwai@suse.de> Cc: Jaroslav Kysela <perex@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Remove obsolete #include <linux/config.h>Jörn Engel2006-06-302-2/+0
| | | | | Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6Linus Torvalds2006-06-292-25/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/devfs-2.6: (22 commits) [PATCH] devfs: Remove it from the feature_removal.txt file [PATCH] devfs: Last little devfs cleanups throughout the kernel tree. [PATCH] devfs: Rename TTY_DRIVER_NO_DEVFS to TTY_DRIVER_DYNAMIC_DEV [PATCH] devfs: Remove the tty_driver devfs_name field as it's no longer needed [PATCH] devfs: Remove the line_driver devfs_name field as it's no longer needed [PATCH] devfs: Remove the videodevice devfs_name field as it's no longer needed [PATCH] devfs: Remove the gendisk devfs_name field as it's no longer needed [PATCH] devfs: Remove the miscdevice devfs_name field as it's no longer needed [PATCH] devfs: Remove the devfs_fs_kernel.h file from the tree [PATCH] devfs: Remove devfs_remove() function from the kernel tree [PATCH] devfs: Remove devfs_mk_cdev() function from the kernel tree [PATCH] devfs: Remove devfs_mk_bdev() function from the kernel tree [PATCH] devfs: Remove devfs_mk_symlink() function from the kernel tree [PATCH] devfs: Remove devfs_mk_dir() function from the kernel tree [PATCH] devfs: Remove devfs_*_tape() functions from the kernel tree [PATCH] devfs: Remove devfs support from the sound subsystem [PATCH] devfs: Remove devfs support from the ide subsystem. [PATCH] devfs: Remove devfs support from the serial subsystem [PATCH] devfs: Remove devfs from the init code [PATCH] devfs: Remove devfs from the partition code ...
| * [PATCH] devfs: Remove devfs support from the sound subsystemGreg Kroah-Hartman2006-06-262-25/+0
| | | | | | | | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | [ALSA] Fix misuse of __list_add() in seq_ports.cTakashi Iwai2006-06-281-4/+2
| | | | | | | | | | | | | | | | | | | | | | seq_ports.c::snd_seq_delete_all_ports() uses __list_add() to replace the whole list entries. This results in BUG() with recent FC5 kernel due to a sanity check in __list_add(). The patch fixes this misue of __list_add() by using standard macros instead (although a bit more code is needed). Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* | [ALSA] make CONFIG_SND_DYNAMIC_MINORS non-experimentalClemens Ladisch2006-06-281-2/+2
| | | | | | | | | | | | | | | | The dynamic minors code is mature, has been tested, and seems to work fine. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* | spelling fixesAndreas Mohr2006-06-261-1/+1
|/ | | | | | | | | | | | acquired (aquired) contiguous (contigious) successful (succesful, succesfull) surprise (suprise) whether (weather) some other misspellings Signed-off-by: Andreas Mohr <andi@lisas.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* [ALSA] Remove nested mutexes in seq_ports.cTakashi Iwai2006-06-221-2/+0
| | | | | | | | Removed nested mutexes in the removal routine of port connections. The port is guaranteed to be offline before calling it, so no mutex is needed. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Remove bogus check of mmap_count in snd_pcm_release()Takashi Iwai2006-06-221-1/+0
| | | | | | | Removed a bogus check of mmap_count in snd_pcm_release(). This is no longer true for the shared streams. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Remove zero-initialization of static variablesTakashi Iwai2006-06-2210-15/+15
| | | | | | | Removed zero-initializations of static variables. A tiny optimization. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Fix pcm-draining of capture stream in PCM middle layerTakashi Iwai2006-06-221-2/+0
| | | | | | | | Fix the draining of PCM capture stream in the PCM middle layer. snd_pcm_drain() ignored capture streams, but it should change the state to SNDRV_PCM_DRAINING. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Fix rwlock around snd_iprintf() in sound coreTakashi Iwai2006-06-222-26/+32
| | | | | | | | | Fixed rwlock around snd_iprintf() in sound core part. Replaced with mutex. Also, make mutex and flags static variables with addition of snd_card_locked() function (just for sound.c). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] rawmidi: add get_port_info callback for sequencer information flagsClemens Ladisch2006-06-221-0/+3
| | | | | | | | Add a get_port_info callback to the snd_rawmidi_global_ops structure to allow the USB MIDI driver to supply information flags for the sequencer ports created by seq_midi. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] add more sequencer port type information bitsClemens Ladisch2006-06-223-3/+9
| | | | | | | | Add four new information flags SNDRV_SEQ_PORT_TYPE_HARDWARE, _SOFTWARE, _SYNTHESIZER, _PORT for sequencer ports. This makes it easier for apps like Rosegarden to make policy decisions based on the port type. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] fix a wrong lockClemens Ladisch2006-06-221-1/+1
| | | | | | fix a typo in the info locking code Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] Fix compile warning in timer.cTakashi Iwai2006-06-221-1/+0
| | | | | | Fix a compile warning in timer.c due to unused variables. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Fix mmap_count with O_APPEND opened streamsTakashi Iwai2006-06-223-19/+20
| | | | | | | | Move mmap_count to snd_pcm_substream instead of runtime struct so that multiplly opened substreams via O_APPEND can be handled correctly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Add O_APPEND flag support to PCMTakashi Iwai2006-06-225-41/+94
| | | | | | | | Added O_APPEND flag support to PCM to enable shared substreams among multiple processes. This mechanism is used by dmix and dsnoop plugins. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Insert might_sleep() in snd_iprintf()Takashi Iwai2006-06-221-0/+1
| | | | | | Inserted might_sleep() in snd_iprintf() for sanity check. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Remove spinlocks around proc printsTakashi Iwai2006-06-222-8/+0
| | | | | | Don't lock during showing proc read. snd_iprintf() might sleep. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Remove unneeded read/write_size fields in proc text opsTakashi Iwai2006-06-2214-32/+15
| | | | | | | Remove unneeded read/write_size fields in proc text ops. snd_info_set_text_ops() is fixed, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Make buffer size of proc text interface variableTakashi Iwai2006-06-221-70/+79
| | | | | | Make the read/write buffer size of proc text interface variable. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Clean up ugly hacks in pcm_lib.cTakashi Iwai2006-06-221-44/+26
| | | | | | | Clean up ugly hacks for sync with alsa-lib code in pcm_lib.c. Also, optimize snd_pcm_hw_params_choose() with a loop. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Move OSS-specific hw_params helper to snd-pcm-oss moduleTakashi Iwai2006-06-226-626/+597
| | | | | | | Move EXPORT_SYMBOL()s to places adjacent to functions/variables. Also move OSS-specific hw_params helper functions to pcm_oss.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Clean up EXPORT_SYMBOL()s in snd-seq moduleTakashi Iwai2006-06-225-22/+20
| | | | | | Move EXPORT_SYMBOL()s to places adjacent to functions/variables. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Clean up EXPORT_SYMBOL()s in snd moduleTakashi Iwai2006-06-2210-88/+113
| | | | | | Move EXPORT_SYMBOL()s to places adjacent to functions/variables. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Change seq_midi.c so client name is card, rather than port, specificAlan Horstmann2006-06-221-2/+2
| | | | | | | | | Change snd_seq_midisynth_register_port() in seq_midi.c so that if a new client is created, the client name string is based on card->shortname not (port-specific) info->name. Signed-off-by: Alan Horstmann <gineera@aspect135.co.uk> Signed-off-by: Clemens Ladisch <clemens@ladisch.de>