summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-12-05ALSA: hda: Add PCI device prefix for clarityDaniel J Blueman1-61/+64
When printing, use a prefix of the PCI domain, bus, device and function as in other drivers, to differentiate multiple devices. Important for reporting and debugging. A future step is to tidy this up with dev_printk et al. v2: Move conversion specifier into call site, preventing build issues v3: Refactor for Takashi's for-next branch Signed-off-by: Daniel J Blueman <daniel@quora.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-04ALSA: hda - Fix yet another race of vga_switcheroo registrationTakashi Iwai1-29/+32
The recent fix for vga switcheroo race in commit 128960a9 opened yet another race. At the time the audio driver starts probing, user may turn off D-GPU off. But at this moment, the audio driver still doesn't register the vga switcheroo client, thus the switching isn't notified. Then the hardware gets off out of sudden, resulting in invalid reads and lots of "spurious response" error messages. For solving this situation, the following changes have been done in this patch: - Move again vga switcheroo registration to the very early stage of the probing; this also requires to set pci drvdata properly before registration - Introduce the completion to synchronize the driver probe at vga switcheroo callbacks; this assures that the whole probing finished before executing the callbacks Reported-by: Daniel J Blueman <daniel@quora.org> Tested-by: Daniel J Blueman <daniel@quora.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-04ALSA: usb-audio: sync ep init fix for audioformat mismatchEldad Zack1-7/+99
Commit 947d299686aa9cc8aecf749d54e8475c6e498956 , "ALSA: snd-usb: properly initialize the sync endpoint", while correcting the initialization of the sync endpoint when opening just the data endpoint, prevents devices that has a sync endpoint, with a channel number different than that of the data endpoint, from functioning. Due to a different channel and period bytes count, attempting to initialize the sync endpoint will fail at the usb host driver. For example, when using xhci: cannot submit urb 0, error -90: internal error With this patch, if a sync endpoint has multiple audioformats, a matching audioformat is preferred. An audioformat must be found with at least one channel and support the requested sample rate and PCM format, otherwise the stream will not be opened. If the number of channels differ between the selected audioformat and the requested format, adjust the period bytes count accordingly. It is safe to perform the calculation on the basis of the channel count, since the requested PCM audio format and the rate must be supported by the selected audioformat. Cc: Jeffrey Barish <jeff_barish@earthlink.net> Cc: Daniel Mack <zonque@gmail.com> Signed-off-by: Eldad Zack <eldad@fogrefinery.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-04ALSA: usb-audio: Fix missing autopm for MIDI inputTakashi Iwai1-42/+46
The commit [88a8516a: ALSA: usbaudio: implement USB autosuspend] added the support of autopm for USB MIDI output, but it didn't take the MIDI input into account. This patch adds the following for fixing the autopm: - Manage the URB start at the first MIDI input stream open, instead of the time of instance creation - Move autopm code to the common substream_open() - Make snd_usbmidi_input_start/_stop() more robust and add the running state check Reviewd-by: Clemens Ladisch <clemens@ladisch.de> Tested-by: Clemens Ladisch <clemens@ladisch.de> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-04ALSA: usb-audio: Avoid autopm calls after disconnectionTakashi Iwai1-1/+22
Add a similar protection against the disconnection race and the invalid use of usb instance after disconnection, as well as we've done for the USB audio PCM. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=51201 Reviewd-by: Clemens Ladisch <clemens@ladisch.de> Tested-by: Clemens Ladisch <clemens@ladisch.de> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-03ALSA: hdspm - Remove obsolete settings functionsAdrian Knoth1-393/+0
With HDSPM_TOGGLE_SETTING in place, these functions are no longer required. Removing them makes the code DRY and considerably shorter. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-03ALSA: hdspm - Use HDSPM_TOGGLE_SETTING to alter settingsAdrian Knoth1-13/+13
HDSPM_TOGGLE_SETTING and its corresponding functions allow to change settings in the control register. Instead of using the specialised functions, use the generic code to make the code DRY. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-03ALSA: hdspm - Implement generic function to toggle settingsAdrian Knoth1-0/+57
The driver contains at least six similar functions that change only a single bit in the control register, only the bit position varies. This patch implements a generic function to toggle a certain bit position that will be used to replace the old code. Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-03ALSA: hda/realtek - Keep the channel count for multiple speakersTakashi Iwai1-5/+16
The current Realtek driver reconfigures the max PCM channels dynamically according to the value of Channel Mode enum if the multi-io retasking is available. It works fine for multi-io pins. But when multiple speaker pins are available, the channels of speakers also have to obey to the channel mode, which isn't nice. (That is, when you select "2ch" in Channel Mode so that the line-in and mic jack behave as input, you can't play surrounds properly from the built-in speaker.) This patch fixes the problem by taking the channel number for multiple speakers into account in the channel-mode setup code. Also it fixes the wrongly set up max_channels value in the case of multi-io extension. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-12-03Merge tag 'asoc-3.8' of ↵Takashi Iwai301-2751/+7775
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v3.8 Very quiet release for ASoC really: - Standardisation of the logging. - DT and dmaengine support for Atmel. - Support for Wolfson ADSP cores. - New drivers for Freescale/iVeia P1022 and Maxim MAX98090.
2012-12-02Merge remote-tracking branch 'asoc/topic/wm9090' into asoc-nextMark Brown1-14/+6
2012-12-02Merge remote-tracking branch 'asoc/topic/wm9081' into asoc-nextMark Brown1-16/+6
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8995' into asoc-nextMark Brown1-33/+7
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8994' into asoc-nextMark Brown6-134/+174
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8993' into asoc-nextMark Brown1-10/+4
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8988' into asoc-nextMark Brown1-12/+2
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8985' into asoc-nextMark Brown1-26/+4
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8978' into asoc-nextMark Brown1-3/+0
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8971' into asoc-nextMark Brown1-19/+61
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8962' into asoc-nextMark Brown1-16/+8
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8960' into asoc-nextMark Brown1-1/+1
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8955' into asoc-nextMark Brown1-10/+1
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8804' into asoc-nextMark Brown1-15/+2
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8770' into asoc-nextMark Brown1-110/+107
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8753' into asoc-nextMark Brown1-27/+6
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8750' into asoc-nextMark Brown1-20/+66
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8741' into asoc-nextMark Brown1-2/+2
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8510' into asoc-nextMark Brown1-3/+0
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8400' into asoc-nextMark Brown1-11/+3
2012-12-02Merge remote-tracking branch 'asoc/topic/wm8350' into asoc-nextMark Brown1-3/+1
2012-12-02Merge remote-tracking branch 'asoc/topic/wm2200' into asoc-nextMark Brown5-471/+200
2012-12-02Merge remote-tracking branch 'asoc/topic/wm2000' into asoc-nextMark Brown1-1/+1
2012-12-02Merge remote-tracking branch 'asoc/topic/wm0010' into asoc-nextMark Brown1-171/+248
2012-12-02Merge remote-tracking branch 'asoc/topic/ux500' into asoc-nextMark Brown5-24/+58
2012-12-02Merge remote-tracking branch 'asoc/topic/tlv320aic32x4' into asoc-nextMark Brown3-0/+28
2012-12-02Merge remote-tracking branch 'asoc/topic/si476x' into asoc-nextMark Brown3-0/+261
2012-12-02Merge remote-tracking branch 'asoc/topic/samsung' into asoc-nextMark Brown6-88/+190
2012-12-02Merge remote-tracking branch 'asoc/topic/rt5631' into asoc-nextMark Brown1-1/+1
2012-12-02Merge remote-tracking branch 'asoc/topic/omap' into asoc-nextMark Brown5-10/+13
2012-12-02Merge remote-tracking branch 'asoc/topic/max98090' into asoc-nextMark Brown3-0/+583
2012-12-02Merge remote-tracking branch 'asoc/topic/max9768' into asoc-nextMark Brown1-5/+2
2012-12-02Merge remote-tracking branch 'asoc/topic/log' into asoc-nextMark Brown5-284/+309
2012-12-02Merge remote-tracking branch 'asoc/topic/lm49453' into asoc-nextMark Brown1-8/+2
2012-12-02Merge remote-tracking branch 'asoc/topic/kirkwood' into asoc-nextMark Brown3-94/+168
2012-12-02Merge remote-tracking branch 'asoc/topic/jz4740' into asoc-nextMark Brown2-83/+60
2012-12-02Merge remote-tracking branch 'asoc/topic/jack' into asoc-nextMark Brown1-3/+0
2012-12-02Merge remote-tracking branch 'asoc/topic/hotplug' into asoc-nextMark Brown12-22/+22
2012-12-02Merge remote-tracking branch 'asoc/topic/fsl' into asoc-nextMark Brown6-3/+418
2012-12-02Merge remote-tracking branch 'asoc/topic/fsi' into asoc-nextMark Brown2-69/+487
2012-12-02Merge remote-tracking branch 'asoc/topic/dmaengine' into asoc-nextMark Brown1-0/+2