aboutsummaryrefslogtreecommitdiff
path: root/sound/usb
AgeCommit message (Collapse)Author
2006-10-05IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells
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)
2006-10-01[PATCH] kmemdup: some usersAlexey Dobriyan
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-27USB: Dealias -110 code (more complete)Pete Zaitcev
The purpose of this patch is to split off the case when a device does not reply on the lower level (which is reported by HC hardware), and a case when the device accepted the request, but does not reply at upper level. This redefinition allows to diagnose issues easier, without asking the user if the -110 happened "immediately". The usbmon splits such cases already thanks to its timestamp, but it's not always available. I adjusted all drivers which I found affected (by searching for "urb"). Out of tree drivers may suffer a little bit, but I do not expect much breakage. At worst they may print a few messages. Signed-off-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-09-23[ALSA] usb-audio: add mixer control names for the Aureon 5.1 MkIIClemens Ladisch
Add a mixer name map for the TerraTec Aureon 5.1 MkII USB. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] usb-audio: increase number of packets per URBClemens Ladisch
To decrease the USB interrupts rate, increase both the default and the maximum number of packets per URB. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] Support for non-standard rates in USB audio driverLuke Ross
There's at least one USB audio chipset out there which supports only one non-standard rate (ID 0e6a:0310 supports 46875Hz). There's a few other patches for this card which are unsatisfactory because they attempt to map this rate to 44.1k leading to sound distortion. The patch below uses SNDRV_PCM_RATE_KNOT to properly support the non-standard rates where they are available. Signed-off-by: Luke Ross <luke@lukeross.name> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] usb-audio - Fix a typo of CONFIG_PROC_FSTakashi Iwai
Fixed a typo of CONFIG_PROC_FS in usbaudio.c. The stream proc file appears again. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] usb-audio: add more Yamaha devicesClemens Ladisch
Add some quirks for some unknown Yamaha USB MIDI devices. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-09-23[ALSA] Add TLV support to snd-usb-audio driverTakashi Iwai
Added TLV-read support to snd-usb-audio driver for passing the volume dB scale information to user-space. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.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-08-03[ALSA] Conversions from kmalloc+memset to k(z|c)allocPanagiotis Issaris
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>
2006-06-28[ALSA] usb-audio support for Turtle Beach RoadieSam Revitch
From: Sam Revitch <sam.revitch@gmail.com>Recently a Turtle Beach Audio Advantage Roadie device ended up in my possession. It seems to work with the snd-usb-audio driver, but only using the headphone jack in 2-channel mode. The device has a DIN connector carrying six more channels that are otherwise silent. C-Media has freely available documentation for the CM106 chip around which this device is based, and enabling 8-channel output, or 6-channel output with the headphone jack following the front pair is a matter of setting one of its registers. Attached is a patch to try to enable 5.1 output mode at probe time. It seems to work correctly with my device. There is quite list of other configurables for this device that might deserve controls. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-06-22[ALSA] USB midi: Remove duplicate CS_AUDIO_* #definesBen Williamson
Removed the CS_AUDIO_* #defines, which were duplicates of the class-specific USB_DT_CS_* #defines in <linux/usb_ch9.h>. Signed-off-by: Ben Williamson <ben.williamson@greyinnovation.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-06-22[ALSA] usbaudio - Fix a typoTakashi Iwai
Fix a typo introduced by the last fix. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-06-22[ALSA] usb-audio: add workaround for CSR Bluetooth Headphones (Saitek A-250)Clemens Ladisch
Some devices don't have the required class-specific endpoint descriptors. Instead of making this case an error, this patch makes the driver guess the endpoint attributes. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-06-22[ALSA] add support for SB Live! 24-Bit External remote controlRaimonds Cicans
This patch rewrites the remote control code to use a table for the peculiarities of the various SB models, and adds support for a third model. Signed-off-by: Raimonds Cicans <ray@vardes.lv> Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-06-22[ALSA] rawmidi: add get_port_info callback for sequencer information flagsClemens Ladisch
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>
2006-06-22[ALSA] Add O_APPEND flag support to PCMTakashi Iwai
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>
2006-06-22[ALSA] Remove unneeded read/write_size fields in proc text opsTakashi Iwai
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>
2006-04-27[ALSA] add another Phase 26 quirkClemens Ladisch
Add a quirk entry for the TerraTec Phase 26 with yet another product ID. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-31[ALSA] Test volume resolution of usb audio at initializationTakashi Iwai
Test the volume of usb audio whether actually it works and adjusts the resolution value according to it. Some USB audio devices report a lower resolution than it reacts. The only possible check is to write and read a volume value. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-28[PATCH] Typo fixesAlexey Dobriyan
Fix a lot of typos. Eyeballed by jmc@ in OpenBSD. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-22[ALSA] fix resource leak in usbmixerJesper Juhl
Modules: USB generic driver We may leak 'namelist' in sound/usb/usbmixer.c::parse_audio_selector_unit() Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22[ALSA] usb-audio: add Maya44 mixer control namesClemens Ladisch
Modules: USB generic driver Add mixer control names for the AudioTrak Maya44 USB. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] usb-audio: add Casio PL-40R supportClemens Ladisch
Modules: USB generic driver Add a quirk entry for the Casio PL-40R. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] usb-audio: add MDP-5/EZ-J24 supportClemens Ladisch
Modules: USB generic driver Add support for the Yamaha MDP-5 and EZ-J24. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] Fixes audiophile usb analog capture with the new device_setup parameterThibault LE MEUR
Modules: Documentation,USB generic driver The patch adds the 'device_setup' module parameter and a specific quirk to correctly initialize the audiophile usb device: this fixes the distorted sound bug on the Analog capture port. Backward compatibility is achieved by simply omitting the new parameter. Signed-off-by: Thibault LE MEUR <Thibault.LeMeur@supelec.fr> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22[ALSA] usb-audio: add error message about missing split iso supportClemens Ladisch
Modules: USB generic driver Add an error message for -ENOSYS for situations when split iso support is needed but not enabled. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] usb-audio: change Casio quirk product nameClemens Ladisch
Modules: USB generic driver Use a generic name for USB device 0x07cf:0x6802 because this ID is used by several devices without a product ID. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] usb-audio: show USB error descriptionsClemens Ladisch
Modules: USB generic driver When usb_submit_urb() fails, show an error description instead of just the error code. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] usb-audio: add Casio AP-80R supportClemens Ladisch
Modules: USB generic driver Add a quirk for the Casio AP-80R. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] fix usbmixer double kfreeDave Jones
Modules: USB generic driver snd_ctl_add() kfree's the kcontrol already if we fail there, so this driver is currently doing a double kfree. Coverity bug #959 Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-22[ALSA] usb-audio: optimize snd_usbmidi_count_bits()Clemens Ladisch
Modules: USB generic driver Reduce the code size of the snd_usbmidi_count_bits() function by using simpler operations. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] no need to check pointers passed to vfree() for NULLJesper Juhl
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>
2006-03-22[ALSA] usb-audio: add Miditech Play'n Roll supportClemens Ladisch
Modules: USB generic driver Add a quirk entry for the Miditech Play'n Roll. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] usb-audio: rename QUIRK_MIDI_MIDITECH to QUIRK_MIDI_CMEClemens Ladisch
Modules: USB generic driver Rename QUIRK_MIDI_MIDITECH to QUIRK_MIDI_CME because Miditech keyboards are built by CME and use the same protocol, and don't force a Miditech product name for the USB ID used by both Miditech and CME UF-x keyboards. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] usb-audio: add UM-1EX/UM-2EX informationClemens Ladisch
Modules: USB generic driver Add comments with information about UM-1EX/UM-2EX devices. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] usb-audio: fix number of G-70 portsClemens Ladisch
Modules: USB generic driver The G-70 has one MIDI port in each direction, no two. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] snd_pcm_format_name() is no longer exportedJaroslav Kysela
Modules: PCM Midlevel,USB generic driver Because snd_pcm_format_name() function is used only for informational purposes, it is no longer exported from the PCM midlevel to reduce space and dependency. usbaudio module shows only numeric value for format. Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-03-22[ALSA] usb-audio: add Roland G-70 supportClemens Ladisch
Modules: USB generic driver Add a quirk entry for the Roland G-70. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] semaphore -> mutex (Archs, misc buses)Ingo Molnar
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>
2006-03-22[ALSA] usb-audio: add Edirol PC-50 supportClemens Ladisch
Modules: USB generic driver Add a quirk entry for the Edirol PC-50. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] PCM midlevel & PCM OSS - make procfs & OSS plugin code optionalJaroslav Kysela
Modules: ALSA Core,PCM Midlevel,ALSA<-OSS emulation,USB generic driver 1) The verbose procfs code for the PCM midlevel and usb audio can be removed now (more patches will follow). CONFIG_SND_VERBOSE_PROCFS 2) The PCM OSS plugin system can be also compiled optionaly. CONFIG_SND_PCM_OSS_PLUGINS Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2006-03-22[ALSA] usb-audio: factor out packet size calculation codeClemens Ladisch
Modules: USB generic driver Move the common packet size calculation code from prepare_startup_playback_urb() and prepare_playback_urb() to a new function. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] usb-audio: cosmetic changesClemens Ladisch
Modules: USB generic driver Move some entries around to keep them sorted by ID. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-03-22[ALSA] Add support for EDIROL UM-3exBrent Cook
Modules: USB generic driver This is my naive attempt at adding ALSA device support. The attached patch provides support for the EDIROL UM-3ex. This is a 3-port USB midi interface with a built-in USB hub and the ability to chain 2 other UM-3x's in a master-slave configuration. I only have one, so I do not know how this works in practice. Though this is a 3-port device, I had to throw in that 4th 'Control' interface to the definition in order to make the 3rd port work. If I set in/out_cables to 0x000b, a 3rd interface appears on the driver, but it does nothing. Changing it to 0x000f allows the 3rd interface to work, but of course interface 4 does not work because it does not exist. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-01-22[ALSA] usb-audio: fix non-48k sample rates with SB Audigy 2 ZSClemens Ladisch
Modules: USB generic driver On the Audigy 2 ZS, disable all sample rate that are not a multiple of 48 kHz because the others work only with the digital output which is not yet supported. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-22[ALSA] usb-audio: don't use empty packets at start of playbackClemens Ladisch
Modules: USB generic driver Some widespread USB interface chips with adaptive iso endpoints hang after receiving a series of empty packets when they expect data (ALSA bug#1585). To avoid this, we have to send packets containing silence (zero samples) instead. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2006-01-04Merge git://git.kernel.org/pub/scm/linux/kernel/git/perex/alsaLinus Torvalds
2006-01-04[PATCH] USB: remove .owner field from struct usb_driverGreg Kroah-Hartman
It is no longer needed, so let's remove it, saving a bit of memory. Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>