]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
12 years agoMerge branch 'topic/asoc' into for-next
Takashi Iwai [Tue, 6 Dec 2011 12:23:40 +0000 (13:23 +0100)]
Merge branch 'topic/asoc' into for-next

12 years agoMerge branch 'for-linus' into for-next
Takashi Iwai [Tue, 6 Dec 2011 12:23:34 +0000 (13:23 +0100)]
Merge branch 'for-linus' into for-next

12 years agoMerge branch 'fix/asoc' into for-linus
Takashi Iwai [Tue, 6 Dec 2011 12:22:28 +0000 (13:22 +0100)]
Merge branch 'fix/asoc' into for-linus

12 years agoALSA: hda - Fix remaining VREF mute-LED NID check in post-3.1 changes
Takashi Iwai [Tue, 6 Dec 2011 12:17:23 +0000 (13:17 +0100)]
ALSA: hda - Fix remaining VREF mute-LED NID check in post-3.1 changes

Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoMerge branch 'fix/hda-idt-fix' into fix/hda
Takashi Iwai [Tue, 6 Dec 2011 12:19:25 +0000 (13:19 +0100)]
Merge branch 'fix/hda-idt-fix' into fix/hda

12 years agoALSA: hda - Fix GPIO LED setup for IDT 92HD75 codecs
Takashi Iwai [Sun, 4 Dec 2011 12:44:06 +0000 (13:44 +0100)]
ALSA: hda - Fix GPIO LED setup for IDT 92HD75 codecs

Some HP laptops with IDT 92HD75 codecs may use a GPIO > 4 for the mute
LED, but currently the driver doesn't check this properly, and confuses
the mute LED behavior.  This ended up with the silent output  on some
HP laptops due to  having another GPIO used as external amp control.

This patch fixes the problem by checking the max GPIO count and
comparing with the given value from DMI entry instead of magic fixed
value 4 and 8, and adding a new field to indicate the VREF mute-LED
behavior.

Reported-and-tested-by: Vitaliy Kulikov <Vitaliy.Kulikov@idt.com>
Cc: <stable@kernel.org> [v3.1]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoMerge branch 'for-3.2' into for-3.3
Mark Brown [Tue, 6 Dec 2011 10:09:55 +0000 (10:09 +0000)]
Merge branch 'for-3.2' into for-3.3

12 years agoASoC: Provide a more complete DMA driver stub
Mark Brown [Mon, 5 Dec 2011 20:50:45 +0000 (20:50 +0000)]
ASoC: Provide a more complete DMA driver stub

Allow userspace applications to do more parameter setting by providing a
more complete stub DMA driver specifying a wildcard set of formats and
channels and essentially random values for the DMA parameters. This is
required for useful runtime operation of the dummy DMA driver until we
are able to figure out how to power up links and do hw_params() from DAPM.

Sending to stable as without this the dummy driver is not terribly
useful.

Reported-by: Kyung-Kwee Ryu <Kyung-Kwee.Ryu@wolfsonmicro.com>
Tested-by: Kyung-Kwee Ryu <Kyung-Kwee.Ryu@wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
12 years agoMerge branch 'for-3.2' into for-3.3
Mark Brown [Mon, 5 Dec 2011 19:30:05 +0000 (19:30 +0000)]
Merge branch 'for-3.2' into for-3.3

12 years agoASoC: Remove references to corgi and spitz from machine driver document
Mark Brown [Mon, 5 Dec 2011 18:27:25 +0000 (18:27 +0000)]
ASoC: Remove references to corgi and spitz from machine driver document

They're not currently actively worked on, the hardware being rather
obsolete by now.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: sst_platform: fix the dsp driver interface
Vinod Koul [Mon, 5 Dec 2011 13:43:41 +0000 (19:13 +0530)]
ASoC: sst_platform: fix the dsp driver interface

lower level drivers typically register with upper layers.
So fix by exporting symbols from sst_platform driver for dsp driver to
register to sst platform driver

Now this driver doesnt depend on sst driver, so remove the dependency
and the header files

Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Fix reg_cache_size for stac9766
Axel Lin [Mon, 5 Dec 2011 02:06:04 +0000 (10:06 +0800)]
ASoC: Fix reg_cache_size for stac9766

reg_cache_size is supposed to be the number of elements in the register cache,
not the size in bytes.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: uda1380: Convert to gpio_request_one()
Axel Lin [Sun, 4 Dec 2011 23:58:25 +0000 (07:58 +0800)]
ASoC: uda1380: Convert to gpio_request_one()

Using gpio_request_one can make the error handling simpler.

Also remove a redundant "Failed to issue reset" error message.
We already show the error message in uda1380_reset() error path.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert e740_wm9705 to use gpio_request_one()
Axel Lin [Mon, 5 Dec 2011 09:09:11 +0000 (17:09 +0800)]
ASoC: Convert e740_wm9705 to use gpio_request_one()

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge branch 'for-3.2' into for-3.3
Mark Brown [Sun, 4 Dec 2011 23:47:39 +0000 (23:47 +0000)]
Merge branch 'for-3.2' into for-3.3

12 years agoASoC: Make SND_SOC_MX27VIS_AIC32X4 depend on I2C
Axel Lin [Sun, 4 Dec 2011 08:11:16 +0000 (16:11 +0800)]
ASoC: Make SND_SOC_MX27VIS_AIC32X4 depend on I2C

SND_SOC_MX27VIS_AIC32X4 selects SND_SOC_TLV320AIC32X4,
but SND_SOC_TLV320AIC32X4 needs CONFIG_I2C.
So we need to make SND_SOC_MX27VIS_AIC32X4 depend on I2C.
otherwise I got below build error if CONFIG_I2C is not selected.

  CC      sound/soc/codecs/tlv320aic32x4.o
sound/soc/codecs/tlv320aic32x4.c: In function 'aic32x4_read':
sound/soc/codecs/tlv320aic32x4.c:323: error: implicit declaration of function 'i2c_smbus_read_byte_data'
sound/soc/codecs/tlv320aic32x4.c: In function 'aic32x4_probe':
sound/soc/codecs/tlv320aic32x4.c:641: error: 'i2c_master_send' undeclared (first use in this function)
sound/soc/codecs/tlv320aic32x4.c:641: error: (Each undeclared identifier is reported only once
sound/soc/codecs/tlv320aic32x4.c:641: error: for each function it appears in.)
sound/soc/codecs/tlv320aic32x4.c: In function 'aic32x4_modinit':
sound/soc/codecs/tlv320aic32x4.c:763: error: implicit declaration of function 'i2c_add_driver'
sound/soc/codecs/tlv320aic32x4.c: In function 'aic32x4_exit':
sound/soc/codecs/tlv320aic32x4.c:774: error: implicit declaration of function 'i2c_del_driver'
make[3]: *** [sound/soc/codecs/tlv320aic32x4.o] Error 1
make[2]: *** [sound/soc/codecs] Error 2
make[1]: *** [sound/soc] Error 2
make: *** [sound] Error 2

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Fix dependency for SND_SOC_RAUMFELD and SND_PXA2XX_SOC_HX4700
Axel Lin [Sun, 4 Dec 2011 08:30:18 +0000 (16:30 +0800)]
ASoC: Fix dependency for SND_SOC_RAUMFELD and SND_PXA2XX_SOC_HX4700

SND_SOC_RAUMFELD selects SND_SOC_CS4270 which needs CONFIG_I2C,
and also selects SND_SOC_AK4104 which needs SPI_MASTER.
Thus make SND_SOC_RAUMFELD depend on I2C && SPI_MASTER.

Add depend on SPI_MASTER to fix below build error if CONFIG_SPI_MASTER
is not selected.

  LD      .tmp_vmlinux1
sound/built-in.o: In function `ak4104_spi_write':
last.c:(.text+0x290cc): undefined reference to `spi_sync'
sound/built-in.o: In function `ak4104_probe':
last.c:(.text+0x292a0): undefined reference to `spi_write_then_read'
sound/built-in.o: In function `ak4104_spi_probe':
last.c:(.text+0x29398): undefined reference to `spi_setup'
sound/built-in.o: In function `ak4104_init':
last.c:(.init.text+0x4ec): undefined reference to `spi_register_driver'
make: *** [.tmp_vmlinux1] Error 1

Add depend on I2C to fix below build error if CONFIG_I2C is not selected:
  CC      sound/soc/codecs/cs4270.o
sound/soc/codecs/cs4270.c: In function 'cs4270_i2c_probe':
sound/soc/codecs/cs4270.c:657: error: implicit declaration of function 'i2c_smbus_read_byte_data'
sound/soc/codecs/cs4270.c: In function 'cs4270_init':
sound/soc/codecs/cs4270.c:730: error: implicit declaration of function 'i2c_add_driver'
sound/soc/codecs/cs4270.c: In function 'cs4270_exit':
sound/soc/codecs/cs4270.c:736: error: implicit declaration of function 'i2c_del_driver'
make[3]: *** [sound/soc/codecs/cs4270.o] Error 1
make[2]: *** [sound/soc/codecs] Error 2
make[1]: *** [sound/soc] Error 2
make: *** [sound] Error 2

SND_PXA2XX_SOC_HX4700 selects SND_SOC_AK4641 which needs CONFIG_I2C.
Thus make SND_PXA2XX_SOC_HX4700 depend on I2C.

Add depend on I2C to fix below build error if CONFIG_I2C is not selected:
  CC      sound/soc/codecs/ak4641.o
sound/soc/codecs/ak4641.c: In function 'ak4641_modinit':
sound/soc/codecs/ak4641.c:646: error: implicit declaration of function 'i2c_add_driver'
sound/soc/codecs/ak4641.c: In function 'ak4641_exit':
sound/soc/codecs/ak4641.c:656: error: implicit declaration of function 'i2c_del_driver'
make[3]: *** [sound/soc/codecs/ak4641.o] Error 1
make[2]: *** [sound/soc/codecs] Error 2
make[1]: *** [sound/soc] Error 2
make: *** [sound] Error 2

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: uda1380: Return proper error in uda1380_modinit failure path
Axel Lin [Sun, 4 Dec 2011 11:35:20 +0000 (19:35 +0800)]
ASoC: uda1380: Return proper error in uda1380_modinit failure path

Return proper error for uda1380_modinit if i2c_add_driver() fails.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Make SND_SOC_LITTLEMILL select MFD_WM8994
Axel Lin [Sun, 4 Dec 2011 00:15:17 +0000 (08:15 +0800)]
ASoC: Make SND_SOC_LITTLEMILL select MFD_WM8994

SND_SOC_LITTLEMILL selects SND_SOC_WM8994, but SND_SOC_WM8994 needs MFD_WM8994.
Thus we need to select MFD_WM8994 to fix below build error:

  LD      .tmp_vmlinux1
sound/built-in.o: In function `wm8994_write':
sound/soc/codecs/wm8994.c:201: undefined reference to `wm8994_reg_write'
sound/built-in.o: In function `wm8994_read':
sound/soc/codecs/wm8994.c:222: undefined reference to `wm8994_reg_read'
sound/built-in.o: In function `wm8994_resume':
sound/soc/codecs/wm8994.c:2847: undefined reference to `wm8994_reg_read'
sound/built-in.o: In function `wm8994_codec_probe':
sound/soc/codecs/wm8994.c:3501: undefined reference to `wm8994_reg_read'
sound/soc/codecs/wm8994.c:3660: undefined reference to `wm8994_reg_read'
sound/soc/codecs/wm8994.c:3672: undefined reference to `wm8994_reg_read'
sound/built-in.o: In function `wm8958_dsp2_fw':
sound/soc/codecs/wm8958-dsp2.c:154: undefined reference to `wm8994_bulk_write'
make: *** [.tmp_vmlinux1] Error 1

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Sort WM9090 in with the CODEC drivers
Mark Brown [Fri, 2 Dec 2011 22:00:39 +0000 (22:00 +0000)]
ASoC: Sort WM9090 in with the CODEC drivers

The driver itself has been a regular CODEC driver for a while now.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM2000 into a standard CODEC driver
Mark Brown [Fri, 2 Dec 2011 21:59:18 +0000 (21:59 +0000)]
ASoC: Convert WM2000 into a standard CODEC driver

We've been able to handle external amps for a while now.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert wm2000 to use regmap API
Mark Brown [Fri, 2 Dec 2011 21:57:19 +0000 (21:57 +0000)]
ASoC: Convert wm2000 to use regmap API

The driver wasn't even using the ASoC common code.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Remove unused struct wm2000_setup_data
Mark Brown [Fri, 2 Dec 2011 21:29:50 +0000 (21:29 +0000)]
ASoC: Remove unused struct wm2000_setup_data

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8728 to table based control init
Mark Brown [Sat, 3 Dec 2011 11:49:02 +0000 (11:49 +0000)]
ASoC: Convert WM8728 to table based control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8711 to table based control init
Mark Brown [Sat, 3 Dec 2011 11:47:23 +0000 (11:47 +0000)]
ASoC: Convert WM8711 to table based control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8750 to table based DAPM and control init
Mark Brown [Sat, 3 Dec 2011 17:21:43 +0000 (17:21 +0000)]
ASoC: Convert WM8750 to table based DAPM and control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8741 to table based DAPM and control init
Mark Brown [Sat, 3 Dec 2011 17:15:06 +0000 (17:15 +0000)]
ASoC: Convert WM8741 to table based DAPM and control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8580 to table based DAPM and control init
Mark Brown [Sat, 3 Dec 2011 11:42:01 +0000 (11:42 +0000)]
ASoC: Convert WM8580 to table based DAPM and control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8510 to table based DAPM and control init
Mark Brown [Sat, 3 Dec 2011 11:41:45 +0000 (11:41 +0000)]
ASoC: Convert WM8510 to table based DAPM and control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8400 to table based DAPM and control init
Mark Brown [Sat, 3 Dec 2011 11:34:34 +0000 (11:34 +0000)]
ASoC: Convert WM8400 to table based DAPM and control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8350 to table based DAPM and control init
Mark Brown [Sat, 3 Dec 2011 11:31:58 +0000 (11:31 +0000)]
ASoC: Convert WM8350 to table based DAPM and control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM9090 to devm_kzalloc()
Mark Brown [Fri, 2 Dec 2011 22:09:47 +0000 (22:09 +0000)]
ASoC: Convert WM9090 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8750 to devm_kzalloc()
Mark Brown [Sat, 3 Dec 2011 17:18:37 +0000 (17:18 +0000)]
ASoC: Convert WM8750 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8741 to devm_kzalloc()
Mark Brown [Sat, 3 Dec 2011 17:17:05 +0000 (17:17 +0000)]
ASoC: Convert WM8741 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8400 to devm_kzalloc()
Mark Brown [Sat, 3 Dec 2011 11:41:27 +0000 (11:41 +0000)]
ASoC: Convert WM8400 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8350 to devm_kzalloc()
Mark Brown [Sat, 3 Dec 2011 11:29:38 +0000 (11:29 +0000)]
ASoC: Convert WM8350 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM2000 to devm_kzalloc()
Mark Brown [Fri, 2 Dec 2011 21:28:31 +0000 (21:28 +0000)]
ASoC: Convert WM2000 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Remove unused AUDIO_NAME define from WM8960
Mark Brown [Fri, 2 Dec 2011 21:20:58 +0000 (21:20 +0000)]
ASoC: Remove unused AUDIO_NAME define from WM8960

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Remove I2C ifdefs from WM8960
Mark Brown [Fri, 2 Dec 2011 21:20:37 +0000 (21:20 +0000)]
ASoC: Remove I2C ifdefs from WM8960

The driver only supports I2C as the control interface.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Remove unused -codec from Wolfson device driver names
Mark Brown [Fri, 2 Dec 2011 22:08:49 +0000 (22:08 +0000)]
ASoC: Remove unused -codec from Wolfson device driver names

Devices that aren't MFDs don't need to distinguish this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: WM8903: Create default platform data structure
Stephen Warren [Fri, 2 Dec 2011 22:08:38 +0000 (15:08 -0700)]
ASoC: WM8903: Create default platform data structure

When no platform data is supplied, point pdata at a default platform
structure. This enables two future changes:

a) Defines the default platform data values in a single place.
b) There is always a valid pdata pointer, so some conditional code can
   be simplified by a later patch.

Based on work by John Bonesio, but significantly reworked since then.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge branch 'for-3.2' into for-3.3
Mark Brown [Sat, 3 Dec 2011 11:07:43 +0000 (11:07 +0000)]
Merge branch 'for-3.2' into for-3.3

12 years agoASoC: Move initial WM8903 identification and reset to I2C probe
Mark Brown [Fri, 2 Dec 2011 18:39:17 +0000 (18:39 +0000)]
ASoC: Move initial WM8903 identification and reset to I2C probe

Get control of the device earlier and avoid trying to do an ASoC probe
on a card that won't work.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
12 years agoASoC: Convert WM8903 to direct regmap API usage
Mark Brown [Fri, 2 Dec 2011 18:33:32 +0000 (18:33 +0000)]
ASoC: Convert WM8903 to direct regmap API usage

Converting to an rbtree cache as regcache doesn't have a flat cache.
Since the top of the register map is fairly sparse this should be an
overall win.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
12 years agoASoC: Don't resync WM8903 register cache on reset
Mark Brown [Fri, 2 Dec 2011 18:24:40 +0000 (18:24 +0000)]
ASoC: Don't resync WM8903 register cache on reset

We only do this on initial power on so it's at best a waste of time as
the core will have already defaulted to the same values.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
12 years agoASoC: Use a normal cache sync for WM8903
Mark Brown [Fri, 2 Dec 2011 18:23:37 +0000 (18:23 +0000)]
ASoC: Use a normal cache sync for WM8903

The driver used to use a complicated method to sync the register cache
after having brought the bias level up to standby in resume due to the
use of the write sequencer to manage the initial power up. Now that we
don't use the write sequencer there is no need for this and we can just
use snd_soc_cache_sync() directly.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
12 years agoASoC: WM8903 only supports I2C so don't ifdef it
Mark Brown [Fri, 2 Dec 2011 18:21:52 +0000 (18:21 +0000)]
ASoC: WM8903 only supports I2C so don't ifdef it

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
12 years agoASoC: Use table based control init for WM8903
Mark Brown [Fri, 2 Dec 2011 18:21:28 +0000 (18:21 +0000)]
ASoC: Use table based control init for WM8903

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
12 years agoASoC: Convert WM8903 to devm_kzalloc()
Mark Brown [Sat, 3 Dec 2011 10:59:32 +0000 (10:59 +0000)]
ASoC: Convert WM8903 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
12 years agoASoC: kirkwood: Make SND_KIRKWOOD_SOC_OPENRD and SND_KIRKWOOD_SOC_T5325 depend on I2C
Axel Lin [Sat, 3 Dec 2011 10:38:25 +0000 (18:38 +0800)]
ASoC: kirkwood: Make SND_KIRKWOOD_SOC_OPENRD and SND_KIRKWOOD_SOC_T5325 depend on I2C

SND_KIRKWOOD_SOC_T5325 selects SND_SOC_ALC5623, but SND_SOC_ALC5623 needs
CONFIG_I2C. So we need to make SND_KIRKWOOD_SOC_T5325 depend on I2C,
otherwise I got below build error if CONFIG_I2C is not selected.

  CC      sound/soc/codecs/alc5623.o
sound/soc/codecs/alc5623.c: In function 'alc5623_i2c_probe':
sound/soc/codecs/alc5623.c:1002: error: implicit declaration of function 'i2c_smbus_read_word_data'
sound/soc/codecs/alc5623.c:1009: error: implicit declaration of function 'i2c_smbus_read_byte_data'
sound/soc/codecs/alc5623.c: In function 'alc5623_modinit':
sound/soc/codecs/alc5623.c:1096: error: implicit declaration of function 'i2c_add_driver'
sound/soc/codecs/alc5623.c: In function 'alc5623_modexit':
sound/soc/codecs/alc5623.c:1108: error: implicit declaration of function 'i2c_del_driver'
make[3]: *** [sound/soc/codecs/alc5623.o] Error 1
make[2]: *** [sound/soc/codecs] Error 2
make[1]: *** [sound/soc] Error 2
make: *** [sound] Error 2

Also fix the same issue for SND_KIRKWOOD_SOC_OPENRD.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge branch 'for-3.2' into for-3.3
Mark Brown [Fri, 2 Dec 2011 17:44:55 +0000 (17:44 +0000)]
Merge branch 'for-3.2' into for-3.3

12 years agoASoC: Mark WM8994 ADC muxes as virtual
Mark Brown [Sun, 14 Aug 2011 04:39:20 +0000 (13:39 +0900)]
ASoC: Mark WM8994 ADC muxes as virtual

Since they don't actually have power bits but do have events associated
with them it's important that we bootstrap their state properly which
making them virtual does.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Map microphones on Littlemill
Mark Brown [Fri, 2 Dec 2011 17:36:06 +0000 (17:36 +0000)]
ASoC: Map microphones on Littlemill

Littlemill has one analogue microphone on the board (connected to IN1LN)
and an array of four DMICs connected to both DMICDAT lines. The biases
can be selected by jumpers but pick the default jumper fit.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8994 MICBIASes to supply widgets
Mark Brown [Fri, 2 Dec 2011 16:01:41 +0000 (16:01 +0000)]
ASoC: Convert WM8994 MICBIASes to supply widgets

There are some in tree systems using the driver but none use the MICBIAS
widgets.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Add WM8958 based headset detection on Littlemill
Mark Brown [Fri, 2 Dec 2011 15:55:52 +0000 (15:55 +0000)]
ASoC: Add WM8958 based headset detection on Littlemill

The board supports CODECs that won't work with this but the CODEC driver
will check to see if it's running on the right chip for us.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoALSA: hda/realtek - Fix Oops in alc_mux_select()
Takashi Iwai [Fri, 2 Dec 2011 14:29:12 +0000 (15:29 +0100)]
ALSA: hda/realtek - Fix Oops in alc_mux_select()

When no imux is available (e.g. a single capture source),
alc_auto_init_input_src() may trigger an Oops due to the access to -1.
Add a proper zero-check to avoid it.

Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoASoC: Add missing err label
Mark Brown [Fri, 2 Dec 2011 10:55:12 +0000 (10:55 +0000)]
ASoC: Add missing err label

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: fsl/powerpc: don't rely on the cell-index property
Timur Tabi [Fri, 2 Dec 2011 01:52:47 +0000 (19:52 -0600)]
ASoC: fsl/powerpc: don't rely on the cell-index property

Instead of using the 'cell-index' property in the I2C adapter node to
determine the adapter number, just query the i2c_adapter object directly.

Previously, the I2C nodes always appeared in cell-index order, so the
dynamic numbering coincided with the cell-index property.  With commit
ab827d97 ("powerpc/85xx: Rework P1022DS device tree"), the I2C nodes are
unintentionally reversed in the device tree, and so the machine driver
guesses the wrong I2C adapter number.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: p1022ds: add support for fsl,P1022 and fsl,P1022DS model names
Timur Tabi [Fri, 2 Dec 2011 01:52:46 +0000 (19:52 -0600)]
ASoC: p1022ds: add support for fsl,P1022 and fsl,P1022DS model names

Commit ab827d97 ("powerpc/85xx: Rework P1022DS device tree") renamed the
the /model property of the P1022DS device tree from "fsl,P1022" to
"fsl,P1022DS".  To support both old and new device trees, the ASoC
machine driver for the P1022DS needs to query the /model property and
update the platform driver object dynamically.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: WM8903: Disallow all invalid gpio_cfg pdata values
Stephen Warren [Thu, 1 Dec 2011 20:49:19 +0000 (13:49 -0700)]
ASoC: WM8903: Disallow all invalid gpio_cfg pdata values

The GPIO registers are 15 bits wide. Hence values, higher than 0x7fff are
not legal GPIO register values. Modify the pdata.gpio_cfg handling code
to reject all illegal values, not just WM8903_GPIO_NO_CONFIG (0x8000). This
will allow the later use of 0xffffffff as an invalid value in future device
tree bindings, meaning "don't touch this GPIO's configuration".

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Drop unused state parameter from CODEC suspend callback
Lars-Peter Clausen [Fri, 2 Dec 2011 09:18:28 +0000 (10:18 +0100)]
ASoC: Drop unused state parameter from CODEC suspend callback

The existence of this parameter is purely historical. None of the CODEC drivers
uses it and we always pass in the same value anyway, so it should be safe to
remove it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Make WM8962 beep a signal generator
Mark Brown [Sun, 27 Nov 2011 16:24:18 +0000 (16:24 +0000)]
ASoC: Make WM8962 beep a signal generator

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
12 years agoASoC: Make WM5100 tone generator widgets signal generators
Mark Brown [Sun, 27 Nov 2011 16:24:05 +0000 (16:24 +0000)]
ASoC: Make WM5100 tone generator widgets signal generators

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
12 years agoASoC: Add signal generator widget type
Mark Brown [Sun, 27 Nov 2011 16:21:51 +0000 (16:21 +0000)]
ASoC: Add signal generator widget type

A signal generator behaves as an input would but is not considered for
any of the special behaviour associated with external input pins. This
is especially useful when automatically working out not connected widgets.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
12 years agoMerge branch 'topic/misc' into for-next
Takashi Iwai [Fri, 2 Dec 2011 09:44:51 +0000 (10:44 +0100)]
Merge branch 'topic/misc' into for-next

12 years agoALSA: sis7019 - convert to dev_*() logging
David Dillow [Fri, 2 Dec 2011 04:26:57 +0000 (23:26 -0500)]
ALSA: sis7019 - convert to dev_*() logging

Signed-off-by: David Dillow <dave@thedillows.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoMerge branch 'fix/misc' into topic/misc
Takashi Iwai [Fri, 2 Dec 2011 09:43:52 +0000 (10:43 +0100)]
Merge branch 'fix/misc' into topic/misc

12 years agoALSA: sis7019 - give slow codecs more time to reset
David Dillow [Fri, 2 Dec 2011 04:26:53 +0000 (23:26 -0500)]
ALSA: sis7019 - give slow codecs more time to reset

There are some AC97 codec and board combinations that have been observed
to take a very long time to respond after the cold reset has completed.
In one case, more than 350 ms was required. To allow users to have sound
on those platforms, we'll wait up to 500ms for the codec to become
ready.

As a board may have multiple codecs, with some faster than others to
reset, we add a module parameter to inform the driver which codecs
should be present.

Reported-by: KotCzarny <tjosko@yahoo.com>
Signed-off-by: David Dillow <dave@thedillows.org>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoMerge branch 'fix/asoc' into for-linus
Takashi Iwai [Thu, 1 Dec 2011 15:32:18 +0000 (16:32 +0100)]
Merge branch 'fix/asoc' into for-linus

12 years agoASoC: Convert WM8994 to devm_kzalloc()
Mark Brown [Thu, 1 Dec 2011 14:00:19 +0000 (14:00 +0000)]
ASoC: Convert WM8994 to devm_kzalloc()

Still have a manual free in there for some realloc()ed memory as there's
no devm version of that.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Add platform data for WM8958/WM1811 microphone detection rates
Mark Brown [Thu, 1 Dec 2011 13:44:25 +0000 (13:44 +0000)]
ASoC: Add platform data for WM8958/WM1811 microphone detection rates

Allow systems to override the default microphone detection rates using
platform data in case the settings are not suitable (eg, due to an
unusually noisy jack).

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Ensure we reconfigure WM8958 microphone detection on rate changes
Mark Brown [Thu, 1 Dec 2011 12:43:26 +0000 (12:43 +0000)]
ASoC: Ensure we reconfigure WM8958 microphone detection on rate changes

We don't need to rerun DAPM if the clock source is the same but we do
need to adjust the microphone detection rate in case we are moving from
an audio to a non-audio rate.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Implement support for WM1811A jack detection
Mark Brown [Wed, 30 Nov 2011 20:32:05 +0000 (20:32 +0000)]
ASoC: Implement support for WM1811A jack detection

The WM1811A features an advanced low power accessory detection subsystem
which allows the device to be maintained in a very low power state while
the system is idle without sacrificing any accessory detection features.

Implement software support for this, automatically managing the power
configuration of the device depending on the detected accessory.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Rename WM8994 detecting flag to mic_detecting
Mark Brown [Wed, 30 Nov 2011 13:43:51 +0000 (13:43 +0000)]
ASoC: Rename WM8994 detecting flag to mic_detecting

More specific and avoids confusion with a following change.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Allow more WM8958/WM1811 button levels with default handler
Mark Brown [Wed, 30 Nov 2011 10:55:14 +0000 (10:55 +0000)]
ASoC: Allow more WM8958/WM1811 button levels with default handler

The WM8958 and WM1811 support detecting a range of buttons. Allow the
user to provide platform data enabling more of these levels without
having to write a custom detection handler.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Tune down active mode detection rate for WM8958 mic detection
Mark Brown [Thu, 1 Dec 2011 12:51:25 +0000 (12:51 +0000)]
ASoC: Tune down active mode detection rate for WM8958 mic detection

Saves a little power.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Don't use control_data to get struct wm8994
Mark Brown [Sun, 24 Jul 2011 11:20:41 +0000 (12:20 +0100)]
ASoC: Don't use control_data to get struct wm8994

This will support refactoring to make use of the regmap API more directly
in the core.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge branch 'fix/hda' into for-next
Takashi Iwai [Thu, 1 Dec 2011 10:28:49 +0000 (11:28 +0100)]
Merge branch 'fix/hda' into for-next

12 years agoALSA: hda - Fix S3/S4 problem on machines with VREF-pin mute-LED
Charles Chin [Thu, 1 Dec 2011 10:21:00 +0000 (11:21 +0100)]
ALSA: hda - Fix S3/S4 problem on machines with VREF-pin mute-LED

The verb command in stac92xx_post_suspend caused the audio to stop
working after resuming from S3 mode on HP laptops with the VREF-pin
mute-LED control.  Removing relevant post_suspend registering.

Although removing D3 on AFG is no optimal solution, the impact should
be small in comparison with the broken S3/S4.

Signed-off-by: Charles Chin <Charles.Chin@idt.com>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoASoC: Provide debug log of accessory status on WM8958
Mark Brown [Wed, 30 Nov 2011 14:56:40 +0000 (14:56 +0000)]
ASoC: Provide debug log of accessory status on WM8958

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Rename Speyside WM8962 to Tobermory
Mark Brown [Wed, 30 Nov 2011 13:30:27 +0000 (13:30 +0000)]
ASoC: Rename Speyside WM8962 to Tobermory

All the other machine drivers for non-default configurations are named
after the relevant audio module so do so for Tobermory also.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge branch 'fix/asoc' into for-next
Takashi Iwai [Wed, 30 Nov 2011 11:20:23 +0000 (12:20 +0100)]
Merge branch 'fix/asoc' into for-next

12 years agoASoC: Tegra I2S: Add device tree binding
Stephen Warren [Wed, 30 Nov 2011 01:36:48 +0000 (18:36 -0700)]
ASoC: Tegra I2S: Add device tree binding

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Enhance default WM8958 microphone detection
Mark Brown [Sat, 13 Aug 2011 02:57:18 +0000 (11:57 +0900)]
ASoC: Enhance default WM8958 microphone detection

Actively manage the detection rate for microphones with WM8958, providing
improved power consumption and maximising the benefit from the hardware
debounce.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Put WM8958 and WM1811 MICBIAS into bypass mode when no audio
Mark Brown [Tue, 29 Nov 2011 19:58:19 +0000 (19:58 +0000)]
ASoC: Put WM8958 and WM1811 MICBIAS into bypass mode when no audio

When we don't have any active audio we can put the microphone biases into
bypass mode to save power at the expense of performance.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Fix __iomem annotation for IDMA registers
Mark Brown [Sun, 27 Nov 2011 21:35:40 +0000 (21:35 +0000)]
ASoC: Fix __iomem annotation for IDMA registers

We always store the register address as __iomem but pass it around as a
plain void * which upsets sparse.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Ensure SYSCLK is enabled for WM8958 accessory detection
Mark Brown [Tue, 29 Nov 2011 14:36:17 +0000 (14:36 +0000)]
ASoC: Ensure SYSCLK is enabled for WM8958 accessory detection

Ensure SYSCLK is enabled while running accessory detection on WM8958.
It is always required so there is no sense in requiring machine drivers
to individually do this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge branch 'topic/asoc' into for-next
Takashi Iwai [Tue, 29 Nov 2011 12:06:29 +0000 (13:06 +0100)]
Merge branch 'topic/asoc' into for-next

12 years agoMerge branch 'fix/hda' into for-next
Takashi Iwai [Tue, 29 Nov 2011 12:04:28 +0000 (13:04 +0100)]
Merge branch 'fix/hda' into for-next

12 years agoALSA: hda_intel - revert a quirk that affect VIA chipsets
Marc Vertes [Tue, 29 Nov 2011 11:21:17 +0000 (12:21 +0100)]
ALSA: hda_intel - revert a quirk that affect VIA chipsets

This quirk sould be reverted. It has the following probems:

1) The quirk was intended to "ASUS MV2-MX SE" motherboards only, but the
ID used matches a much broader range, potentially all boards containing a
VIA chipset model in the family of vendor VIA 0x1106 and audio device ID
0x3288, which encompasses VIA-VT82xx, VIA-VT1xx and VIA-VT20xx chipsets.

2) VIA chipsets rely on azx_via_get_position() to handle correctly dma
transfers during capture. Using POS_FIX_LPIB instead of POS_FIX_VIACOMBO
leads to partially corrupted input buffers during capture. The effects
of this bug are not immediately visible, it took strong DSP expertise,
some expensive signal generator and a spectrum analyzer to identify it
and verify correct behaviour using original default.

3) It's almost certain that the quirk did not fix the real problem,
if there was one. Refer to original submission:
http://mailman.alsa-project.org/pipermail/alsa-devel/2010-February/025109.html

Signed-of-by: Marc Vertes <mvertes@sigfox.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoALSA: hda - Avoid touching mute-VREF pin for IDT codecs
Takashi Iwai [Tue, 29 Nov 2011 12:01:30 +0000 (13:01 +0100)]
ALSA: hda - Avoid touching mute-VREF pin for IDT codecs

Some HP laptops use a pin VREF for controlling the mute LED, and such a
pin shouldn't be powered off.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
12 years agoASoC: SigmaDSP: Add regmap support
Lars-Peter Clausen [Mon, 28 Nov 2011 08:44:20 +0000 (09:44 +0100)]
ASoC: SigmaDSP: Add regmap support

Add support for loading the SigmaDSP firmware using regmap. This allows us
to transparently use SPI or I2C as the transport protocol on devices which
support them.

For now we keep the old I2C support since we have one user of this which is not
straight forward to convert to regmap, due to variable length registers.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: SigmaDSP: Move private structs and functions to C file
Lars-Peter Clausen [Mon, 28 Nov 2011 08:44:19 +0000 (09:44 +0100)]
ASoC: SigmaDSP: Move private structs and functions to C file

Move the structs and functions only used by SigmaDSP firmware loader itself
from the header to the C file.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: SigmaDSP: Provide diagnostic error messages
Lars-Peter Clausen [Mon, 28 Nov 2011 08:44:18 +0000 (09:44 +0100)]
ASoC: SigmaDSP: Provide diagnostic error messages

Provide some error messages when loading the firmware fails, so it is possible
to diagnose the reason for the failure.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Move SigmaDSP firmware loader to ASoC
Lars-Peter Clausen [Mon, 28 Nov 2011 08:44:17 +0000 (09:44 +0100)]
ASoC: Move SigmaDSP firmware loader to ASoC

It has been pointed out previously, that the firmware subsystem is not the right
place for the SigmaDSP firmware loader. Furthermore the SigmaDSP is currently
only used in audio products and we are aiming for better integration into the
ASoC framework in the future, with support for ALSA controls for firmware
parameters and support dynamic power management as well. So the natural choice
for the SigmaDSP firmware loader is the ASoC subsystem.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge branch 'for-3.2' into for-3.3
Mark Brown [Tue, 29 Nov 2011 12:00:17 +0000 (12:00 +0000)]
Merge branch 'for-3.2' into for-3.3

12 years agofirmware: Sigma: Fix endianess issues
Lars-Peter Clausen [Mon, 28 Nov 2011 08:44:16 +0000 (09:44 +0100)]
firmware: Sigma: Fix endianess issues

Currently the SigmaDSP firmware loader only works correctly on little-endian
systems. Fix this by using the proper endianess conversion functions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
12 years agofirmware: Sigma: Skip header during CRC generation
Lars-Peter Clausen [Mon, 28 Nov 2011 08:44:15 +0000 (09:44 +0100)]
firmware: Sigma: Skip header during CRC generation

The firmware header is not part of the CRC, so skip it. Otherwise the firmware
will be rejected due to non-matching CRCs.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
12 years agofirmware: Sigma: Prevent out of bounds memory access
Lars-Peter Clausen [Mon, 28 Nov 2011 08:44:14 +0000 (09:44 +0100)]
firmware: Sigma: Prevent out of bounds memory access

The SigmaDSP firmware loader currently does not perform enough boundary size
checks when processing the firmware. As a result it is possible that a
malformed firmware can cause an out of bounds memory access.

This patch adds checks which ensure that both the action header and the payload
are completely inside the firmware data boundaries before processing them.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
12 years agoASoC: cs42l73: Fix clear wrong bits in cs42l73_set_dai_fmt
Axel Lin [Tue, 29 Nov 2011 11:47:38 +0000 (19:47 +0800)]
ASoC: cs42l73: Fix clear wrong bits in cs42l73_set_dai_fmt

What we want is to clear BIT[5:4](PCM_MODE_MASK) and BIT[3](PCM_BIT_ORDER) bits,
but current code clears BIT[2:0].

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>