openwrt/staging/blogic.git
12 years agoASoC: core: Support suspend to disk
Mark Brown [Tue, 31 Jan 2012 15:30:28 +0000 (15:30 +0000)]
ASoC: core: Support suspend to disk

Use the same pm_ops for all system suspend and resume paths. This isn't
ideal for suspend to disk with older CODECs as we'll suspend and then
resume the CODEC before powering off all of which takes a long time due
to VMID ramps but it's very simple to implement and for modern CODECs the
overhead should be minimal.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
12 years agoASoC: wm8993: Convert to use a regmap patch
Mark Brown [Tue, 31 Jan 2012 15:20:24 +0000 (15:20 +0000)]
ASoC: wm8993: Convert to use a regmap patch

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: fsi: Remove unneeded empty runtime PM callbacks
Mark Brown [Wed, 25 Jan 2012 19:55:56 +0000 (19:55 +0000)]
ASoC: fsi: Remove unneeded empty runtime PM callbacks

The runtime PM core no longer requires any callbacks so don't provide
empty ones for it any more.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: max9768: Fix up review comments in max9768 driver
Mark Brown [Mon, 30 Jan 2012 21:51:45 +0000 (21:51 +0000)]
ASoC: max9768: Fix up review comments in max9768 driver

The Mute Switch should be called Playback Switch to match the volume
and the regmap core has been updated so we don't need to mark all the
registers as non-volatile.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
12 years agoASoC: max9768: add driver for max9768 amplifier
Wolfram Sang [Fri, 27 Jan 2012 15:10:23 +0000 (16:10 +0100)]
ASoC: max9768: add driver for max9768 amplifier

Add a driver supporting the volume control and the mute pin. Shdn pin
and DAPM are not taken care of yet.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm2200: Remove trailing whitespace
Mark Brown [Sun, 29 Jan 2012 21:45:31 +0000 (21:45 +0000)]
ASoC: wm2200: Remove trailing whitespace

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8962: Enable idle_bias_off
Mark Brown [Fri, 27 Jan 2012 19:36:45 +0000 (19:36 +0000)]
ASoC: wm8962: Enable idle_bias_off

The WM8962 has ground referenced and class D outputs so can happily go
down to BIAS_OFF without a large startup time.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoARM: S3C64XX: Use IN4 DC measurement mode on Tobermory
Mark Brown [Tue, 24 Jan 2012 21:09:15 +0000 (21:09 +0000)]
ARM: S3C64XX: Use IN4 DC measurement mode on Tobermory

The WM8962 on Tobermory has one of the IN4 inputs connected for DC
measurement. Tell the driver it can optimise for this mode.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
12 years agoASoC: Set idle_bias_off flag in snd_soc_codec_driver
Axel Lin [Fri, 27 Jan 2012 10:02:09 +0000 (18:02 +0800)]
ASoC: Set idle_bias_off flag in snd_soc_codec_driver

Since commit 33c5f969 "ASoC: Allow idle_bias_off to be specified in CODEC
drivers", now we can set idle_bias_off flag in struct snd_soc_codec_driver
for devices can unconditionally support idle_bias_off.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8994: Report any low impedance accessory as a headphone
Mark Brown [Thu, 26 Jan 2012 18:33:24 +0000 (18:33 +0000)]
ASoC: wm8994: Report any low impedance accessory as a headphone

Report any accessory with a low impedance as a headphone, previously
anything other than a short or microphone would not be reported at all.
The most likely reason is a microphone with incorrect polarity.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8996: Handle failures to determine accessory polarity
Mark Brown [Thu, 26 Jan 2012 18:00:42 +0000 (18:00 +0000)]
ASoC: wm8996: Handle failures to determine accessory polarity

If we get an indeterminate impedance with both headset polarities then
give up and report the accessory as a headphone rather than continually
retrying.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5100: Use pm_runtime for powerdown managment
Mark Brown [Thu, 26 Jan 2012 17:28:49 +0000 (17:28 +0000)]
ASoC: wm5100: Use pm_runtime for powerdown managment

Using pm_runtime to decide if the device should go into full power down
has the dual advantage of allowing easier integration with non-DAPM
reasons to power on the device (like the FLL) and allowing userspace to
control the final power down which is useful for tuning retention of
DSP firmware.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5100: Convert to devm_regulator_bulk_get()
Mark Brown [Mon, 23 Jan 2012 15:00:17 +0000 (15:00 +0000)]
ASoC: wm5100: Convert to devm_regulator_bulk_get()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: dapm: Ignore isolated signal generators for power purposes
Mark Brown [Wed, 25 Jan 2012 19:55:22 +0000 (19:55 +0000)]
ASoC: dapm: Ignore isolated signal generators for power purposes

A signal generator has no power control itself and so shouldn't cause a
power up of the device.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: dapm: Drop runtime PM references asynchronously
Mark Brown [Wed, 25 Jan 2012 19:53:58 +0000 (19:53 +0000)]
ASoC: dapm: Drop runtime PM references asynchronously

We don't really care if any action is taken immediately so let the PM
core defer things if it wants to.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm2200: Add WM2200 CODEC driver
Mark Brown [Wed, 25 Jan 2012 19:29:41 +0000 (19:29 +0000)]
ASoC: wm2200: Add WM2200 CODEC driver

The WM2200 is a low power mobile CODEC with enhanced Wolfson myZone
Ambient Noise Cancellation (ANC) intended for mobile telephony
applications.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5100: Move regulator supplies over to DAPM infrastructure
Mark Brown [Sat, 21 Jan 2012 22:10:24 +0000 (22:10 +0000)]
ASoC: wm5100: Move regulator supplies over to DAPM infrastructure

Saves a nice block of code.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Provide REGULATOR_SUPPLY widget type
Mark Brown [Sat, 21 Jan 2012 21:14:48 +0000 (21:14 +0000)]
ASoC: Provide REGULATOR_SUPPLY widget type

Modern devices allow systems to enable and disable individual supplies on
the device, allowing additional power saving by switching off regulators
which power portions of the device which are not currently in use. Add a
new SND_SOC_DAPM_REGULATOR_SUPPLY widget type factoring out the code for
managing such widgets from individual drivers.

The widget name will be used as the supply name when requesting the
regulator from the regulator API.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
12 years agoMerge tag 'topic/devm' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regul...
Mark Brown [Thu, 26 Jan 2012 16:07:46 +0000 (16:07 +0000)]
Merge tag 'topic/devm' of git://git./linux/kernel/git/broonie/regulator into HEAD

Provide managed versions of regulator_get() and regulator_bulk_get(),
saving code in error handling and cleanup paths by ensuring that that
the regulators will be automatically unregistered when the device is
unregistered.

12 years agoASoC: soc-pcm: msbits constraint: Drop 8 and 16 bit sample sizes
Peter Ujfalusi [Wed, 25 Jan 2012 08:09:41 +0000 (10:09 +0200)]
ASoC: soc-pcm: msbits constraint: Drop 8 and 16 bit sample sizes

As per discussion we can safely ignore the 8 and 16 bit sample
sizes when applying the msbits constraint.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8962: Optimise power consumption for IN4 DC measurement usage
Mark Brown [Tue, 24 Jan 2012 21:07:55 +0000 (21:07 +0000)]
ASoC: wm8962: Optimise power consumption for IN4 DC measurement usage

When the hardware is configured with one or both of the IN4 inputs used
for DC measurement (with no DC blocking capacitor connected) then we can
improve power consumption slightly in idle modes by applying a register
write sequence. Provide platform data to enable this, implemented using
a regmap patch.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm5100: Fix warnings from recent patches
Mark Brown [Tue, 24 Jan 2012 19:51:34 +0000 (19:51 +0000)]
ASoC: wm5100: Fix warnings from recent patches

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert the WM5100 revision A updates to a regmap patch
Mark Brown [Sat, 21 Jan 2012 12:14:53 +0000 (12:14 +0000)]
ASoC: Convert the WM5100 revision A updates to a regmap patch

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoMerge tag 'regmap-patch-initial' of git://git.kernel.org/pub/scm/linux/kernel/git...
Mark Brown [Tue, 24 Jan 2012 19:48:04 +0000 (19:48 +0000)]
Merge tag 'regmap-patch-initial' of git://git./linux/kernel/git/broonie/regmap into for-3.4

regmap: Inital export of the patching implementation

An initial export of the regmap register patch implementation, mostly
for integration into ASoC so it can be used by drivers there which have
conflicting updates already.

12 years agoASoC: wm5100: Fix mismerge of IRQ frees
Mark Brown [Tue, 24 Jan 2012 12:11:20 +0000 (12:11 +0000)]
ASoC: wm5100: Fix mismerge of IRQ frees

We only want them at the device level, not at the CODEC level.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8731 to direct regmap API usage
Mark Brown [Mon, 21 Nov 2011 12:10:03 +0000 (12:10 +0000)]
ASoC: Convert WM8731 to direct regmap API usage

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregmap: Support register patch sets
Mark Brown [Sat, 21 Jan 2012 12:01:14 +0000 (12:01 +0000)]
regmap: Support register patch sets

Device manufacturers frequently provide register sequences, usually not
fully documented, to be run at startup in order to provide better defaults
for devices (for example, improving performance in the light of silicon
evaluation). Support such updates by allowing drivers to register update
sets with the core. These updates will be written to the device immediately
and will also be rewritten when the cache is synced.

The assumption is that the reason for resyncing the cache will always be
that the device has been powered off. If this turns out to not be the case
then a separate operation can be provided.

Currently the implementation only allows a single set of updates to be
specified for a device, this could be extended in future.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Add __devinit/__devexit annotations at necessary places
Axel Lin [Mon, 23 Jan 2012 03:18:17 +0000 (11:18 +0800)]
ASoC: Add __devinit/__devexit annotations at necessary places

Fix below build warning when CONFIG_HOTPLUG is not set.

  CC      sound/soc/codecs/alc5623.o
sound/soc/codecs/alc5623.c:1062: warning: ‘alc5623_i2c_remove’ defined but not used
  CC      sound/soc/codecs/alc5632.o
sound/soc/codecs/alc5632.c:1112: warning: ‘alc5632_i2c_remove’ defined but not used

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Leon Romanovsky <leon@leon.nu>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: sgtl5000: It's sgtl5000 not sgtl500
Mark Brown [Mon, 23 Jan 2012 10:16:31 +0000 (10:16 +0000)]
ASoC: sgtl5000: It's sgtl5000 not sgtl500

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: sgtl5000: Convert to table based DAPM and control init
Fabio Estevam [Sun, 22 Jan 2012 16:49:42 +0000 (14:49 -0200)]
ASoC: sgtl5000: Convert to table based DAPM and control init

Convert to table based DAPM and control init.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Provide devm_regulator_bulk_get()
Mark Brown [Fri, 20 Jan 2012 20:10:08 +0000 (20:10 +0000)]
regulator: Provide devm_regulator_bulk_get()

Allow drivers to benefit from both the bulk APIs and managed resources
simultaneously.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoregulator: Implement devm_regulator_free()
Mark Brown [Fri, 20 Jan 2012 20:09:18 +0000 (20:09 +0000)]
regulator: Implement devm_regulator_free()

Allow consumers to free regulators allocated using devm_regulator_get()
if they need to. This will not normally be required.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8988: Convert to devm_kzalloc()
Mark Brown [Sat, 21 Jan 2012 23:25:16 +0000 (23:25 +0000)]
ASoC: wm8988: Convert to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8988: Convert to table based DAPM and control init
Mark Brown [Sat, 21 Jan 2012 23:24:25 +0000 (23:24 +0000)]
ASoC: wm8988: Convert to table based DAPM and control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8985: Convert to direct regmap API usage
Mark Brown [Sat, 21 Jan 2012 15:41:48 +0000 (15:41 +0000)]
ASoC: wm8985: Convert to direct regmap API usage

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8985 Don't directly reference the cache data structure
Mark Brown [Sat, 21 Jan 2012 15:39:34 +0000 (15:39 +0000)]
ASoC: wm8985 Don't directly reference the cache data structure

In preparation for conversion to regmap.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8985: Use standard cache sync implementation
Mark Brown [Sat, 21 Jan 2012 15:36:30 +0000 (15:36 +0000)]
ASoC: wm8985: Use standard cache sync implementation

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8985: Convert to table based DAPM and control init
Mark Brown [Sat, 21 Jan 2012 15:36:08 +0000 (15:36 +0000)]
ASoC: wm8985: Convert to table based DAPM and control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8985: Convert to devm_kzalloc()
Mark Brown [Sat, 21 Jan 2012 15:23:26 +0000 (15:23 +0000)]
ASoC: wm8985: Convert to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Add external amplifier controls for Visstrim_M10.
Javier Martin [Fri, 20 Jan 2012 09:16:57 +0000 (10:16 +0100)]
ASoC: Add external amplifier controls for Visstrim_M10.

Visstrim_M10 has an external class D amplifier.
This patch provides support for controlling the 4
possible gain levels and per channel muting.

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Fix build of tlv320dac33
Mark Brown [Fri, 20 Jan 2012 17:52:39 +0000 (17:52 +0000)]
ASoC: Fix build of tlv320dac33

The problem was introduced due to the obscure formatting some of the
older drivers use.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Use regmap update bits operation for drivers using regmap
Mark Brown [Sat, 3 Dec 2011 12:33:55 +0000 (12:33 +0000)]
ASoC: Use regmap update bits operation for drivers using regmap

If a driver is using regmap directly ensure that we're coherent with
non-ASoC register updates by using the regmap API directly to do our
read/modify/write cycles. This will bypass the ASoC cache but drivers
using regmap directly should not be using the ASoC cache.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Don't tell applications about msbits unless we're ignoring input
Mark Brown [Thu, 19 Jan 2012 18:04:18 +0000 (18:04 +0000)]
ASoC: Don't tell applications about msbits unless we're ignoring input

On the off chance that an application both pays attention and gets
confused.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Push WM5100 interrupt request into I2C probe
Mark Brown [Wed, 18 Jan 2012 15:05:46 +0000 (15:05 +0000)]
ASoC: Push WM5100 interrupt request into I2C probe

This is more what the device model wants us to do and will allow use by
non-audio functions before the audio part of the device has come up.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Make WM5100 interrupt path use regmap directly
Mark Brown [Wed, 18 Jan 2012 14:53:08 +0000 (14:53 +0000)]
ASoC: Make WM5100 interrupt path use regmap directly

This will allow us to move the interrupt allocation out of the ASoC part
of the driver and simplifies the locking by removing any reliance in the
bulk of the interrupt path on the big CODEC lock.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Remove redundant set_bias_level() from WM5100 remove()
Mark Brown [Wed, 18 Jan 2012 13:47:02 +0000 (13:47 +0000)]
ASoC: Remove redundant set_bias_level() from WM5100 remove()

The framework should bring the device down before it calls the driver.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: omap-mcpdm: Set 24msbits constraint
Peter Ujfalusi [Wed, 18 Jan 2012 11:18:24 +0000 (12:18 +0100)]
ASoC: omap-mcpdm: Set 24msbits constraint

McPDM internal FIFO is 24 bit wide. From the 32 bit sample
8 bit is discarded. Let application know about this
via msbits constraint.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: omap-dmic: Use core to set the msbits constraint
Peter Ujfalusi [Wed, 18 Jan 2012 11:18:23 +0000 (12:18 +0100)]
ASoC: omap-dmic: Use core to set the msbits constraint

Core can set the msbits constraint in behalf of the dai.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: twl4030: Use core to set the msbits constraint
Peter Ujfalusi [Wed, 18 Jan 2012 11:18:26 +0000 (12:18 +0100)]
ASoC: twl4030: Use core to set the msbits constraint

Core can set the msbits constraint in behalf of the dai.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: tlv320dac33: Use core to set the msbits constraint
Peter Ujfalusi [Wed, 18 Jan 2012 11:18:25 +0000 (12:18 +0100)]
ASoC: tlv320dac33: Use core to set the msbits constraint

Core can set the msbits constraint in behalf of the dai.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: sgtl5000: Print revision number in hex
Fabio Estevam [Mon, 16 Jan 2012 19:32:21 +0000 (17:32 -0200)]
ASoC: sgtl5000: Print revision number in hex

Throughout the sgtl5000 driver source code and also in the sgtl5000 datasheet
the revision code is shown in hexadecimal.

Print it hex format, for consistency.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Say we can't read WM5100 ID register
Mark Brown [Tue, 17 Jan 2012 19:27:04 +0000 (19:27 +0000)]
ASoC: Say we can't read WM5100 ID register

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: When releasing WM5100 put /RESET into reset
Mark Brown [Tue, 17 Jan 2012 19:18:27 +0000 (19:18 +0000)]
ASoC: When releasing WM5100 put /RESET into reset

Reset is active low, make sure we leave it asserted when release the
device.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: 24 bits are significant on wm_hubs DAIs
Mark Brown [Tue, 17 Jan 2012 11:50:26 +0000 (11:50 +0000)]
ASoC: 24 bits are significant on wm_hubs DAIs

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Make WM8993 I2C usage unconditional
Mark Brown [Tue, 17 Jan 2012 15:08:35 +0000 (15:08 +0000)]
ASoC: Make WM8993 I2C usage unconditional

The WM8993 only supports I2C so don't ifdef the I2C support in the driver.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Implement basic WM8993 interrupt support
Mark Brown [Tue, 17 Jan 2012 16:42:05 +0000 (16:42 +0000)]
ASoC: Implement basic WM8993 interrupt support

If an interrupt is supplied then use it for thermal warning and FLL lock
notifications. When using the interrupt raise the timeout for the FLL lock
substantially to reduce the chances of spurious warnings.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: 24 bits are significant on the WM8996 audio interfaces
Mark Brown [Mon, 16 Jan 2012 18:39:21 +0000 (18:39 +0000)]
ASoC: 24 bits are significant on the WM8996 audio interfaces

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Allow drivers to specify how many bits are significant on a DAI
Mark Brown [Mon, 16 Jan 2012 18:38:51 +0000 (18:38 +0000)]
ASoC: Allow drivers to specify how many bits are significant on a DAI

Most devices accept data in formats that don't correspond directly to
their internal format. ALSA allows us to set a msbits constraint which
tells userspace about this in case it finds it useful (for example, in
order to avoid wasting effort dithering bits that will be ignored when
raising the sample size of data) so provide a mechanism for drivers to
specify the number of bits that are actually significant on a DAI and
add the appropriate constraints along with all the others.

This is done slightly awkwardly as the constraint is specified per sample
size - we loop over every possible sample size, including ones that the
device doesn't support and including ones that have fewer bits than are
actually used, but this is harmless as the upper layers do the right thing
in these cases.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
12 years agoASoC: Add WM8962 DAC and ADC L/R swap support
Mark Brown [Thu, 12 Jan 2012 00:31:00 +0000 (16:31 -0800)]
ASoC: Add WM8962 DAC and ADC L/R swap support

Simple switches since there's no per-channel control.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: wm8983: Remove useless snd_kcontrol
Dimitris Papastamos [Mon, 16 Jan 2012 10:44:13 +0000 (10:44 +0000)]
ASoC: wm8983: Remove useless snd_kcontrol

This must be a leftover from a previous driver.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: jz4740: Convert qi_lb60 to use snd_soc_register_card()
Axel Lin [Fri, 6 Jan 2012 03:30:10 +0000 (11:30 +0800)]
ASoC: jz4740: Convert qi_lb60 to use snd_soc_register_card()

Use snd_soc_register_card() instead of creating a "soc-audio" platform device.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8962 register access map to modern style
Mark Brown [Thu, 12 Jan 2012 04:13:19 +0000 (20:13 -0800)]
ASoC: Convert WM8962 register access map to modern style

Much more compact, both in terms of source and especially in terms of
RAM used at runtime.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Route Mic Bias in Visstrim_M10 board.
Javier Martin [Wed, 11 Jan 2012 12:21:05 +0000 (13:21 +0100)]
ASoC: Route Mic Bias in Visstrim_M10 board.

Visstrim_M10 board uses an external microphone
that can be enabled/disabled by the user

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoep93xx: Don't use system controller defines in audio drivers
Ryan Mallon [Wed, 11 Jan 2012 03:14:31 +0000 (14:14 +1100)]
ep93xx: Don't use system controller defines in audio drivers

Both the Snapper CL15 and EDB93xx audio drivers set the same audio
configuration in ep93xx_i2s_acquire. Remove the arguments to
ep93xx_i2s_acquire so that the audio drivers no longer need the
EP93XX_SYSCON defines exported.

Cc: Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Mika Westerberg <mika.westerberg@iki.fi>
Cc: Liam Girdwood <lrg@ti.com>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Ryan Mallon <rmallon@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Make WM8962 I2C usage unconditional
Mark Brown [Tue, 10 Jan 2012 18:53:49 +0000 (10:53 -0800)]
ASoC: Make WM8962 I2C usage unconditional

We only support I2C so no need to ifdef.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: CQ93VC: remove machine specific header file inclusion from codec driver
Manjunath Hadli [Tue, 10 Jan 2012 11:27:43 +0000 (16:57 +0530)]
ASoC: CQ93VC: remove machine specific header file inclusion from codec driver

remove unnecessary inclusion of machine specific header
file mach/dm365.h from cq93vc.c voice codec driver
which comes in the way of platform code consolidation.

Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: utils - Add support for a dummy codec driver.
Liam Girdwood [Mon, 9 Jan 2012 12:36:24 +0000 (12:36 +0000)]
ASoC: utils - Add support for a dummy codec driver.

This is useful to create dummy codec devices where we need to have some
DAI links without a real Codec. e.g. could be used to represent dumb FM,
MODEM, etc

This is also used by dynamic PCM for DAI links that have no codec.

Signed-off-by: Liam Girdwood <lrg@ti.com>
[Fixed the indentation -- broonie]
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: twl6040 - add method to query HS DC offset step size in mV
Liam Girdwood [Mon, 9 Jan 2012 12:10:16 +0000 (12:10 +0000)]
ASoC: twl6040 - add method to query HS DC offset step size in mV

Provide a method for mach drivers to query the HS DC offset step size in mV.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Optimise performance of WM8904 ADC 128fs OSR mode
Mark Brown [Sun, 8 Jan 2012 02:02:57 +0000 (18:02 -0800)]
ASoC: Optimise performance of WM8904 ADC 128fs OSR mode

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: core - Improve card registration error messaging for large DAI links.
Liam Girdwood [Mon, 9 Jan 2012 12:09:29 +0000 (12:09 +0000)]
ASoC: core - Improve card registration error messaging for large DAI links.

Print out the offending DAI link entry when a naming error occurs. Makes
thing easier to debug for machines with a large number of DAI links.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: replace 0xffffffff with DMA_BIT_MASK macro
Joachim Eastwood [Sun, 1 Jan 2012 01:43:03 +0000 (02:43 +0100)]
ASoC: replace 0xffffffff with DMA_BIT_MASK macro

Signed-off-by: Joachim Eastwood <joachim.eastwood@jotron.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: use proper defines for stream directions in pcm engines
Joachim Eastwood [Sun, 1 Jan 2012 01:14:24 +0000 (02:14 +0100)]
ASoC: use proper defines for stream directions in pcm engines

Signed-off-by: Joachim Eastwood <joachim.eastwood@jotron.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8955 to table based DAPM and control init
Mark Brown [Thu, 29 Dec 2011 21:45:27 +0000 (21:45 +0000)]
ASoC: Convert WM8955 to table based DAPM and control init

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8955 to direct regmap API usage
Mark Brown [Thu, 29 Dec 2011 21:42:36 +0000 (21:42 +0000)]
ASoC: Convert WM8955 to direct regmap API usage

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Use standard register cache sync for WM8955
Mark Brown [Thu, 29 Dec 2011 21:39:44 +0000 (21:39 +0000)]
ASoC: Use standard register cache sync for WM8955

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8955 to devm_kzalloc()
Mark Brown [Thu, 29 Dec 2011 21:23:04 +0000 (21:23 +0000)]
ASoC: Convert WM8955 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Make I2C usage unconditional in WM8955
Mark Brown [Thu, 29 Dec 2011 21:21:49 +0000 (21:21 +0000)]
ASoC: Make I2C usage unconditional in WM8955

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8940 to devm_kzalloc()
Mark Brown [Thu, 29 Dec 2011 21:16:59 +0000 (21:16 +0000)]
ASoC: Convert WM8940 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Make I2C usage unconditional in WM8940
Mark Brown [Thu, 29 Dec 2011 21:15:48 +0000 (21:15 +0000)]
ASoC: Make I2C usage unconditional in WM8940

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8904 to direct regmap API usage
Mark Brown [Thu, 29 Dec 2011 21:12:51 +0000 (21:12 +0000)]
ASoC: Convert WM8904 to direct regmap API usage

The device has a very sparse register map so should benefit from using a
rbtree cache.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Use standard cache sync for WM8904
Mark Brown [Thu, 29 Dec 2011 21:07:04 +0000 (21:07 +0000)]
ASoC: Use standard cache sync for WM8904

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert wm8904 to devm_kzalloc()
Mark Brown [Thu, 29 Dec 2011 20:05:00 +0000 (20:05 +0000)]
ASoC: Convert wm8904 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Make WM8904 I2C usage unconditional
Mark Brown [Thu, 29 Dec 2011 20:03:23 +0000 (20:03 +0000)]
ASoC: Make WM8904 I2C usage unconditional

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert wm8804 to direct regmap API usage
Mark Brown [Thu, 29 Dec 2011 19:58:06 +0000 (19:58 +0000)]
ASoC: Convert wm8804 to direct regmap API usage

The register map for this device is actually fairly sparse so the rbtree
should be beneficial.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert wm8804 to devm_kzalloc()
Mark Brown [Thu, 29 Dec 2011 19:19:18 +0000 (19:19 +0000)]
ASoC: Convert wm8804 to devm_kzalloc()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Use standard cache sync for wm8804
Mark Brown [Thu, 29 Dec 2011 19:13:37 +0000 (19:13 +0000)]
ASoC: Use standard cache sync for wm8804

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Remove wm8974 private data
Mark Brown [Thu, 29 Dec 2011 11:11:25 +0000 (11:11 +0000)]
ASoC: Remove wm8974 private data

It's only ever referenced when being allocated and freed.

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

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Make wm8974 I2C usage unconditional
Mark Brown [Thu, 29 Dec 2011 11:08:21 +0000 (11:08 +0000)]
ASoC: Make wm8974 I2C usage unconditional

The driver only supports I2C at present.

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

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

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Make WM8971 I2C usage unconditional
Mark Brown [Thu, 29 Dec 2011 10:59:39 +0000 (10:59 +0000)]
ASoC: Make WM8971 I2C usage unconditional

The driver only supports I2C so no need to worry about SPI only systems.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM8753 to direct regmap API usage
Mark Brown [Mon, 21 Nov 2011 16:32:03 +0000 (16:32 +0000)]
ASoC: Convert WM8753 to direct regmap API usage

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Move WM8993 resource acquisition and device reset to bus probe
Mark Brown [Wed, 14 Dec 2011 04:31:14 +0000 (12:31 +0800)]
ASoC: Move WM8993 resource acquisition and device reset to bus probe

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert wm8993 to direct regmap API usage
Mark Brown [Wed, 14 Dec 2011 03:53:06 +0000 (11:53 +0800)]
ASoC: Convert wm8993 to direct regmap API usage

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Move WM9090 device identification and reset to I2C probe
Mark Brown [Tue, 13 Dec 2011 13:43:01 +0000 (21:43 +0800)]
ASoC: Move WM9090 device identification and reset to I2C probe

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert WM9090 to use regmap directly
Mark Brown [Tue, 13 Dec 2011 13:20:59 +0000 (21:20 +0800)]
ASoC: Convert WM9090 to use regmap directly

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Push wm8978 reset down into the I2C probe
Mark Brown [Thu, 29 Dec 2011 11:44:03 +0000 (11:44 +0000)]
ASoC: Push wm8978 reset down into the I2C probe

Ensures that we get control of the CODEC earlier and don't try to probe
the card at all if register I/O isn't working.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Convert wm8978 to direct regmap API usage
Mark Brown [Thu, 29 Dec 2011 11:39:39 +0000 (11:39 +0000)]
ASoC: Convert wm8978 to direct regmap API usage

Helps push the register cache code down out of ASoC and improves resume
times by using the more efficient regmap cache sync code.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
12 years agoASoC: Use standard cache sync for WM8978
Mark Brown [Thu, 29 Dec 2011 11:32:09 +0000 (11:32 +0000)]
ASoC: Use standard cache sync for WM8978

Saves a bit of code and supports further refactoring.

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