aboutsummaryrefslogtreecommitdiffstats
path: root/sound/drivers
Commit message (Collapse)AuthorAge
* IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells2006-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
* [PATCH] NULL noise removalAl Viro2006-09-24
| | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [ALSA] Move CONFIG_SND_AC97_POWER_SAVE to pci/KconfigTakashi Iwai2006-09-23
| | | | | | | | Moved the entry of CONFIG_SND_AC97_POWER_SAVE from drivers/Kconfig to more appropriate place, pci/Kconfig. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] opl4: Use SEEK_{SET,CUR,END} instead of hardcoded valuesJosef 'Jeff' Sipek2006-09-23
| | | | | | | | | opl4: 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 dB scale information to vxpocket and vx222 driversTakashi Iwai2006-09-23
| | | | | | | Added the dB scale information to vxpocket and vx222 drivers. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Add dB scale information to dummy driverTakashi Iwai2006-09-23
| | | | | | | Added the dB scale information to dummy driver. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Fix some typos in snd-dummy driverTakashi Iwai2006-09-23
| | | | | | | Fixed some typos in snd-dummy driver. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Add snd-mts64 driver for ESI Miditerminal 4140Matthias Koenig2006-09-23
| | | | | | | | | | Added snd-mts64 driver for Ego Systems (ESI) Miditerminal 4140 by Matthias Koenig <mk@phasorlab.de>. The driver requires parport (CONFIG_PARPORT). Signed-off-by: Matthias Koenig <mk@phasorlab.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Add experimental support of aggressive AC97 power-saving modeTakashi Iwai2006-09-23
| | | | | | | | | | | | | Added CONFIG_SND_AC97_POWER_SAVE kernel config to enable the support of aggressive AC97 power-saving mode. In this mode, the AC97 powerdown register bits are dynamically controlled at each open/close of PCM streams. The mode is activated via power_save option for snd-ac97-codec driver. As default it's off. It can be turned on/off on the fly via sysfs, too. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] Deprecate snd_card_free_in_thread()Takashi Iwai2006-09-23
| | | | | | | | 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] Fix disconnection of proc interfaceTakashi Iwai2006-09-23
| | | | | | | | | | - 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] Conversions from kmalloc+memset to k(z|c)allocPanagiotis Issaris2006-08-03
| | | | | | | | 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>
* [PATCH] irq-flags: sound: Use the new IRQF_ constantsThomas Gleixner2006-07-02
| | | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: "David S. Miller" <davem@davemloft.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Jaroslav Kysela <perex@suse.cz> Cc: Takashi Iwai <tiwai@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] 64bit resource: fix up printks for resources in sound driversGreg Kroah-Hartman2006-06-27
| | | | | | | | | | This is needed if we wish to change the size of the resource structures. Based on an original patch from Vivek Goyal <vgoyal@in.ibm.com> Cc: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* [ALSA] virmidi: revert erroneous removal of zero initializationClemens Ladisch2006-06-22
| | | | | | | The last patch that tried to remove zero initializations of static variables accidentally removed a not-quite-zero initialization too. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] Change an arugment of snd_mpu401_uart_new() to bit flagsTakashi Iwai2006-06-22
| | | | | | | | | | Change the 5th argument of snd_mpu401_uart_new() to bit flags instead of a boolean. The argument takes bits that consist of MPU401_INFO_XXX flags. The callers that used the value 1 there are replaced with MPU401_INFO_INTEGRATED. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] mpu401_uart - Fix coding style and code clean upTakashi Iwai2006-06-22
| | | | | | | | | - fold lines and fix spaces to follow the standard style - added some comments - moved EXPORT_SYMBOL() near the definition - some code clean up Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Remove zero-initialization of static variablesTakashi Iwai2006-06-22
| | | | | | | Removed zero-initializations of static variables. A tiny optimization. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] add more sequencer port type information bitsClemens Ladisch2006-06-22
| | | | | | | | 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 port type bitsClemens Ladisch2006-06-22
| | | | | | | Fix the port information about non-MIDI messages that had wrong values for some OPL3 and EmuX ports. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] Remove unneeded read/write_size fields in proc text opsTakashi Iwai2006-06-22
| | | | | | | 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] vx - Move EXPORT_SYMBOL() to adjacent to each functionTakashi Iwai2006-06-22
| | | | | | Move EXPORT_SYMBOL() to adjacent to each exported function/variable. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] opl4 - Move EXPORT_SYMBOL() to adjacent to each functionTakashi Iwai2006-06-22
| | | | | | Move EXPORT_SYMBOL() to adjacent to each exported function/variable. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] opl3 - Move EXPORT_SYMBOL() to adjacent to each functionTakashi Iwai2006-06-22
| | | | | | Move EXPORT_SYMBOL() to adjacent to each exported function/variable. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] unregister platform device again if probe was unsuccessfulRene Herman2006-06-22
| | | | | | | | | This second one unregisters the platform device again when the probe is unsuccesful for sound/drivers, sound/arm/sa11xx-uda1341.c and sound/ppc/powermac.c. This gets them all. Signed-off-by: Rene Herman <rene.herman@keyaccess.nl> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [PATCH] mpu401 section fixAndrew Morton2006-05-21
| | | | | | | | | WARNING: sound/drivers/mpu401/snd-mpu401.o - Section mismatch: reference to .init.text: from .text between 'snd_mpu401_pnp_probe' (at offset 0x1f7) and 'snd_mpu401_pnp_remove' Cc: Jaroslav Kysela <perex@suse.cz> Cc: Takashi Iwai <tiwai@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [ALSA] continue on IS_ERR from platform device registrationRene Herman2006-04-27
| | | | | | | | | | | | I previously only concerned myself with sound/isa. When I now checked for more platform_device_register_simple() usages in ALSA I found a couple more drivers that needed the same patches as already submitted for all the ISA drivers. This first one is the continue-on-iserr patch for sound/drivers. This gets them all. Signed-off-by: Rene Herman <rene.herman@keyaccess.nl> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [PATCH] sound: fix hang in mpu401_uart.cJon Masters2006-04-20
| | | | | | | | | | | | | | | | | | | | | This fixes a hang in mpu401_uart.c that can occur when the mpu401 interface is non-existent or otherwise doesn't respond to commands but we issue IO anyway. snd_mpu401_uart_cmd now returns an error code that is passed up the stack so that an open() will fail immediately in such cases. Eventually discovered after wine/cxoffice would constantly cause hard lockups on my desktop immediately after loading (emulating Windows too well). Turned out that I'd recently moved my sound cards around and using /dev/sequencer now talks to a sound card with a broken MPU. This second version changes -EFAULT to -EIO and frees open resources on error too. Test booted and seems to work ok. Signed-off-by: Jon Masters <jcm@jonmasters.org> Cc: Jaroslav Kysela <perex@suse.cz> Acked-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] pnp: mpu401: adjust pnp_register_driver signatureBjorn Helgaas2006-03-27
| | | | | | | | | | | | | | | | | | | | | | | | This series of patches removes the assumption that pnp_register_driver() returns the number of devices claimed. Returning the count is unreliable because devices may be hot-plugged in the future. (Many devices don't support hot-plug, of course, but PNP in general does.) This changes the convention to "zero for success, or a negative error value," which matches pci_register_driver(), acpi_bus_register_driver(), and platform_driver_register(). If drivers need to know the number of devices, they can count calls to their .probe() methods. This patch: Remove the assumption that pnp_register_driver() returns the number of devices claimed. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Cc: Adam Belay <ambx1@neo.rr.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [ALSA] fix some memory leaksAdrian Bunk2006-03-22
| | | | | | | | | Modules: Generic drivers,ES18xx driver,CS46xx driver This patch fixes two memory leaks spotted by the Coverity checker. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Fix use after free in opl3_seq and opl3_ossDave Jones2006-03-22
| | | | | | | | | | | | | Modules: OPL3 Don't read from free'd memory. Also make use of the return value, and don't register the device if something went wrong creating the port. Coverity #954, #955 Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] vx - Fix memory leak on error pathAlexey Dobriyan2006-03-22
| | | | | | | | | | Modules: Digigram VX core Noticed by Eric Sesterhenn on kernel-janitors@ Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Fix check of enable module optionTakashi Iwai2006-03-22
| | | | | | | Fix the check of enable module option in probe of platform_device drivers. It shouldn't break the loop but just ignore if enable[i] is false. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] no need to check pointers passed to vfree() for NULLJesper Juhl2006-03-22
| | | | | | | | | Modules: Digigram VX core,USB generic driver There's no need to check pointers passed to vfree() for NULL. Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] semaphore -> mutex (driver part)Ingo Molnar2006-03-22
| | | | | | | | | | | Semaphore to mutex conversion. The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [PATCH] alsa: fix bogus snd_device_free() in opl3-oss.cTakashi Iwai2006-02-24
| | | | | | | | | | | Remove snd_device_free() for an opl3-oss instance which should have been released. Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: Jaroslav Kysela <perex@suse.cz> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [ALSA] serial-uart16550 - Fix a compile warningTakashi Iwai2006-02-01
| | | | | | | | Modules: Generic drivers Fix a gcc-4.1 compile warning regarding uninitialized variables. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] opl3 - Fix the unreleased resourcesTakashi Iwai2006-01-04
| | | | | | | | Modules: OPL3 Fix the unreleased resources in the error path of snd_opl3_create(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] dummy driver - added CA0106 emulation definesJaroslav Kysela2006-01-04
| | | | | | Modules: Generic drivers Signed-off-by: Jaroslav Kysela <perex@suse.cz>
* [ALSA] seq: set client name in snd_seq_create_kernel_client()Clemens Ladisch2006-01-03
| | | | | | | | | 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>
* [ALSA] seq: remove struct snd_seq_client_callbackClemens Ladisch2006-01-03
| | | | | | | 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>
* [ALSA] unregister platform devicesClemens Ladisch2006-01-03
| | | | | | | Call platform_device_unregister() for all platform devices that we've registered. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] sound: align device drivers menusRandy Dunlap2006-01-03
| | | | | | | | | | | | | Modules: Sound Core,Generic drivers AC97 Kconfig entries broke the ALSA device drivers menu, so move them to a location where that won't happen, enabling all device sub-menus to be presented together. Fixed for the latest ALSA tree by Takashi Iwai <tiwai@suse.de>. Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] dynamic minors (5/6): reduce maximum number of MIDI devices per cardClemens Ladisch2006-01-03
| | | | | | | | | | | | | 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>
* [ALSA] Fix possible races in timer callbacksTakashi Iwai2006-01-03
| | | | | | Fix possible races in timer callbacks. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Add error messagesTakashi Iwai2006-01-03
| | | | | | Add error messages in the critial error path to be more verbose. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] vx-driver - Fix PM supportTakashi Iwai2006-01-03
| | | | | | Fix PM support on VX drivers (vxpocket and vx222). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Remove SND_GENERIC_DRIVER from drivers/KconfigTakashi Iwai2006-01-03
| | | | | | | | Modules: Generic drivers Remove SND_GENERIC_DRIVER from drivers/Kconfig. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] mpu401 - Use platform_deviceTakashi Iwai2006-01-03
| | | | | | | | Modules: MPU401 UART Rewrite the probe/remove code using platform_device. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virmidi - Use platform_deviceTakashi Iwai2006-01-03
| | | | | | | | Modules: Generic drivers Rewrite the probe/remove code using platform_device. Signed-off-by: Takashi Iwai <tiwai@suse.de>