summaryrefslogtreecommitdiffstats
path: root/sound/usb
Commit message (Collapse)AuthorAgeFilesLines
* ALSA: snd-usb: mixer: remove error messages on failed kmalloc()Daniel Mack2014-05-251-12/+3
| | | | | | | | If kmalloc() fails, warnings will be loud enough. We can safely just return -ENOMEM in such cases. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: snd-usb: mixer: coding style fixupsDaniel Mack2014-05-251-154/+246
| | | | | | | | Shorten some over-long lines, multi-line comments, spurious whitespaces, curly brakets etc. No functional change. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'for-linus' into for-nextTakashi Iwai2014-05-055-8/+26
|\ | | | | | | ... for applying the further HDMI fixes.
| * ALSA: usb-audio: work around corrupted TEAC UD-H01 feedback dataClemens Ladisch2014-05-022-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The TEAC UD-H01 firmware sends wrong feedback frequency values, thus causing the PC to send the samples at a wrong rate, which results in clicks and crackles in the output. Add a workaround to detect and fix the corruption. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> [mick37@gmx.de: use sender->udh01_fb_quirk rather than ep->udh01_fb_quirk in snd_usb_handle_sync_urb()] Reported-and-tested-by: Mick <mick37@gmx.de> Reported-and-tested-by: Andrea Messa <andr.messa@tiscali.it> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: usb-audio: Fix deadlocks at resumingTakashi Iwai2014-05-022-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | The recent addition of the USB audio mixer suspend/resume may lead to deadlocks when the driver tries to call usb_autopm_get_interface() recursively, since the function tries to sync with the finish of the other calls. For avoiding it, introduce a flag indicating the resume operation and avoids the recursive usb_autopm_get_interface() calls during the resume. Reported-and-tested-by: Bryan Quigley <gquigs@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: usb-audio: Save mixer status only once at suspendTakashi Iwai2014-05-021-2/+3
| | | | | | | | | | | | | | | | | | The suspend callback of usb-audio driver may be called multiple times per suspend when multiple USB interfaces are bound to a single sound card instance. In such a case, it's superfluous to save the mixer values multiple times. This patch fixes it by checking the counter. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: usb-audio: Prevent printk ratelimiting from spamming kernel log while ↵Sander Eikelenboom2014-05-021-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DEBUG not defined This (widely used) construction: if(printk_ratelimit()) dev_dbg() Causes the ratelimiting to spam the kernel log with the "callbacks suppressed" message below, even while the dev_dbg it is supposed to rate limit wouldn't print anything because DEBUG is not defined for this device. [ 533.803964] retire_playback_urb: 852 callbacks suppressed [ 538.807930] retire_playback_urb: 852 callbacks suppressed [ 543.811897] retire_playback_urb: 852 callbacks suppressed [ 548.815745] retire_playback_urb: 852 callbacks suppressed [ 553.819826] retire_playback_urb: 852 callbacks suppressed So use dev_dbg_ratelimited() instead of this construction. Signed-off-by: Sander Eikelenboom <linux@eikelenboom.it> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: Fix format string mismatch in mixer.cMasanari Iida2014-04-281-1/+1
| | | | | | | | | | | | | | Fix format string mismatch in parse_audio_selector_unit(). Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'topic/usb-audio' into for-nextTakashi Iwai2014-04-144-1/+478
|\ \ | |/ |/|
| * ALSA: MIDI driver for Behringer BCD2000 USB deviceMario Kicherer2014-04-074-1/+478
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds initial support for the Behringer BCD2000 USB DJ controller. At the moment, only the MIDI part of the device is working, i.e. knobs, buttons and LEDs. I also plan to add support for the audio part, but I assume that this will require more effort than the rather simple MIDI interface. Progress can be tracked at https://github.com/anyc/snd-usb-bcd2000. Signed-off-by: Mario Kicherer <dev@kicherer.org> Reviewed-by: Daniel Mack <daniel@zonque.org> Reviewed-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: Suppress repetitive debug messages from retire_playback_urb()Tim Gardner2014-04-091-1/+2
|/ | | | | | | | | | | | | | | | | | | | BugLink: http://bugs.launchpad.net/bugs/1305133 Malfunctioning or slow devices can cause a flood of dmesg SPAM. I've ignored checkpatch.pl complaints about the use of printk_ratelimit() in favour of prior art in sound/usb/pcm.c. WARNING: Prefer printk_ratelimited or pr_<level>_ratelimited to printk_ratelimit + if (printk_ratelimit() && Cc: Jaroslav Kysela <perex@perex.cz> Cc: Takashi Iwai <tiwai@suse.de> Cc: Eldad Zack <eldad@fogrefinery.com> Cc: Daniel Mack <zonque@gmail.com> Cc: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Tim Gardner <tim.gardner@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge tag 'asoc-v3.15' of ↵Takashi Iwai2014-03-131-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v3.15 Quite a busy release for ASoC this time, more on janitorial work than exciting new features but welcome nontheless: - Lots of cleanups from Takashi for enumerations; the original API for these was error prone so he's refactored lots of code to use more modern APIs which avoid issues. - Elimination of the ASoC level wrappers for I2C and SPI moving us closer to converting to regmap completely and avoiding some randconfig hassle. - Provide both manually and transparently locked DAPM APIs rather than a mix of the two fixing some concurrency issues. - Start converting CODEC drivers to use separate bus interface drivers rather than having them all in one file helping avoid dependency issues. - DPCM support for Intel Haswell and Bay Trail platforms. - Lots of work on improvements for simple-card, DaVinci and the Renesas rcar drivers. - New drivers for Analog Devices ADAU1977, TI PCM512x and parts of the CSR SiRF SoC.
| * ALSA: usb-audio: Add quirk for Logitech Webcam C500Takashi Iwai2014-03-051-0/+1
| | | | | | | | | | | | | | | | Logitech C500 (046d:0807) needs the same workaround like other Logitech Webcams. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'topic/cvt-dev-prints' into for-nextTakashi Iwai2014-02-2817-326/+411
|\ \ | | | | | | | | | | | | This merges the bunch of changes over pci and usb sound drivers to convert to dev_err() and co.
| * | ALSA: 6fire: Use standard printk helpersTakashi Iwai2014-02-266-72/+86
| | | | | | | | | | | | | | | | | | Convert with dev_err() and co from snd_printk(), etc. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: usb-audio: Use standard printk helpersTakashi Iwai2014-02-2611-254/+325
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert with dev_err() and co from snd_printk(), etc. As there are too deep indirections (e.g. ep->chip->dev->dev), a few new local macros, usb_audio_err() & co, are introduced. Also, the device numbers in some messages are dropped, as they are shown in the prefix automatically. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | Merge branch 'for-linus' into HEADTakashi Iwai2014-02-251-0/+9
|\ \ \ | |/ / |/| / | |/
| * ALSA: usb-audio: work around KEF X300A firmware bugClemens Ladisch2014-02-171-0/+9
| | | | | | | | | | | | | | | | | | | | When the driver tries to access Function Unit 10, the KEF X300A speakers' firmware apparently locks up, making even PCM streaming impossible. Work around this by ignoring this FU. Cc: <stable@vger.kernel.org> Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usx2y: Don't peep the card internal objectTakashi Iwai2014-02-174-79/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid traversing the device object list of the card instance just for checking the PCM streams. The driver's private object already contains the array of substream pointers, so it can be simply looked through. The card internal may be restructured in future, thus better not to rely on it. Also, this fixes the possible deadlocks in PCM mutex. Instead of taking multiple PCM mutexes, just take the common mutex in all places. Along with it, rename prepare_mutex as pcm_mutex. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: Use SNDRV_DEV_CODEC for mixer objectsTakashi Iwai2014-02-141-1/+1
| | | | | | | | | | | | | | | | Instead of SNDRV_DEV_LOWLEVEL, use SNDRV_DEV_CODEC type for mixer objects so that they are managed in a proper release order. No functional change at this point. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb: Convert to snd_card_new() with a device pointerTakashi Iwai2014-02-127-29/+31
| | | | | | | | | | | | Also remove superfluous snd_card_set_dev() calls. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: Resume mixer values properlyTakashi Iwai2014-02-033-25/+99
|/ | | | | | | | Implement reset_resume callback so that the mixer values are properly restored. Still no boot quirks are called, so it might not work well on some devices. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: usb-audio: Add missing kconfig dependecyTakashi Iwai2014-02-031-0/+1
| | | | | | | | | | | The commit 44dcbbb1cd61 introduced the usage of bitreverse helpers but forgot to add the dependency. This patch adds the selection for CONFIG_BITREVERSE. Fixes: 44dcbbb1cd61 ('ALSA: snd-usb: add support for bit-reversed byte formats') Reported-by: Fengguang Wu <fengguang.wu@intel.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: snd-usb: re-order some quirk entriesDaniel Mack2014-01-141-86/+84
| | | | | | | | No code change, just a cosmetic cleanup to keep entries ordered by the device ID within a block of unique vendor IDs. Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: usb-audio: Fix Creative VF0420 ratePavel Hofman2014-01-141-2/+4
| | | | | | | | Creative Live! Cam Vista IM (VF0420) reports rate of 16kHz while working at 8kHz. The patch adds its USB ID to the existing quirk. Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: usb-audio: Add support for Focusrite Saffire 6 USBEduard Gilmutdinov2014-01-142-4/+45
| | | | | Signed-off-by: Eduard Gilmutdinov <edgilmutdinov@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'for-linus' into for-nextTakashi Iwai2014-01-051-3/+3
|\
| * ALSA: hiface: Fix typo in 352800 rate definitionMichael Trimarchi2013-12-231-3/+3
| | | | | | | | | | | | | | | | The Vaughan device support the 352800 rate and not the 352000 Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: Add a quirk for Plantronics Gamecom 780Takashi Iwai2013-12-202-0/+24
|/ | | | | | | | | | | Plantronics Gamecom 780 headset has a firmware problem, and when the FU 0x09 volume is changed, it results in either too loud or silence except for a very narrow range. This patch provides a workaround, ignoring the node, initialize the volume in a sane value and keep untouched. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=65251 Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: usb-audio: fix uninitialized variable compile warningMikulas Patocka2013-12-051-1/+1
| | | | | | | | Fix the following warning when optimizing for size with gcc-4.6.4: sound/usb/mixer_quirks.c:1514:6: warning: 'err' may be used uninitialized in this function [-Wuninitialized] Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: usb: use multiple packets per urb for Wireless USB inbound audioThomas Pugliese2013-11-271-1/+15
| | | | | | | | | | | For Wireless USB audio devices, use multiple isoc packets per URB for inbound endpoints with a datainterval < 5. This allows the WUSB host controller to take advantage of bursting to service endpoints whose logical polling interval is less than the 4ms minimum polling interval limit in WUSB. Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: usb-audio: add front jack channel selector for EMU0204Vasily Khoruzhick2013-11-131-0/+90
| | | | | | | | | Add support for front jack channel selector which is present on EMU0204. It allows to get 4 channels out of this soundcard. Tested-by: Yury Bushmelev <jay@jay-tech.ru> Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: usb: Fix wrong mapping of RLC and RRC channelsAnssi Hannula2013-11-111-2/+2
| | | | | | | | | | | | | | | | | | According to USB Audio spec v2 bits 25 and 26 of bmChannelConfig are "Back Left of Center - BLC" and "Back Right of Center - BRC", respectively. They are currently assigned to ALSA channels BLC/BRC. However, the ALSA BLC/BRC are actually the rather nonsensical "bottom left center" and "bottom right center", so the channels will be assigned wrongly. The comments in the USB code are also similarly wrong, so this is not readily apparent without looking at the actual specification. Fix the channel mapping by mapping bits 25 and 26 to RLC (Rear Left Center) and RRC (Rear Right Center), respectively, instead. Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: usb - Don't trust the channel config if the channel count changedDavid Henningsson2013-11-051-2/+5
| | | | | | | | | | | | In case the channel count of the input terminal is not the same as the channel count of the streaming descriptor, the channel config of the input terminal can not be trusted. Instead fall back to a default (guessed) channel map. This was found on a Logitech USB Headset. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: usb - For class 2 devices, use channel map from altsettingsDavid Henningsson2013-11-051-1/+3
| | | | | | | | | The channel config from the streaming descriptor is probably a better indicator of the channel map than the input terminal. Use the input terminal's channel map as fallback only. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: usb: supply channel maps even when wChannelConfig is unspecifiedDavid Henningsson2013-11-051-5/+13
| | | | | | | | | | | | | | | | | If wChannelconfig is given for some formats but not others, userspace might not be able to set the channel map. This is RFC because I'm not sure what the best behaviour is - to guess the channel map from the given number of channels (it's quite likely that one channel is MONO and two channels is FL FR), or just to supply UNKNOWN for all channels. But the complete lack of channel map for a format leads userspace to believe that the format is not available at all. Or am I misunderstanding how this should be used? Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: 6fire: Fix probe of multiple cardsTakashi Iwai2013-10-291-1/+1
| | | | | | | | | | | The probe code of snd-usb-6fire driver overrides the devices[] pointer wrongly without checking whether it's already occupied or not. This would screw up the device disconnection later. Spotted by coverity CID 141423. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge tag 'asoc-v3.13' of ↵Takashi Iwai2013-10-251-1/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v3.13 - Further work on the dmaengine helpers, including support for configuring the parameters for DMA by reading the capabilities of the DMA controller which removes some guesswork and magic numbers fromm drivers. - A refresh of the documentation. - Conversions of many drivers to direct regmap API usage in order to allow the ASoC level register I/O code to be removed, this will hopefully be completed by v3.14. - Support for using async register I/O in DAPM, reducing the time taken to implement power transitions on systems that support it.
| * ALSA: us122l: Fix pcm_usb_stream mmapping regressionTakashi Iwai2013-10-151-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pcm_usb_stream plugin requires the mremap explicitly for the read buffer, as it expands itself once after reading the required size. But the commit [314e51b9: mm: kill vma flag VM_RESERVED and mm->reserved_vm counter] converted blindly to a combination of VM_DONTEXPAND | VM_DONTDUMP like other normal drivers, and this resulted in the failure of mremap(). For fixing this regression, we need to remove VM_DONTEXPAND for the read-buffer mmap. Reported-and-tested-by: James Miller <jamesstewartmiller@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: Use module_usb_driverSachin Kamat2013-10-091-12/+1
| | | | | | | | | | | | | | module_usb_driver makes code simpler by removing the boilerplate. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'for-linus' into for-nextTakashi Iwai2013-10-082-25/+4
|\ \ | |/ | | | | | | | | | | For updating the HDMI chmap fix. Conflicts: sound/pci/hda/patch_hdmi.c
| * ALSA: snd-usb-usx2y: remove bogus frame checksDaniel Mack2013-10-022-25/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The frame check in i_usX2Y_urb_complete() and i_usX2Y_usbpcm_urb_complete() is bogus and produces false positives as described in this LAU thread: http://linuxaudio.org/mailarchive/lau/2013/5/20/200177 This patch removes the check code entirely. Cc: fzu@wemgehoertderstaat.de Reported-by: Dr Nicholas J Bailey <nicholas.bailey@glasgow.ac.uk> Suggested-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Daniel Mack <zonque@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: support wireless devices in snd_usb_parse_dataintervalThomas Pugliese2013-10-071-0/+1
| | | | | | | | | | | | | | | | | | | | This patch adds support for dev speed USB_SPEED_WIRELESS in snd_usb_parse_datainterval which allows the usb sound core to create ISO urbs with the correct number and size of buffers. Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: add support for wireless USB devicesThomas Pugliese2013-10-071-0/+1
| | | | | | | | | | | | | | | | | | This patch updates snd_usb_audio_create also support devices whose speed == USB_SPEED_WIRELESS. Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: remove unused endpoint flag EP_FLAG_ACTIVATEDEldad Zack2013-10-071-3/+0
| | | | | | | | | | | | | | EP_FLAG_ACTIVATED is never tested for, remove it. Signed-off-by: Eldad Zack <eldad@fogrefinery.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: rename alt_idx to altsettingEldad Zack2013-10-073-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As Clemens Ladisch kindly explained: "Please note that there are two methods to identify alternate settings: the number, which is the value in bAlternateSetting, and the index, which is the index in the descriptor array. There might be some wording in the USB spec that these two values must be the same, but in reality, [insert standard rant about firmware writers], bAlternateSetting must be treated as a random ID value." This patch changes the name to express the correct usage semantics. No functional change. Signed-off-by: Eldad Zack <eldad@fogrefinery.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: clear SUBSTREAM_FLAG_SYNC_EP_STARTED on errorEldad Zack2013-10-071-0/+1
| | | | | | | | | | | | | | | | If setting the interface fails, the SUBSTREAM_FLAG_SYNC_EP_STARTED should be cleared. Signed-off-by: Eldad Zack <eldad@fogrefinery.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: void return type of snd_usb_endpoint_deactivate()Eldad Zack2013-10-072-11/+6
| | | | | | | | | | | | | | | | | | | | The return value of snd_usb_endpoint_deactivate() is not used, make the function have no return value. Update the documentation to reflect what the function is actually doing. Signed-off-by: Eldad Zack <eldad@fogrefinery.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: don't deactivate URBs on in-use EPEldad Zack2013-10-071-3/+3
| | | | | | | | | | | | | | | | If an endpoint in use, its associated URBs should not be deactivated. Signed-off-by: Eldad Zack <eldad@fogrefinery.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: usb-audio: remove deactivate_endpoints()Eldad Zack2013-10-071-17/+2
| | | | | | | | | | | | | | | | | | | | | | The only call site for deactivate_endpoints() at snd_usb_hw_free(). The return value is not checked there, as it is irrelevant if it fails on hw_free. This patch moves the deactivation of the endpoints directly into snd_usb_hw_free(). Signed-off-by: Eldad Zack <eldad@fogrefinery.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
OpenPOWER on IntegriCloud