summaryrefslogtreecommitdiff
path: root/sound
AgeCommit message (Collapse)AuthorFilesLines
2012-10-30Merge branch 'for-linus' into for-nextTakashi Iwai43-267/+590
... for migrating the core changes for USB-audio disconnection fixes
2012-10-30ALSA: Avoid endless sleep after disconnectTakashi Iwai6-1/+46
When disconnect callback is called, each component should wake up sleepers and check card->shutdown flag for avoiding the endless sleep blocking the proper resource release. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-30ALSA: Add a reference counter to card instanceTakashi Iwai10-32/+83
For more strict protection for wild disconnections, a refcount is introduced to the card instance, and let it up/down when an object is referred via snd_lookup_*() in the open ops. The free-after-last-close check is also changed to check this refcount instead of the empty list, too. Reported-by: Matthieu CASTET <matthieu.castet@parrot.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-30ALSA: usb-audio: Fix races at disconnection in mixer_quirks.cTakashi Iwai1-7/+51
Similar like the previous commit, cover with chip->shutdown_rwsem and chip->shutdown checks. Reported-by: Matthieu CASTET <matthieu.castet@parrot.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-30ALSA: usb-audio: Use rwsem for disconnect protectionTakashi Iwai4-17/+21
Replace mutex with rwsem for codec->shutdown protection so that concurrent accesses are allowed. Also add the protection to snd_usb_autosuspend() and snd_usb_autoresume(), too. Reported-by: Matthieu CASTET <matthieu.castet@parrot.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-30ALSA: usb-audio: Fix races at disconnectionTakashi Iwai5-41/+79
Close some races at disconnection of a USB audio device by adding the chip->shutdown_mutex and chip->shutdown check at appropriate places. The spots to put bandaids are: - PCM prepare, hw_params and hw_free - where the usb device is accessed for communication or get speed, in mixer.c and others; the device speed is now cached in subs->speed instead of accessing to chip->dev The accesses in PCM open and close don't need the mutex protection because these are already handled in the core PCM disconnection code. The autosuspend/autoresume codes are still uncovered by this patch because of possible mutex deadlocks. They'll be covered by the upcoming change to rwsem. Also the mixer codes are untouched, too. These will be fixed in another patch, too. Reported-by: Matthieu CASTET <matthieu.castet@parrot.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-30ALSA: PCM: Fix some races at disconnectionTakashi Iwai2-5/+18
Fix races at PCM disconnection: - while a PCM device is being opened or closed - while the PCM state is being changed without lock in prepare, hw_params, hw_free ops Reported-by: Matthieu CASTET <matthieu.castet@parrot.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-30ALSA: hda - Add tracepoints to HD-audio controller driverTakashi Iwai3-1/+71
Add a couple of tracepoints to snd-hda-intel for tracing the position and the trigger timings. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-28ALSA: Convert dev_printk(KERN_<LEVEL> to dev_<level>(Joe Perches2-22/+17
dev_<level> calls take less code than dev_printk(KERN_<LEVEL> and reducing object size is good. Coalesce multiline formats for easier grep. Coalesce segmented single line formats too. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-28Merge tag 'asoc-3.7' of ↵Takashi Iwai2-5/+4
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v3.7 Clean up some fallout from the OMAP header reorganisation and a minor fix for DMIC which has no practical effect but is neater.
2012-10-28ALSA: core: fix 64-bit SNDRV_PCM_IOCTL_STATUS ABI breakageClemens Ladisch1-1/+2
Commit 4eeaaeaea (ALSA: core: add hooks for audio timestamps) added the new audio_tstamp field to struct snd_pcm_status. However, struct timespec requires 64-bit alignment, so the 64-bit compiler would insert 32 bits of padding before this field, which broke SNDRV_PCM_IOCTL_STATUS with error messages like this: kernel: unknown ioctl = 0x80984120 To solve this, insert the padding explicitly so that it can be taken into account when calculating the ABI structure size. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-27ASoC: omap-dmic: Correct functional clock namePeter Ujfalusi1-2/+2
We should really use "fck" when asking for the functional clock and not "dmic_fck". This way we can ensure that multiple dmic modules can exist in the system. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-10-27ASoC: zoom2: Fix compile error by including correct header filesTony Lindgren1-3/+2
Also drop the includes that are no longer needed and just cause problems for the ARM common zImage. Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Tim Gardner <tim.gardner@canonical.com> [tony@atomide.com: updated to drop unneeded headers] Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-10-26ALSA: hda - Fix mute-LED setup for HP dv5 laptopGustavo Maciel Dias Vieira1-0/+2
The BIOS on HP dv5 doesn't have the DMI string to guide the setup of mute led GPIO and polarity. Associate this laptop with the hp-inv-led model. Signed-off-by: Gustavo Maciel Dias Vieira <gustavo@sagui.org> Tested-by: Vinícius Angiolucci <angiolucci@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-25Merge tag 'asoc-3.7' of ↵Takashi Iwai4-6/+38
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v3.7 A couple of driver fixes, one that improves the interoperability of WM8994 with controllers that are sensitive to extra BCLK cycles and some build break fixes for ux500.
2012-10-25Merge remote-tracking branches 'asoc/fix/ux500' and 'asoc/fix/wm8994' into ↵Mark Brown17-80/+136
for-3.7
2012-10-25ALSA: au88x0: Give comment for vortex_wtdma_bufshift() issueTakashi Iwai1-1/+6
The check of the return value from vortex_wtdma_bufshft() in vortex_interrupt() is useless as it executes no code. Actually the return value is intentionally ignored because the delta calculation for wavetable doesn't work always correctly. For avoiding the confusion, a comment is added and the superfluous if () is removed. Reported-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-25ALSA: sound/usb: remove CONFIG_EXPERIMENTALKees Cook1-1/+1
This config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it. Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-25ALSA: sound/pci/hda: remove CONFIG_EXPERIMENTALKees Cook1-3/+2
This config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it. Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-25ALSA: sound/isa: remove CONFIG_EXPERIMENTALKees Cook1-2/+2
This config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it. Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-25ALSA: sound/drivers: remove CONFIG_EXPERIMENTALKees Cook1-1/+0
This config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it. Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-24ASoC: wm8994: Only enable extra BCLK cycles when requiredMark Brown2-1/+18
Rather than always assuming the maximum possible BCLK rate will be required generate BCLKs for stereo if either one or two channels is enabled. In order to support this we also need to ensure that only the relevant channels are enabled. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-10-23ALSA: ice1712: Fix build errorsRandy Dunlap1-2/+2
Fix build errors by using correct kconfig symbol name: sound/pci/ice1712/psc724.c:417:5: error: 'struct snd_ice1712' has no member named 'pm_resume' sound/pci/ice1712/psc724.c:418:5: error: 'struct snd_ice1712' has no member named 'pm_suspend_enabled' [Fixed another #ifdef CONFIG_PM in the same file, too, by tiwai] Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-23ALSA: usb-audio: Add quirk for Reloop PlayDidier Villevalois1-0/+41
The Reloop Audio needs a fixed endpoint quirk with S24_3LE format and UAC_EP_CS_ATTR_SAMPLE_RATE attribute. Signed-off-by: Didier Villevalois <ptitjes@free.fr> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-23ALSA: hda: support for wallclock timestampsPierre-Louis Bossart1-0/+94
Reuse code from clocksource to handle wall clock counter. Since wrapparound occurs, the audio timestamp is reinitialized to zero on a trigger. Synchronized linked devices will start counting from same reference to avoid any drift. Max buffer time is limited to 178 seconds to make sure wall clock counter does not overflow Wallclock timestamps are disabled on capture streams until we figure out how to handle digital inputs. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-23ALSA: core: add hooks for audio timestampsPierre-Louis Bossart3-10/+43
ALSA did not provide any direct means to infer the audio time for A/V sync and system/audio time correlations (eg. PulseAudio). Applications had to track the number of samples read/written and add/subtract the number of samples queued in the ring buffer. This accounting led to small errors, typically several samples, due to the two-step process. Computing the audio time in the kernel is more direct, as all the information is available in the same routines. Also add new .audio_wallclock routine to enable fine-grain synchronization between monotonic system time and audio hardware time. Using the wallclock, if supported in hardware, allows for a much better sub-microsecond precision and a common drift tracking for all devices sharing the same wall clock (master clock). Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-23ALSA: core: keep track of boundary wrap-aroundPierre-Louis Bossart1-5/+20
Keep track of boundary crossing when hw_ptr exceeds boundary limit and wraps-around. This will help keep track of total number of frames played/received at the kernel level Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-22ALSA: als3000: check for the kzalloc return valueDenis Kirjanov1-0/+4
Signed-off-by: Denis Kirjanov <kirjanov@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-22ALSA: hda - remove unused variable in azx_position_ok()Wei Yongjun1-2/+0
The variable stream is initialized but never used otherwise, so remove the unused variable. dpatch engine is used to auto generate this patch. (https://github.com/weiyj/dpatch) Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-21ALSA: sound/isa/opti9xx/miro.c: eliminate possible double freeJulia Lawall1-1/+0
snd_miro_probe is a static function that is only called twice in the file that defines it. At each call site, its argument is freed using snd_card_free. Thus, there is no need for snd_miro_probe to call snd_card_free on its argument on any of its error exit paths. Because snd_card_free both reads the fields of its argument and kfrees its argments, the results of the second snd_card_free should be unpredictable. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r@ identifier f,free,a; parameter list[n] ps; type T; expression e; @@ f(ps,T a,...) { ... when any when != a = e if(...) { ... free(a); ... return ...; } ... when any } @@ identifier r.f,r.free; expression x,a; expression list[r.n] xs; @@ * x = f(xs,a,...); if (...) { ... free(a); ... return ...; } // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-21ALSA: usb-audio: USB audio quirk for Roland VG-99 advanced modePete Leigh1-0/+34
Without this quirk the VG-99 will work in standard mode (set under USB on System menu page 2) giving 16 bits at 44.1 Khz audio in/out but no midi, and is not recognised when set to advanced mode. After applying this, I can also use the VG-99 in advanced mode: 24 24 bits audio in/out at 44.1 Khz, and midi in/out. Sysex is so far untested. In standard mode, the device appears with ID 0x00b3, so the behaviour isn't affected by this quirk. Thanks to Clemens Ladisch for simplifying and correcting my initial attempt! Signed-off-by: Pete Leigh <pete.leigh@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-21ALSA: aloop - Close races at restarting the streamTakashi Iwai1-17/+19
There are small races opened in the check of running bit and the timer lock. Instead of adding yet more flag, just protect the whole racy codes with the existing cable->lock. As a bonus, we can get rid of timer_lock now. Reported-and-tested-by: Omair Mohammed Abdullah <omair.m.abdullah@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-21ALSA: snd-usb: remove unused variable in init_pitch_v2()Wei Yongjun1-3/+0
The variable ep is initialized but never used otherwise, so remove the unused variable. dpatch engine is used to auto generate this patch. (https://github.com/weiyj/dpatch) Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-21Merge branch 'dummy-ctl-inactive' of ↵Takashi Iwai1-2/+71
git://git.alsa-project.org/alsa-kprivate into for-next Quite a few mixer applications do not handle deactivated controls correctly. This patch adds such controls to snd-dummy to make crash^H^H^H^H^Htesting these apps easier.
2012-10-20ALSA: dummy: allow disabling mixer controlsClemens Ladisch1-2/+71
To make the testing of deactivated mixer controls easier (and for people with common hardware, possible), add a control that deactivates some other controls. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2012-10-20ALSA: hda - Fix silent headphone output from Toshiba P200Takashi Iwai1-1/+18
By some reason, Toshiba laptop doesn't like the EAPD turned up for the headphone pin. Add a fix up code to force to turn down EAPD for NID 0x15. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=569991 Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-20ALSA: hdspm - Fix coding style in CTL_ELEM macrosAdrian Knoth1-90/+90
checkpatch.pl discourages the use of spaces at the beginning of lines. Some of the CTL_ELEM defines were not properly indented. This patch replaces the leading spaces by tabs. No functionality is changed, the commit is purely cosmetic. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-20ALSA: hdspm - Fix typo in kcontrol element on RME MADI cardsAdrian Knoth1-1/+1
Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-20ALSA: hdspm - Fix sync_in detection on AES/AES32Adrian Knoth1-2/+2
According to the documentation, AES32 cards use a different bit position for reporting the sync_in status. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-20ALSA: hdspm - Fix sync_in reporting on RME MADI cardsAdrian Knoth1-0/+5
In contrast to AES32, MADI uses the first status register to report the sync_in status. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-20ALSA: hdspm - Also report autosync_sample_rate on MADI and MADIfaceAdrian Knoth1-0/+16
MADI and MADIface used to report the autosync_sample_rate. This functionality was lost in commit 0dca1793063c28dde8f6c49c9c72203fe5cb6efc, this commit now adds it back. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-20ALSA: hdspm - Fix reported autosync_sample_rateAdrian Knoth1-1/+3
Missing breaks lead to a fall-through, thus causing the wrong autosync_sample_rate to be reported. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-20ALSA: hdspm - Fix sync check reporting on all RME HDSPM cardsAdrian Knoth1-0/+4
Due to missing breaks and the resulting fall-through, card subtype selection was effectively missing, thus causing the wrong sync check functions to be called. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-20ALSA: hdspm - Report external rate in slave mode on PCI MADIAdrian Knoth1-4/+9
As a follow-up to a97bda7d29d02a2e9c6609d0947b15e55f5200e5, report the external sample rate as system_sample_rate when in slave mode. For PCIe MADI cards, the DDS value automatically contains the external sample rate, but the PCI version needs this manual workaround. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-20ALSA: hdspm - Allow DDS/Varispeed to be set from userspaceAdrian Knoth1-1/+13
The DDS value is the actual physical sample rate. We set it indirectly when selecting 44100, 48000 and so on via snd_hdspm_hw_params or hdspm_set_clock_source. This commit now allows the DDS value to be altered at runtime, thus speeding up or slowing down the physical sample rate. This is required for MADI's varispeed that allows for ±12.5% speed adjustment from the "selected" rate (32kHz, 44100kHz, 48kHz and so on). Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-19ALSA: hda - add dock support for Thinkpad T430Stefán Freyr1-0/+1
I have a Lenovo ThinkPad T430 and an UltraBase Series 3 docking station. Without this patch, if I plug my headphones into the jack on the computer, everything works fine. The computer speakers mute and the audio is played in the headphones. However, if I plug into the docking station headphone jack the computer speakers are muted but there is no audio in the headphones. Addresses https://bugs.launchpad.net/bugs/1060372 Signed-off-by: Joseph Salisbury <joseph.salisbury@canonical.com> Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-18ALSA: ice17xx: Fix inclusion of linux/io.hTakashi Iwai19-18/+1
Include linux/io.h in ice1712.h since inb() and outb() are used in inline functions there. Remove the redundant inclusion of that file in other places at the same time. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-17ALSA: emu10k1: add chip details for E-mu 1010 PCIe cardMaxim Kachur1-0/+9
Add chip details for E-mu 1010 PCIe card. It has the same chip as found in E-mu 1010b but it uses different PCI id. Signed-off-by: Maxim Kachur <mcdebugger@duganet.ru> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-17ALSA: hda - Don't enable unsol for jacks we're pollingDavid Henningsson1-0/+2
This will greatly reduce the frequency for detection errors in those cases where the hardware is "flaky", i e, rapidly changing between plugged and unplugged states even without user interaction. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-10-17Merge tag 'asoc-3.7' of ↵Takashi Iwai11-62/+78
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v3.7 Nothing too exciting except for the ams-delta change which is relatively lerge due to the fact that the driver loading had been totally broken as the driver needed a newer API to function.