summaryrefslogtreecommitdiff
path: root/include/sound/timer.h
AgeCommit message (Collapse)Author
2019-12-11ALSA: Replace timespec with timespec64Baolin Wang
Since timespec is not year 2038 safe on 32bit system, and we need to convert all timespec variables to timespec64 type for sound subsystem. This patch is used to do preparation for following patches, that will convert all structures defined in uapi/sound/asound.h to use 64-bit time_t. Signed-off-by: Baolin Wang <baolin.wang@linaro.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2019-11-08ALSA: timer: Fix possible race at assigning a timer instanceTakashi Iwai
When a new timer instance is created and assigned to the active link in snd_timer_open(), the caller still doesn't (can't) set its callback and callback data. In both the user-timer and the sequencer-timer code, they do manually set up the callbacks after calling snd_timer_open(). This has a potential risk of race when the timer instance is added to the already running timer target, as the callback might get triggered during setting up the callback itself. This patch tries to address it by changing the API usage slightly: - An empty timer instance is created at first via the new function snd_timer_instance_new(). This object isn't linked to the timer list yet. - The caller sets up the callbacks and others stuff for the new timer instance. - The caller invokes snd_timer_open() with this instance, so that it's linked to the target timer. For closing, do similarly: - Call snd_timer_close(). This unlinks the timer instance from the timer list. - Free the timer instance via snd_timer_instance_free() after that. Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20191107192008.32331-4-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-11-08ALSA: timer: Make snd_timer_close() returning voidTakashi Iwai
The function doesn't return any useful value, so let's make it void to be clearer. Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://lore.kernel.org/r/20191107192008.32331-3-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-05-30treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156Thomas Gleixner
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1334 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Richard Fontana <rfontana@redhat.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.113240726@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-11-06ALSA: timer: Limit max instances per timerTakashi Iwai
Currently we allow unlimited number of timer instances, and it may bring the system hogging way too much CPU when too many timer instances are opened and processed concurrently. This may end up with a soft-lockup report as triggered by syzkaller, especially when hrtimer backend is deployed. Since such insane number of instances aren't demanded by the normal use case of ALSA sequencer and it merely opens a risk only for abuse, this patch introduces the upper limit for the number of instances per timer backend. As default, it's set to 1000, but for the fine-grained timer like hrtimer, it's set to 100. Reported-by: syzbot Tested-by: Jérôme Glisse <jglisse@redhat.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-01-21ALSA: timer: Introduce disconnect op to snd_timer_instanceTakashi Iwai
Instead of the previous ugly hack, introduce a new op, disconnect, to snd_timer_instance object for handling the wake up of pending tasks more cleanly. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=109431 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2007-10-16[ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.czJaroslav Kysela
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2006-09-23[ALSA] Unregister device files at disconnectionTakashi Iwai
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>
2006-01-03[ALSA] Remove xxx_t typedefs: TimerTakashi Iwai
Modules: RTC timer driver,Timer Midlevel Remove xxx_t typedefs from the core timer. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-11-04[ALSA] timers: add module refcounting for global timersClemens Ladisch
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-05-29[ALSA] sound/core/: possible cleanupsAdrian Bunk
PCM Midlevel,ALSA Core,Timer Midlevel,ALSA sequencer,Virtual Midi This patch contains the following possible cleanups: - make needlessly global code static - #if 0 the following unused global functions - remove the following unneeded EXPORT_SYMBOL's Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2004-07-01ALSA CVS updateJaroslav Kysela
Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer Removal and replacement of magic memory allocators and casts (core part) This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree() with kmalloc(), kcalloc() and kfree(), respectively. The cast via snd_magic_cast() is replaced with the standard cast, too. Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2004-04-24ALSA CVS update - Jaroslav Kysela <perex@suse.cz>Jaroslav Kysela
Timer Midlevel,ALSA Core Added early event flag and code to the timer interface.
2003-03-20ALSA update (0.9.2)Jaroslav Kysela
- created snd-page-alloc module - moved all page allocation code there - preserves preallocated DMA buffers for devices - USB audio driver updated - AC'97 - better modem initialization code - timer API - enhanced (added pause and more event notifications) - splitted ice1724 code from ice1712 to own module - general - timerstamp cleanups (timeval -> timespec) - C99-like cleanups - trident driver - more workaround for wrong IRQ acks - OSS sequencer emulation - fixed OOPS (wrong free order) - more compatible with level 1 of sequencer (/dev/sequencer) - CS46xx driver updated - intel8x0 driver updated - emu10k1 driver updated
2003-02-09ALSA updateJaroslav Kysela
- moved inclusion of <linux/interrupt.h> from <sound/asound.h> to <sound/timer.h> - pmac driver - removed beep stuff for 2.5 kernels - USB driver - fixed compilation
2003-02-08ALSA updateJaroslav Kysela
- cmipci driver cleanups (ac3 & surround) - replaced snd_dma_residue() with snd_dma_pointer() - GCC 3.3 warnings removal - timer interface - recoded using tasklet - improved slave timer locking (should be much faster) - added async support - improved ioctl32 wrapper functions - fixed Makefile problems (synth modules were build for not selected driver) - AC97 codec - improved SPSA control - moved reset function outside the main init code - improved ALC650 initialization - USB driver - added quirk for Roland XV-2020
2002-06-19[PATCH] ALSA updateJaroslav Kysela
this ALSA update contains - fixed dependencies for OSS Sequencer emulation code - fixed wrong verbose printk output - fixed possible oops in OSS PCM emulation code (silence) - added snd_timer_del() function - added integer64 support to control interface - AC'97 - cleanups for Cirrus Logic codecs (S/PDIF) - added PCM device for SB AWE synthesizer - added RME Hammerfall DSP Audio driver by Paul Davis - renamed rme9652_mem.o module to hammerfall_mem.o - device naming cleanups in snd-intel8x0 - RME32 driver updates - VIA8233 driver updates for VIA8233A - CS4281 code updated to support dual codecs - Korg1212 driver update (debugging) - YMFPCI - changed support for rear channel - improved PPC drivers - AWACS, KEYWEST, TUMBLER
2002-02-12[PATCH] ALSA patch for 2.5.4Jaroslav Kysela
Integrate ALSA into v2.5.4 Jaroslav