aboutsummaryrefslogtreecommitdiff
path: root/sound/core
AgeCommit message (Collapse)Author
2009-03-24Merge branch 'topic/hwdep-cleanup' into for-linusTakashi Iwai
2009-03-24Merge branch 'topic/snd_card_new-err' into for-linusTakashi Iwai
2009-03-20ALSA: pcm - Safer boundary checksTakashi Iwai
Make the boundary checks a bit safer. These caese are rare or theoretically won't happen, but nothing bad to keep the checks safer... Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-19ALSA: pcm - Fix delta calculation at boundary overlapTakashi Iwai
When the hw_ptr_interrupt reaches the boundary, it must check whether the hw_base was already lapped and corret the delta value appropriately. Also, rebasing the hw_ptr needs a correction because buffer_size isn't always aligned to period_size. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-19ALSA: pcm - Reset invalid position even without debug optionTakashi Iwai
Always reset the invalind hw_ptr position returned by the pointer callback. The behavior should be consitent independently from the debug option. Also, add the printk_ratelimit() check to avoid flooding debug prints. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-19ALSA: pcm - avoid unnecessary inlineTakashi Iwai
Remove unnecessary explicit inlininig of internal functions. Let compiler optimize. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-19ALSA: pcm - Fix a typo in error messagesTakashi Iwai
Fix a typo in error messages; forgotten after a copy&paste error. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-18ALSA: Fix vunmap and free order in snd_free_sgbuf_pages()Takashi Iwai
In snd_free_sgbuf_pags(), vunmap() is called after releasing the SG pages, and it causes errors on Xen as Xen manages the pages differently. Although no significant errors have been reported on the actual hardware, this order should be fixed other way round, first vunmap() then free pages. Cc: Jan Beulich <jbeulich@novell.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-18ALSA: pcm_oss, fix locking typoJiri Slaby
s/mutex_lock/mutex_unlock/ on 2 fail paths in snd_pcm_oss_proc_write. Probably a typo, lock should be unlocked when leaving the function. Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-18ALSA: oss-mixer - Fixes recording gain controlViral Mehta
At the time of initialization, SNDRV_MIXER_OSS_PRESENT_PVOLUME bit is not set for MIC (slot 7). So, the same should not be checked when an application tries to do gain control for audio recording devices. Just check slot->present for SNDRV_MIXER_OSS_PRESENT_CVOLUME independently. Verified with a simple application which opens /dev/dsp for recording and /dev/mixer for volume control. Have tested two usb audio mic devices. Signed-off-by: Viral Mehta <viral.mehta@einfochips.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-16Rationalize fasync return valuesJonathan Corbet
Most fasync implementations do something like: return fasync_helper(...); But fasync_helper() will return a positive value at times - a feature used in at least one place. Thus, a number of other drivers do: err = fasync_helper(...); if (err < 0) return err; return 0; In the interests of consistency and more concise code, it makes sense to map positive return values onto zero where ->fasync() is called. Cc: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2009-03-16Use f_lock to protect f_flagsJonathan Corbet
Traditionally, changes to struct file->f_flags have been done under BKL protection, or with no protection at all. This patch causes all f_flags changes after file open/creation time to be done under protection of f_lock. This allows the removal of some BKL usage and fixes a number of longstanding (if microscopic) races. Reviewed-by: Christoph Hellwig <hch@lst.de> Cc: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2009-03-09ALSA: rawmidi - Refactor rawmidi open/close codesTakashi Iwai
Refactor rawmidi open/close code messes. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-09ALSA: rawmidi - Fix possible race in openTakashi Iwai
The module refcount should be handled in the register_mutex to avoid possible races with module unloading. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-09ALSA: Clean up snd_monitor_file managementTakashi Iwai
Use the standard linked list for snd_monitor_file management. Also, move the list deletion of shutdown_list element into snd_disconnect_release() (for simplification). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-09ALSA: Add kernel-doc comments to vmaster stuffTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-09ALSA: add snd_ctl_add_slave_uncached()Takashi Iwai
Added snd_ctl_add_slave_uncached() function to add a slave element with volatile controls. The values of normal slave elements are supposed to be cachable, i.e. they are changed only via the put callbacks. OTOH, when a slave element is volatile and its values may be changed by other reason (e.g. hardware status change), the values will get inconsistent. The new function allows the slave elements with volatile changes. When the slave is tied with this call, the native get callback is issued at each time so that the values are always updated. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-09ALSA: Remove unneeded snd_pcm_substream.timer_lockTakashi Iwai
The timer callbacks are called in the protected status by the lock of the timer instance, so there is no need for an extra lock in the PCM substream. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-03-09ALSA: Rewrite hw_ptr updatersTakashi Iwai
Clean up and improve snd_pcm_update_hw_ptr*() functions. snd_pcm_update_hw_ptr() tries to detect the unexpected hwptr jumps more strictly to avoid the position mess-up, which often results in the bad quality I/O with pulseaudio. The hw-ptr skip error messages are printed when xrun proc is set to non-zero. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-23ALSA: fix excessive background noise introduced by OSS emulation rate shrinkSteve Chen
Incorrect variable was used to get the next sample which caused S2 to be stuck with the same value resulting in loud background noise. Signed-off-by: Steve Chen <schen at mvista.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-18ALSA: jack - Use card->shortname for input nameTakashi Iwai
Currently the jack layer refers to card->longname as a part of its input device name string. However, longname is often really long and way too ugly as an identifier, such as, "HDA Intel at 0xf8400000 irq 21". This patch changes the code to use card->shortname instead. The shortname string contains usually the h/w vendor and product names but without messy I/O port or IRQ numbers. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-09Merge branch 'topic/quirk-cleanup' into topic/miscTakashi Iwai
2009-02-09ALSA: Add subdevice_mask field to quirk entriesTakashi Iwai
Introduced a new field, subdevice_mask, which specifies the bitmask to match with the given subdevice ID. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-05ALSA: Add missing KERN_* prefix to printk in sound/coreTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-05ALSA: snd_pcm_new api cleanupTim Blechmann
Impact: cleanup snd_pcm_new takes a char *id argument, although it is not modifying the string. it can therefore be declared as const char *id. Signed-off-by: Tim Blechmann <tim@klingt.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-05ALSA: hwdep - Make open callback optionalTakashi Iwai
Don't require the open callback as mandatory. Now all hwdeps ops can be optional. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-04ALSA: pcm_oss: AFMT_S24_LE is set twice in return valueRoel Kluin
AFMT_S24_LE is set twice in return value vi sound/core/oss/pcm_oss.c +640 #define AFMT_S24_LE 0x00008000 #define AFMT_S24_BE 0x00010000 Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-12ALSA: Introduce snd_card_create()Takashi Iwai
Introduced snd_card_create() function as a replacement of snd_card_new(). The new function returns a negative error code so that the probe callback can return the proper error code, while snd_card_new() can give only NULL check. The old snd_card_new() is still provided as an inline function but with __deprecated attribute. It'll be removed soon later. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-07ALSA: Add support for video out to the jack reporting APIJani Nikula
Add support for reporting new jack types SND_JACK_VIDEOOUT and SND_JACK_AVOUT (a combination of LINEOUT and VIDEOOUT) to the jack reporting API. Also add the corresponding SW_VIDEOOUT_INSERT switch to the input system header. Signed-off-by: Jani Nikula <ext-jani.1.nikula@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-01-06Check fops_get() return valueLaurent Pinchart
Several subsystem open handlers dereference the fops_get() return value without checking it for nullness. This opens a race condition between the open handler and module unloading. A module can be marked as being unloaded (MODULE_STATE_GOING) before its exit function is called and gets the chance to unregister the driver. During that window open handlers can still be called, and fops_get() will fail in try_module_get() and return a NULL pointer. This change checks the fops_get() return value and returns -ENODEV if NULL. Reported-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be> Acked-by: Takashi Iwai <tiwai@suse.de> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Dave Airlie <airlied@linux.ie> Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-01-03ALSA: Reduce boilerplate for new jack typesMark Brown
Use a lookup table rather than explicit code to map input subsystem jack types into ASoC ones, implemented as suggested by Takashi Iwai. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2008-12-30Merge branch 'timers-core-for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: hrtimers: fix warning in kernel/hrtimer.c x86: make sure we really have an hpet mapping before using it x86: enable HPET on Fujitsu u9200 linux/timex.h: cleanup for userspace posix-timers: simplify de_thread()->exit_itimers() path posix-timers: check ->it_signal instead of ->it_pid to validate the timer posix-timers: use "struct pid*" instead of "struct task_struct*" nohz: suppress needless timer reprogramming clocksource, acpi_pm.c: put acpi_pm_read_slow() under CONFIG_PCI nohz: no softirq pending warnings for offline cpus hrtimer: removing all ur callback modes, fix hrtimer: removing all ur callback modes, fix hotplug hrtimer: removing all ur callback modes x86: correct link to HPET timer specification rtc-cmos: export second NVRAM bank Fixed up conflicts in sound/drivers/pcsp/pcsp.c and sound/core/hrtimer.c manually.
2008-12-25Merge branch 'topic/udev-id-rename' into to-pushTakashi Iwai
2008-12-25Merge branch 'topic/snd-hrtimer' into to-pushTakashi Iwai
2008-12-25Merge branch 'topic/jack-mechanical' into to-pushTakashi Iwai
2008-12-25Merge branch 'topic/hda' into to-pushTakashi Iwai
2008-12-25Merge branch 'topic/convert-tasklet' into to-pushTakashi Iwai
2008-12-19Merge branch 'fix/hda' into topic/hdaTakashi Iwai
2008-12-18ALSA: hda - Convert from takslet_hi_schedule() to tasklet_schedule()Takashi Iwai
Replace all tasklet_hi_schedule() callers with the normal tasklet_schedule(). The former often causes troubles with RT-kernels, and has actually no merit. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-10ALSA: Add support for mechanical jack insertionMark Brown
Some systems support both mechanical and electrical jack detection, allowing them to report that a jack is physically present but does not have any functioning connections. Add a new jack type for these, allowing user space to report faulty connections. Thanks to Guillem Jover for the suggestion. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-08ALSA: hrtimer - Use hard-irq callbackTakashi Iwai
Use the hard-irq mode for the callback (for possible removal of soft-irq mode in future). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-08ALSA: timer - Add comments and use ns_to_ktime()Takashi Iwai
Add the license and misc comments at the beginning of the code. Also, use ns_to_ktime() for simplification. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-26Merge branch 'topic/misc' into topic/pcsp-fixTakashi Iwai
Conflicts: sound/drivers/pcsp/pcsp_lib.c
2008-11-18sound: Fix warnings relating to ignored return value in snd_card_registerHannes Eder
Do not ignore the return of 'device_create_file' in 'snd_card_register' and thereby fixing the following warnings: sound/core/init.c: In function 'snd_card_register': sound/core/init.c:640: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result sound/core/init.c:641: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result Signed-off-by: Hannes Eder <hannes@hanneseder.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-12ALSA: when card identification is changed, change also /proc/asound symlinkJaroslav Kysela
Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-12ALSA: add /sys/class/sound/card#/id (r/w) and card#/number (r/o) filesJaroslav Kysela
For udev, we need a way to rename soundcard names. The soundcard numbers (indexes) are hardwired but we have a text identification which can be changed at run-time. The ALSA user space tools already allow using of this text identification. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-07Merge branch 'topic/fix/misc' into topic/miscTakashi Iwai
2008-11-03Merge branch 'for-linus' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: hda: make a STAC_DELL_EQ option ALSA: emu10k1 - Add more invert_shared_spdif flag to Audigy models ALSA: hda - Add a quirk for another Acer Aspire (1025:0090) ALSA: remove direct access of dev->bus_id in sound/isa/* sound: struct device - replace bus_id with dev_name(), dev_set_name() ALSA: Fix PIT lockup on some chipsets when using the PC-Speaker ALSA: rawmidi - Add open check in rawmidi callbacks ALSA: hda - Add digital-mic for ALC269 auto-probe mode ALSA: hda - Disable broken mic auto-muting in Realtek codes
2008-11-03Merge branches 'topic/fix/misc' and 'topic/fix/hda' into for-linusTakashi Iwai
2008-11-03ALSA: rawmidi - Add open check in rawmidi callbacksTakashi Iwai
The drivers (e.g. mtpav) may call rawmidi functions in irq handlers even though the streams are not opened. This results in Oops or panic. This patch adds the rawmidi state check before actually operating the rawmidi buffers. Tested-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Takashi Iwai <tiwai@suse.de>