summaryrefslogtreecommitdiff
path: root/sound/usb
AgeCommit message (Collapse)Author
2005-08-30[ALSA] usb-audio: throttle MIDI URB resubmits on USB errorsClemens Ladisch
USB generic driver When a USB error occurs that might indicate that the device has been unplugged, don't resubmit the URB immediately to prevent flooding the log with error messages before khubd has us disconnect()ed. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: fix Emagic MIDI protocol handlingClemens Ladisch
USB generic driver Emagic devices pad their packets not with 0xff bytes but with a 0xff byte followed by garbage, so we have to stop at the first such byte. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: use vmalloc for the PCM bufferClemens Ladisch
USB generic driver With the double buffering, we no longer need contiguous memory for the PCM buffer, so we can use vmalloc() instead of the preallocation functions, and increase the maximum size to 256 KB. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: use usb_buffer_alloc/freeClemens Ladisch
USB generic driver Use the USB buffer allocation functions to avoid repeated DMA mappings of our buffers, which are re-used quite a lot. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: properly lock hwptr_done accessesClemens Ladisch
USB generic driver Take the substream lock when reading hwptr_done to avoid a race condition with the updates in the URB callbacks. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: actually schedule playback URBs at frame boundariesClemens Ladisch
USB generic driver Change prepare_playback_urb() not to stop preparing packets before a frame boundary has been reached. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: double-buffer all playback dataClemens Ladisch
USB generic driver We always had to use double buffering when capturing, and when playback data for one URB crosses a buffer boundary. The latter would make hwptr updates less precise because the double-buffered data is read from the buffer much earlier than the other data is read by the host controller. Double-buffering all data allows to update hwptr immediately after the data was copied to the USB buffer(s), which has the additional benefit of avoiding the latency imposed by the host controller's delay of up to one frame when interrupting. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: optimize handling of capture URBsClemens Ladisch
USB generic driver When preparing capture URBs, we don't need to stop when we cross a period boundary because we now never handle more than one millisecond of data per URB anyway. When handling captured data, use an extra flag to call snd_pcm_period_elapsed() no more than once. This allows us to move the period boundary checking code before the copying of the data which avoids a second locking of the substream's lock. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: schedule high speed URBs with 1 ms alignmentClemens Ladisch
USB generic driver The EHCI driver doesn't interrupt more than once per millisecond, and organizes all iso transfers with frame-sized ITDs, so we can (try to) be more efficient by aligning all URBs on frame boundaries. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: make nrpacks parameter writeableClemens Ladisch
USB generic driver The nrpacks module parameter is used only when initializing a playback stream, so it doesn't hurt to make it writeable. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: fix packets per URB calculation for playbackClemens Ladisch
USB generic driver When determining how many packets are needed for one period, we cannot assume that all packets have their maximum size -- we always use the nominal sample rate when sending data, and could use an even lower rate when the endpoint uses frequency feedback. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] usb-audio: use 1 ms URBs when capturingClemens Ladisch
USB generic driver When capturing audio data, we do not know beforehand how many samples the device sends per frame, so we have to use URBs that are as short as possible to make sure that we can handle period boundaries without any additional latencies. Furthermore, the total count of URBs submitted doesn't matter when capturing, so we can just use the maximum number. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-08-30[ALSA] ALSA's struct _snd_pcm_substream: Obsolete open_flagKarsten Wiese
PCM Midlevel,ALSA<-OSS emulation,USB USX2Y This patch removes open_flag from struct _snd_pcm_substream. All of its uses are substituted by querying struct _snd_pcm_substream's member ffile instead. Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-07-28[ALSA] usb-audio - change quirk type handlingClemens Ladisch
USB generic driver Make the quirk type an enum instead of a #defined integer, and use a table for the quirk constructor functions instead of a big switch statement. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-07-28[ALSA] usb-audio - add support for Miditech USB MIDI keyboardsClemens Ladisch
USB generic driver Add support for Miditech Midistart and MidiStudio keyboards (another case of devices using the standard protocol but having no descriptors). Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-07-28[ALSA] Fix-up sleeping in sound/usbNishanth Aravamudan
USB generic driver,USB USX2Y Description: Fix-up sleeping in sound/usb. Replace big_mdelay() with msleep() to guarantee the task delays as expected. This also involved replacing/removing custom sleep functions. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2005-07-28[ALSA] usb-audio - use bDeviceSubClass to detect MOTU FastLaneClemens Ladisch
USB generic driver MOTU builds other USB MIDI interfaces with the same product ID as the FastLane, so we have to check the bDeviceSubClass field to differentiate between them. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-07-28[ALSA] usb-audio - rename QUIRK_MIDI_MOTU to QUIRK_MIDI_RAWClemens Ladisch
USB generic driver Rename the protocol used by the MOTU FastLane to 'raw' because it might be useful with other devices, and there are other MOTU interfaces that do not use this protocol. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-07-28[ALSA] usb-audio - enable high speed transfers with Audiy 2 NXClemens Ladisch
USB generic driver This patch enables the boot commands to activate high speed mode (and associated sample formats like 8 channels with 24 bits at 96 kHz) on the SB Audigy 2 NX. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-07-28[ALSA] usb-audio: add support for an unknown Yamaha USB MIDI deviceClemens Ladisch
USB generic driver Add a quirk for the Yamaha USB MIDI device with USB ID 0x103d. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-07-28[ALSA] usb-audio - fix capture of non-48k sample rates on Audigy 2 NXClemens Ladisch
USB generic driver On the SB Audigy 2 NX, capturing with sample rates that are not a multiple of 48 kHz does not seem to work, so disable it. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-07-28[ALSA] usb-audio - high speed audio supportClemens Ladisch
USB generic driver Add support for endpoints with bInterval > 1, and decoding of the wMaxPacketSize field of high-speed endpoints. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-07-27[PATCH] clean up inline static vs static inlineJesper Juhl
`gcc -W' likes to complain if the static keyword is not at the beginning of the declaration. This patch fixes all remaining occurrences of "inline static" up with "static inline" in the entire kernel tree (140 occurrences in 47 files). While making this change I came across a few lines with trailing whitespace that I also fixed up, I have also added or removed a blank line or two here and there, but there are no functional changes in the patch. Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-22[ALSA] Remove redundant NULL checks before kfreeJesper Juhl
Timer Midlevel,ALSA sequencer,ALSA<-OSS sequencer,Digigram VX core I2C tea6330t,GUS Library,VIA82xx driver,VIA82xx-modem driver CA0106 driver,CS46xx driver,EMU10K1/EMU10K2 driver,YMFPCI driver Digigram VX Pocket driver,Common EMU synth,USB generic driver,USB USX2Y Checking a pointer for NULL before calling kfree() on it is redundant, kfree() deals with NULL pointers just fine. This patch removes such checks from sound/ This patch also makes another, but closely related, change. It avoids casting pointers about to be kfree()'ed. Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2005-05-29[ALSA] usb-audio - fix synchronization packet interval with Audigy 2 NXClemens Ladisch
USB generic driver When a device does not provide the bRefresh field in its audio endpoint descriptors, use the bInterval field instead. Furthermore, increase the number of sync URBs for better queueing. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - claim all interfaces for Roland USB MIDI devicesClemens Ladisch
USB generic driver Many Roland USB MIDI devices have two interfaces that are currently not used by the driver; claim them anyway. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - avoid unnecessary double bufferingClemens Ladisch
USB generic driver When a USB packet boundary falls exactly on a buffer boundary, hwptr remains at the end of the buffer which causes an overflow in the next iteration and triggers double buffering although the next packet would actually be contiguous. This patch ensures that hwptr is always smaller than buffer_size. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - sanity-check sync feedback frequency valuesClemens Ladisch
USB generic driver Check that the synchronization feedback frequency values returned by the device are more or less near the nominal frequency. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - bind to control interface instead of usb_deviceClemens Ladisch
USB generic driver Bind the device files to the (first) audio control interface instead of the entire USB device. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - add a proc file for Audigy 2 NX jack statusClemens Ladisch
USB generic driver This patch adds a proc file for the SB Audigy 2 NX which shows the connection status of the various jacks. Unfortunately, no SPDIF input frequency (yet). Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - remove superfluous LIRC ioctlsClemens Ladisch
USB generic driver The ioctls for LIRC compatibility can be removed because the infrastructure and detection stuff is better done in user space. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - enable high speed (not) on Audigy 2 NXClemens Ladisch
USB generic driver The SB Audigy 2 NX needs a special boot-up command before it works in high speed mode. However, we don't actually enable it yet because high speed synchronization doesn't seem to work with this device. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] Fix snd-usb-audio dependency on snd-hwdep.James Courtier-Dutton
USB Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
2005-05-29[ALSA] usb-audio - set sample rate attribute on Audigy 2 NX endpointsClemens Ladisch
USB generic driver The SB Audigy 2 NX does not advertise the sample rate attribute in its endpoint descriptors although it supports it. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - Audigy 2 NX blinkenlightsClemens Ladisch
USB generic driver Adds mixer controls for the CMSS/Dolby Digital/Power LEDs on the SB Audigy 2 NX. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - make SB remote control device LIRC compatibleClemens Ladisch
USB generic driver Add ioctls to the Sound Blaster remote control hwdep device so that it can be used with LIRC. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - use only one packet in synchronization feedback URBsClemens Ladisch
USB generic driver Do not use more than one packet in synchronization feedback URBs because it would be pointless to send or receive more than one value at the same time. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - use proper interval between synchronization packetsClemens Ladisch
USB generic driver Add sanity checks when reading the bRefresh value, and actually use it for the synchronization packets instead of polling at 1000 Hz. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - allow type 0 extension unitsClemens Ladisch
USB generic driver Extension units can have type 0, so do not ignore them when constructing mixer controls. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - cache vendor/product IDsClemens Ladisch
USB generic driver Cache the decoded values of idVendor/idProduct to get rid of most of those ugly le16_to_cpu() calls. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - add Extigy/Audigy 2 NX remote control supportClemens Ladisch
ALSA Core,USB generic driver Add an hwdep interface that supports reading remote control data from Sound Blaster Extigy and Audigy 2 NX devices. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - add mixer control notificationsClemens Ladisch
USB generic driver Add support for the optional status interrupt endpoint in audio control interfaces, and translate USB status notifications into ALSA mixer control notifications. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - move mixer data into separate structClemens Ladisch
USB generic driver Move all data related to audio control interfaces into a separate struct local to usbmixer.c. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - reduce size of unitbitmap arrayClemens Ladisch
USB generic driver Unit/terminal IDs are 8-bit integers, so the unitbitmap variable does not need to be bigger than 256 bits. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - restrict Audigy 2 NX frequencies to 48/96 kHzClemens Ladisch
USB generic driver On the SB Audigy 2 NX, frequency feedback doesn't quite work when playing at 44.1 kHz, so temporarily disable this frequency. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - remove superfluous parameterClemens Ladisch
USB generic driver,USB USX2Y This patch removes the superfluous driver parameter from the disconnect functions. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - add selector unit names override for Audigy 2 NXClemens Ladisch
USB generic driver Add a mechanism to specify source names of selector units, and add such names for the SB Audigy 2 NX. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio - show exact synchronous frequency in proc fileClemens Ladisch
USB generic driver In the streamX proc file, show the exact number of samples per USB frame as 16.16 hexadecimal floating point value. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] usb-audio: add Audigy 2 NX control namesClemens Ladisch
USB generic driver Add a mixer control map for the SB Audigy 2 NX so that we get meaningful mixer control names. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2005-05-29[ALSA] prevent oops & dead keyboard on usb unplugging while the device is ↵Karsten Wiese
being used USB generic driver,USB USX2Y Without this patch, some usb kobjects, which are parents to the usx2y's kobjects can be freed before the usx2y's. This led to an oops in get_kobj_path_length() and a dead keyboard, when the usx2y's kobjects were freed. The patch ensures the correct sequence. Tested ok on kernel 2.6.12-rc2. Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>