openwrt/staging/blogic.git
11 years agoALSA: usb-audio: Avoid autopm calls after disconnection
Takashi Iwai [Mon, 3 Dec 2012 10:12:46 +0000 (11:12 +0100)]
ALSA: usb-audio: Avoid autopm calls after disconnection

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>
11 years agoALSA: hdspm - Remove obsolete settings functions
Adrian Knoth [Mon, 3 Dec 2012 13:55:51 +0000 (14:55 +0100)]
ALSA: hdspm - Remove obsolete settings functions

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>
11 years agoALSA: hdspm - Use HDSPM_TOGGLE_SETTING to alter settings
Adrian Knoth [Mon, 3 Dec 2012 13:55:50 +0000 (14:55 +0100)]
ALSA: hdspm - Use HDSPM_TOGGLE_SETTING to alter settings

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>
11 years agoALSA: hdspm - Implement generic function to toggle settings
Adrian Knoth [Mon, 3 Dec 2012 13:55:49 +0000 (14:55 +0100)]
ALSA: hdspm - Implement generic function to toggle settings

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>
11 years agoALSA: hda/realtek - Keep the channel count for multiple speakers
Takashi Iwai [Mon, 3 Dec 2012 09:30:58 +0000 (10:30 +0100)]
ALSA: hda/realtek - Keep the channel count for multiple speakers

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>
11 years agoMerge tag 'asoc-3.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound...
Takashi Iwai [Mon, 3 Dec 2012 08:55:44 +0000 (09:55 +0100)]
Merge tag 'asoc-3.8' of git://git./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.

12 years agoMerge remote-tracking branch 'asoc/topic/wm9090' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:31 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm9090' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm9081' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:31 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm9081' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8995' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:30 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8995' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8994' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:29 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8994' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8993' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:28 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8993' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8988' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:28 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8988' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8985' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:27 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8985' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8978' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:27 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8978' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8971' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:26 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8971' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8962' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:25 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8962' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8960' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:25 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8960' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8955' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:24 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8955' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8804' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:23 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8804' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8770' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:23 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8770' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8753' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:22 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8753' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8750' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:22 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8750' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8741' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:21 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8741' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8510' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:20 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8510' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8400' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:20 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8400' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm8350' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:19 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm8350' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm2200' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:18 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm2200' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm2000' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:17 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm2000' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/wm0010' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:16 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/wm0010' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/ux500' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:15 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/ux500' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/tlv320aic32x4' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:14 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/tlv320aic32x4' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/si476x' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:13 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/si476x' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/samsung' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:12 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/samsung' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/rt5631' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:12 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/rt5631' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/omap' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:11 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/omap' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/max98090' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:10 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/max98090' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/max9768' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:10 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/max9768' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/log' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:09 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/log' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/lm49453' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:09 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/lm49453' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/kirkwood' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:08 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/kirkwood' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/jz4740' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:07 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/jz4740' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/jack' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:06 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/jack' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/hotplug' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:06 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/hotplug' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/fsl' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:05 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/fsl' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/fsi' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:04 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/fsi' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/dmaengine' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:03 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/dmaengine' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/davinci' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:02 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/davinci' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/da9055' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:01 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/da9055' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/da7210' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:01 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/da7210' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/cs4271' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:35:00 +0000 (13:35 +0900)]
Merge remote-tracking branch 'asoc/topic/cs4271' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/atmel' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:34:58 +0000 (13:34 +0900)]
Merge remote-tracking branch 'asoc/topic/atmel' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/arizona' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:34:56 +0000 (13:34 +0900)]
Merge remote-tracking branch 'asoc/topic/arizona' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/ak4642' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:34:55 +0000 (13:34 +0900)]
Merge remote-tracking branch 'asoc/topic/ak4642' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/ak4535' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:34:54 +0000 (13:34 +0900)]
Merge remote-tracking branch 'asoc/topic/ak4535' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/ak4104' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:34:54 +0000 (13:34 +0900)]
Merge remote-tracking branch 'asoc/topic/ak4104' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/adsp' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:34:50 +0000 (13:34 +0900)]
Merge remote-tracking branch 'asoc/topic/adsp' into asoc-next

12 years agoMerge remote-tracking branch 'asoc/topic/ab8500' into asoc-next
Mark Brown [Sun, 2 Dec 2012 04:34:49 +0000 (13:34 +0900)]
Merge remote-tracking branch 'asoc/topic/ab8500' into asoc-next

12 years agoASoC: atmel-pcm: dma support based on pcm dmaengine
Bo Shen [Wed, 28 Nov 2012 03:46:13 +0000 (11:46 +0800)]
ASoC: atmel-pcm: dma support based on pcm dmaengine

Specify overrun bit in interrupt mask
Add dmaengine specific routines

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
[voice.shen@atmel.com: adapt to soc dmaengine framework]
Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: atmel-pcm: split into two file
Bo Shen [Wed, 28 Nov 2012 03:46:12 +0000 (11:46 +0800)]
ASoC: atmel-pcm: split into two file

This patch is split original atmel-pcm.c into new atmel-pcm.c and
atmel-pcm-pdc.c two files. The new atmel-pcm.c is the share routine
while will be used for pdc or dma transfer.

Using SND_ATMEL_SOC_PDC to select using PDC for audio transfer

Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5102: Correct base address for Y region
Mark Brown [Sun, 2 Dec 2012 01:42:22 +0000 (10:42 +0900)]
ASoC: wm5102: Correct base address for Y region

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8960: Use devm_regmap_init_i2c()
Sachin Kamat [Mon, 26 Nov 2012 11:49:43 +0000 (17:19 +0530)]
ASoC: wm8960: Use devm_regmap_init_i2c()

devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler. There was no explicit
regmap_exit call in this function which was probably a bug.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8955: Use devm_regmap_init_i2c()
Sachin Kamat [Mon, 26 Nov 2012 11:49:42 +0000 (17:19 +0530)]
ASoC: wm8955: Use devm_regmap_init_i2c()

devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: max9768: Use devm_regmap_init_i2c()
Sachin Kamat [Mon, 26 Nov 2012 11:49:41 +0000 (17:19 +0530)]
ASoC: max9768: Use devm_regmap_init_i2c()

devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8962: Use devm_regmap_init_i2c()
Sachin Kamat [Mon, 26 Nov 2012 11:49:44 +0000 (17:19 +0530)]
ASoC: wm8962: Use devm_regmap_init_i2c()

devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8993: Use devm_regmap_init_i2c()
Sachin Kamat [Mon, 26 Nov 2012 11:49:46 +0000 (17:19 +0530)]
ASoC: wm8993: Use devm_regmap_init_i2c()

devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm9081: Use devm_regmap_init_i2c()
Sachin Kamat [Mon, 26 Nov 2012 11:49:47 +0000 (17:19 +0530)]
ASoC: wm9081: Use devm_regmap_init_i2c()

devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm9090: Use devm_regmap_init_i2c()
Sachin Kamat [Wed, 28 Nov 2012 09:13:52 +0000 (14:43 +0530)]
ASoC: wm9090: Use devm_regmap_init_i2c()

devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoALSA: hda - Add a helper function for simple enum kcontrols
Takashi Iwai [Fri, 30 Nov 2012 17:34:38 +0000 (18:34 +0100)]
ALSA: hda - Add a helper function for simple enum kcontrols

The same type of code is being used in multiple places in various
codec drivers, so put it as a core library.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - Pass errors properly in alc_auto_check_switches()
Takashi Iwai [Fri, 30 Nov 2012 07:31:30 +0000 (08:31 +0100)]
ALSA: hda - Pass errors properly in alc_auto_check_switches()

Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - Refactor alc_kcontrol_new() usages
Takashi Iwai [Thu, 29 Nov 2012 13:10:17 +0000 (14:10 +0100)]
ALSA: hda - Refactor alc_kcontrol_new() usages

Allocate the name string and assign the structure in
alc_kcontrol_new() itself to reduce the code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - Use standard sort function in hda_auto_parser.c
Takashi Iwai [Thu, 29 Nov 2012 09:18:57 +0000 (10:18 +0100)]
ALSA: hda - Use standard sort function in hda_auto_parser.c

Just refactoring, no functional changes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoASoC: arizona: Add parentheses
Mark Brown [Thu, 29 Nov 2012 15:16:10 +0000 (15:16 +0000)]
ASoC: arizona: Add parentheses

Some compiler versions complain.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoALSA: usb - Don't create "Speaker" mixer controls on headphones and headsets
David Henningsson [Fri, 23 Nov 2012 12:48:55 +0000 (13:48 +0100)]
ALSA: usb - Don't create "Speaker" mixer controls on headphones and headsets

A lot of headsets/headphones have a "Speaker" mixer control. This confuses
PulseAudio to think it is a speaker instead of a headphone/headset.
Therfore, we rename it to "Headphone".

We determine if something is a headphone similar to how udev determines
form factor (see 78-sound-card.rules).

BugLink: https://bugs.launchpad.net/bugs/1082357
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: FT C400 sync playback EP to capture EP
Eldad Zack [Wed, 28 Nov 2012 22:55:41 +0000 (23:55 +0100)]
ALSA: usb-audio: FT C400 sync playback EP to capture EP

The playback endpoint uses implicit feedback mode, similar
to the M-Audio FTU. Like with the FTU, we need to associate
the sync pipe ourselves.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: Fast Track C400 mixer controls
Eldad Zack [Wed, 28 Nov 2012 22:55:40 +0000 (23:55 +0100)]
ALSA: usb-audio: Fast Track C400 mixer controls

Add a mixer quirks for the M-Audio Fast Track C400
and create the following:

* Volume controls
* Effect Type (reusing FTU controls)
* Effect Volume
* Effect Send/Return
* Effect Program
* Effect Feedback

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: Fast Track C400 mixer ranges
Eldad Zack [Wed, 28 Nov 2012 22:55:39 +0000 (23:55 +0100)]
ALSA: usb-audio: Fast Track C400 mixer ranges

Add ranges for various Fast Track C400 controls, as observed
while using the vendor's mixer control software (res values
are an estimation).

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: M-Audio Fast Track C400 quirks table
Eldad Zack [Wed, 28 Nov 2012 22:55:38 +0000 (23:55 +0100)]
ALSA: usb-audio: M-Audio Fast Track C400 quirks table

Adds a quirks table for the M-Audio Fast Track C400.
Thanks to Clemens Ladisch <clemens@ladisch.de> for pointing out that
the table must be sorted.

Based on the following patch from the alsa-devel list:
http://mailman.alsa-project.org/pipermail/alsa-devel/2012-May/051676.html

See also:
http://mailman.alsa-project.org/pipermail/alsa-devel/2012-April/051219.html

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: parameterize FTU effect unit control
Eldad Zack [Wed, 28 Nov 2012 22:55:37 +0000 (23:55 +0100)]
ALSA: usb-audio: parameterize FTU effect unit control

Adds the unit ID and the control as parameters to the creation of the
effect unit control for the M-Audio Fast Track Ultra. This allows the
code to be shared with other devices that use different unit ID and
control, such as the M-Audio Fast Track C400.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: skip UAC2 EFFECT_UNIT
Eldad Zack [Wed, 28 Nov 2012 22:55:36 +0000 (23:55 +0100)]
ALSA: usb-audio: skip UAC2 EFFECT_UNIT

Current code mishandles the case where the device is a UAC2
and the bDescriptorSubtype is a UAC2 Effect Unit (0x07).
It tries to parse it as a Processing Unit (which is similar to two
other UAC1 units with overlapping subtypes), but since the structure
is different (See: 4.7.2.10, 4.7.2.11 in UAC2 standard), the parsing
is done incorrectly and prevents the device from initializing.
For now, just ignore the unit.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: add control index offset
Eldad Zack [Wed, 28 Nov 2012 22:55:35 +0000 (23:55 +0100)]
ALSA: usb-audio: add control index offset

Currently, channel IDs exceeding 31 (0x1f) cannot be used.
The channel ID is derived from the cmask. Extending cmask
to a 64-bit type would only allow it to go up to 63 (0x3f).
Some devices have channel IDs exceeding that as well.
To address that, add an offset to the mixer element which
is then accounted for in the UAC set/get functions.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: use sender stride for implicit feedback
Eldad Zack [Wed, 28 Nov 2012 22:55:34 +0000 (23:55 +0100)]
ALSA: usb-audio: use sender stride for implicit feedback

For implicit feedback endpoints, the number of bytes for each packet
is matched by the corresponding synchronizing endpoint.
The size is calculated by taking the actual size and dividing it by
the stride - currently by the endpoint's stride, but we should use the
synchronization source's stride.
This is evident when the number of channels differ between the
synchronization source and the implicitly fed-back endpoint, as with
M-Audio Fast Track C400 - the synchronization source (capture)
has 4 channels, while the implicit feedback mode endpoint has 6.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: usb-audio: replace hardcoded value with const
Eldad Zack [Wed, 28 Nov 2012 22:55:32 +0000 (23:55 +0100)]
ALSA: usb-audio: replace hardcoded value with const

In this context, 0x01 is USB_ENDPOINT_XFER_ISOC.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoASoC: wm_adsp: Set the core enable as well as start bit for ADSP2
Mark Brown [Wed, 28 Nov 2012 19:53:59 +0000 (19:53 +0000)]
ASoC: wm_adsp: Set the core enable as well as start bit for ADSP2

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm2200: Remove empty labels
Sachin Kamat [Wed, 28 Nov 2012 09:15:25 +0000 (14:45 +0530)]
ASoC: wm2200: Remove empty labels

Removed unnecessary labels probably left out of some previous cleanup.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Samsung: Get I2S src_clk from clock alias id.
Padmavathi Venna [Wed, 28 Nov 2012 10:47:48 +0000 (16:17 +0530)]
ASoC: Samsung: Get I2S src_clk from clock alias id.

As the I2S src clks are registered with clkdev using generic
connection id, driver can get the clk name using generic id.
So the variable representing the array of rclk src clks is
deleted.

Signed-off-by: Padmavathi Venna <padma.v@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: omap-abe-twl6040: Use "ti,jack-detection" DT property as boolean
Peter Ujfalusi [Wed, 28 Nov 2012 10:35:43 +0000 (11:35 +0100)]
ASoC: omap-abe-twl6040: Use "ti,jack-detection" DT property as boolean

Handle the jack detection inforamtion as bool from devicetree.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5102: Enable DVFS support for the DSP
Mark Brown [Wed, 28 Nov 2012 17:20:52 +0000 (17:20 +0000)]
ASoC: wm5102: Enable DVFS support for the DSP

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge branch 'topic/adsp' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Mark Brown [Wed, 28 Nov 2012 17:45:57 +0000 (17:45 +0000)]
Merge branch 'topic/adsp' of git://git./linux/kernel/git/broonie/sound into asoc-arizona

12 years agoASoC: lm49453: Use devm_regmap_init_i2c()
Sachin Kamat [Mon, 26 Nov 2012 11:49:40 +0000 (17:19 +0530)]
ASoC: lm49453: Use devm_regmap_init_i2c()

devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: da7210: Use devm_regmap_init_i2c()
Sachin Kamat [Mon, 26 Nov 2012 11:49:39 +0000 (17:19 +0530)]
ASoC: da7210: Use devm_regmap_init_i2c()

devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: ak4535: Use devm_regmap_init_i2c()
Sachin Kamat [Mon, 26 Nov 2012 11:49:38 +0000 (17:19 +0530)]
ASoC: ak4535: Use devm_regmap_init_i2c()

devm_regmap_init_i2c() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8993: Use devm_regulator_bulk_get
Sachin Kamat [Mon, 26 Nov 2012 11:49:37 +0000 (17:19 +0530)]
ASoC: wm8993: Use devm_regulator_bulk_get

devm_regulator_bulk_get() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8400: Use devm_regulator_bulk_get
Sachin Kamat [Mon, 26 Nov 2012 11:49:36 +0000 (17:19 +0530)]
ASoC: wm8400: Use devm_regulator_bulk_get

devm_regulator_bulk_get() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8962: Use devm_regulator_bulk_get
Sachin Kamat [Mon, 26 Nov 2012 11:49:35 +0000 (17:19 +0530)]
ASoC: wm8962: Use devm_regulator_bulk_get

devm_regulator_bulk_get() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8350: Use devm_regulator_bulk_get
Sachin Kamat [Mon, 26 Nov 2012 11:49:34 +0000 (17:19 +0530)]
ASoC: wm8350: Use devm_regulator_bulk_get

devm_regulator_bulk_get() is device managed and makes error
handling and code cleanup simpler.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm_adsp: Enable DVFS for ADSP2
Mark Brown [Wed, 28 Nov 2012 17:20:32 +0000 (17:20 +0000)]
ASoC: wm_adsp: Enable DVFS for ADSP2

Some ADSP devices can make use of DVFS to optimise power consumption
depending on the operating frequency of the DSP core. Implement
support for this in the generic ADSP code.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8994: Use the same DCS codes for all WM1811 variants
Mark Brown [Wed, 28 Nov 2012 13:46:56 +0000 (13:46 +0000)]
ASoC: wm8994: Use the same DCS codes for all WM1811 variants

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
12 years agomfd: arizona: Register haptics devices
Mark Brown [Tue, 27 Nov 2012 17:36:38 +0000 (17:36 +0000)]
mfd: arizona: Register haptics devices

Both WM5102 and WM5110 support haptics, register the device.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5110: Implement haptics support
Mark Brown [Mon, 26 Nov 2012 21:18:18 +0000 (21:18 +0000)]
ASoC: wm5110: Implement haptics support

Provide a haptics widget for use by the haptics driver and expose the DAPM
context for it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5102: Implement haptics support
Mark Brown [Mon, 26 Nov 2012 21:18:00 +0000 (21:18 +0000)]
ASoC: wm5102: Implement haptics support

Provide a haptics widget for use by the haptics driver and expose the DAPM
context for it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>