GitHub/moto-9609/android_kernel_motorola_exynos9610.git
13 years agoASoC: Mark cache as dirty when suspending
Mark Brown [Mon, 18 Jul 2011 04:17:13 +0000 (13:17 +0900)]
ASoC: Mark cache as dirty when suspending

Since quite a few drivers are not managing to flag the cache as needing
to be resynced after suspend and it's a reasonable thing to do flag the
cache as needing sync automatically when suspending.

The expectation is that systems will mainly only keep the CODEC powered
when doing audio through the CODEC so we won't actually suspend the
device anyway; drivers which want to can override this behaviour when
they resume.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Cc: stable@kernel.org
13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Sun, 17 Jul 2011 09:25:58 +0000 (18:25 +0900)]
Merge branch 'for-3.0' into for-3.1

13 years agoASoC: Correct WM8994 MICBIAS supply widget hookup
Mark Brown [Thu, 14 Jul 2011 09:21:37 +0000 (18:21 +0900)]
ASoC: Correct WM8994 MICBIAS supply widget hookup

The WM8994 and WM8958 series of devices have two MICBIAS supplies rather
than one, the current widget actually manages the microphone detection
control register bit (which is managed separately by the relevant API).

Fix this, hooking the relevant supplies up to the MICBIAS1 and MICBIAS2
widgets.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
13 years agoASoC: Don't use -1 to boostrap subseq so it can be used by drivers
Mark Brown [Sat, 16 Jul 2011 01:55:08 +0000 (10:55 +0900)]
ASoC: Don't use -1 to boostrap subseq so it can be used by drivers

Makes life a little easier if you want to add subsequences to an existing
driver as you can use -1 to put things at the start of sequences.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Reduce power consumption for idle DAIs in WM8994
Mark Brown [Thu, 14 Jul 2011 08:11:38 +0000 (17:11 +0900)]
ASoC: Reduce power consumption for idle DAIs in WM8994

If DAIs are idle but their clocks are in use for some reason (eg, as
SYSCLK or for accessory detect) then set the clock dividers to the maximum
to reduce slightly the power consumption of the unclocked circuits.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Report an error for unknown adav80x formats
Mark Brown [Sat, 16 Jul 2011 02:34:58 +0000 (11:34 +0900)]
ASoC: Report an error for unknown adav80x formats

Not only fixes error handling but also some uninitialized variable
warnings.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
13 years agoASoC: Handle failed WM8994 FLL lock waits
Mark Brown [Fri, 15 Jul 2011 18:12:18 +0000 (03:12 +0900)]
ASoC: Handle failed WM8994 FLL lock waits

Try the completion before we start the FLL so that if an interrupt was
delayed long enough for us to miss it we don't wait for the completion
it signalled.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Handle spurious wm_hubs DC servo done interrupts
Mark Brown [Fri, 15 Jul 2011 08:33:26 +0000 (17:33 +0900)]
ASoC: Handle spurious wm_hubs DC servo done interrupts

Don't assume the first fire indicates that we're done.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: WM8983: Initial driver
Dimitris Papastamos [Fri, 15 Jul 2011 12:51:30 +0000 (13:51 +0100)]
ASoC: WM8983: Initial driver

The WM8983 is a low power, high quality stereo CODEC
designed for portable multimedia applications. Highly flexible
analogue mixing functions enable new application features,
combining hi-fi quality audio with voice communication.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Fri, 15 Jul 2011 13:43:07 +0000 (22:43 +0900)]
Merge branch 'for-3.0' into for-3.1

13 years agoASoC: Fix shift in WM8958 accessory detection default implementation
Mark Brown [Fri, 15 Jul 2011 13:28:32 +0000 (22:28 +0900)]
ASoC: Fix shift in WM8958 accessory detection default implementation

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
13 years agoASoC: wm8900: fix a memory leak if wm8900_set_fll fails
Axel Lin [Thu, 14 Jul 2011 10:14:46 +0000 (18:14 +0800)]
ASoC: wm8900: fix a memory leak if wm8900_set_fll fails

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Log WM8994 FIFO errors from the interrupt
Mark Brown [Thu, 14 Jul 2011 03:38:18 +0000 (12:38 +0900)]
ASoC: Log WM8994 FIFO errors from the interrupt

We should spot them anyway on state changes but logging them gives us
better time information about when the misconfiguration happened.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SAMSUNG: 24-bit audio playback on Exynos4210
Giridhar Maruthy [Wed, 13 Jul 2011 11:22:06 +0000 (16:52 +0530)]
ASoC: SAMSUNG: 24-bit audio playback on Exynos4210

Using 256fs or 512fs will result in distortion of 24-bit
audio samples. This is because the lrclk generated is not
proper. Using 384 fs generates proper output.

Signed-off-by: Giridhar Maruthy <giridhar.maruthy@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Don't warn on low WM8994/58 AIFnCLKs
Mark Brown [Wed, 13 Jul 2011 06:52:13 +0000 (15:52 +0900)]
ASoC: Don't warn on low WM8994/58 AIFnCLKs

We can have valid but very low clocks in accessory detection modes.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Use WM8994 FLL lock interrupt
Mark Brown [Tue, 12 Jul 2011 10:47:59 +0000 (19:47 +0900)]
ASoC: Use WM8994 FLL lock interrupt

If we have interrupts then wait for the FLL lock interrupt rather than
using dead reckoning when waiting for the FLL to start.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Hook up DC servo completion IRQ for WM8994 and WM8958
Mark Brown [Tue, 12 Jul 2011 06:47:17 +0000 (15:47 +0900)]
ASoC: Hook up DC servo completion IRQ for WM8994 and WM8958

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Implement DC servo completion IRQ handling for wm_hubs devices
Mark Brown [Tue, 12 Jul 2011 06:25:03 +0000 (15:25 +0900)]
ASoC: Implement DC servo completion IRQ handling for wm_hubs devices

The individual devices should set the flag dcs_done_irq in the hubs
shared data structure to indicate that they will flag the interrupt
by calling wm_hubs_dcs_done().

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Use late enable handling for direct voice, speaker and headphone
Mark Brown [Wed, 29 Jun 2011 07:21:09 +0000 (00:21 -0700)]
ASoC: Use late enable handling for direct voice, speaker and headphone

This ensures appropriate clocking for bypass paths to speaker and
headphone and direct voice paths on affected revisions.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: STA32x: Preserve reserved register bits
Johannes Stezenbach [Mon, 11 Jul 2011 15:01:24 +0000 (17:01 +0200)]
ASoC: STA32x: Preserve reserved register bits

Chip documentation explicitly requires that the reset values
of reserved register bits are left untouched.  It is possible
there are differences between STA326 and STA328 or future
chip revisions in these bits, and clobbering them might
cause malfunction.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: STA32x: Add mixer controls for biquad coefficients
Johannes Stezenbach [Mon, 11 Jul 2011 15:01:23 +0000 (17:01 +0200)]
ASoC: STA32x: Add mixer controls for biquad coefficients

The STA32x has a number of preset EQ settings, but also
allows full user control of the biquad filter coeffcients
(when "Automode EQ" is set to "User").
Each biquad has five signed, 24bit, fixed-point coefficients
representing the range -1...1.  The five biquad coefficients
can be uploaded in one atomic operation into on-chip
coefficient RAM.
There are also a few prescale, postscale and mixing
coefficients, in the same numeric format and range
(a negative coefficient inverts phase).

These coefficients are made available as SNDRV_CTL_ELEM_TYPE_BYTES
mixer controls.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Conditionalize the enable of WM8994 ADC TDM mode
Mark Brown [Wed, 6 Jul 2011 07:08:43 +0000 (00:08 -0700)]
ASoC: Conditionalize the enable of WM8994 ADC TDM mode

Future devices will not benefit from this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoMerge branch 'topic/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
Mark Brown [Sat, 9 Jul 2011 14:16:12 +0000 (23:16 +0900)]
Merge branch 'topic/asoc' of git://git./linux/kernel/git/tiwai/sound-2.6 into for-3.1

13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Sat, 9 Jul 2011 10:06:33 +0000 (19:06 +0900)]
Merge branch 'for-3.0' into for-3.1

13 years agoASoC: sh: fsi-hdmi: fixup snd_soc_card name
Kuninori Morimoto [Tue, 5 Jul 2011 07:16:17 +0000 (00:16 -0700)]
ASoC: sh: fsi-hdmi: fixup snd_soc_card name

it shouldn't contain space letters and
special letters like parentheses.

aplay will be "Segmentation fault" without this patch
special thanks to Takashi.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: sh: fsi-da7210: fixup snd_soc_card name
Kuninori Morimoto [Tue, 5 Jul 2011 07:16:03 +0000 (00:16 -0700)]
ASoC: sh: fsi-da7210: fixup snd_soc_card name

it shouldn't contain space letters and
special letters like parentheses.

aplay will be "Segmentation fault" without this patch.
special thanks to Takashi.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: sh: fsi-ak4642: fixup snd_soc_card name
Kuninori Morimoto [Tue, 5 Jul 2011 07:15:04 +0000 (00:15 -0700)]
ASoC: sh: fsi-ak4642: fixup snd_soc_card name

it shouldn't contain space letters and
special letters like parentheses.

aplay will be "Segmentation fault" without this patch.
special thanks to Takashi.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-3.1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound...
Takashi Iwai [Sat, 9 Jul 2011 09:43:04 +0000 (11:43 +0200)]
Merge branch 'for-3.1' of git://git./linux/kernel/git/broonie/sound-2.6 into topic/asoc

13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Sat, 9 Jul 2011 09:20:36 +0000 (18:20 +0900)]
Merge branch 'for-3.0' into for-3.1

13 years agoMerge branch 'for-3.0' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound...
Takashi Iwai [Sat, 9 Jul 2011 07:44:09 +0000 (09:44 +0200)]
Merge branch 'for-3.0' of git://git./linux/kernel/git/broonie/sound-2.6 into fix/asoc

13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Thu, 7 Jul 2011 16:54:19 +0000 (09:54 -0700)]
Merge branch 'for-3.0' into for-3.1

13 years agoASoC: pxa2xx-pcm: remove unused variable 'dai'
Axel Lin [Wed, 6 Jul 2011 13:20:42 +0000 (21:20 +0800)]
ASoC: pxa2xx-pcm: remove unused variable 'dai'

Remove unused variable 'dai' to eliminate below warning.

  CC      sound/soc/pxa/pxa2xx-pcm.o
sound/soc/pxa/pxa2xx-pcm.c: In function 'pxa2xx_soc_pcm_new':
sound/soc/pxa/pxa2xx-pcm.c:91: warning: unused variable 'dai'

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: ak4642: fixup snd_soc_update_bits mask for PW_MGMT2
Kuninori Morimoto [Thu, 7 Jul 2011 00:58:56 +0000 (17:58 -0700)]
ASoC: ak4642: fixup snd_soc_update_bits mask for PW_MGMT2

mask didn't cover update-data

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
13 years agoASoC: Tegra: Implement SPDIF CPU DAI
Stephen Warren [Tue, 5 Jul 2011 16:55:27 +0000 (10:55 -0600)]
ASoC: Tegra: Implement SPDIF CPU DAI

This is a minimal driver for the Tegra SPDIF controller.

In hardware, the SPDIF output signal is always routed to any active HDMI
display controllers, and may also be routed to external pins on Tegra
using the pinmux.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: core - Add platform IO tracing
Liam Girdwood [Mon, 4 Jul 2011 21:10:50 +0000 (22:10 +0100)]
ASoC: core - Add platform IO tracing

Trace platform IO just like CODEC IO.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: core - Add convenience register for platform kcontrol and DAPM
Liam Girdwood [Mon, 4 Jul 2011 21:10:53 +0000 (22:10 +0100)]
ASoC: core - Add convenience register for platform kcontrol and DAPM

Allow platform probe to register platform kcontrols and DAPM just like
the CODEC probe().

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: core - Add platform widget IO
Liam Girdwood [Mon, 4 Jul 2011 21:10:52 +0000 (22:10 +0100)]
ASoC: core - Add platform widget IO

Allow platform driver widgets to perform any IO required for DAPM.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: core - Add API call to register platform kcontrols.
Liam Girdwood [Mon, 4 Jul 2011 21:10:51 +0000 (22:10 +0100)]
ASoC: core - Add API call to register platform kcontrols.

In preparation for Dynamic PCM (AKA DSP) support.

Allow platform drivers to register kcontrols.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Manage WM8731 ACTIVE bit as a supply widget
Mark Brown [Mon, 4 Jul 2011 17:27:51 +0000 (10:27 -0700)]
ASoC: Manage WM8731 ACTIVE bit as a supply widget

Now we have supply widgets there's no need to open code the handling of
the ACTIVE bit.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: Manage WM8731 ACTIVE bit as a supply widget
Mark Brown [Mon, 4 Jul 2011 17:27:51 +0000 (10:27 -0700)]
ASoC: Manage WM8731 ACTIVE bit as a supply widget

Now we have supply widgets there's no need to open code the handling of
the ACTIVE bit.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: Don't set invalid name string to snd_card->driver field
Takashi Iwai [Tue, 5 Jul 2011 07:25:59 +0000 (09:25 +0200)]
ASoC: Don't set invalid name string to snd_card->driver field

The snd_card->driver field contains a driver name string, and in
general it shouldn't contain space or special letters.  The commit
2b39535b9e54888649923beaab443af212b6c0fd changed the string copy from
card->name, but the long name string may contain such letters, thus
it may still lead to a segfault.

A temporary fix is not to copy the long name string but just keep it
empty as the earlier version did.

Reported-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoMerge branch 'for-3.1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound...
Takashi Iwai [Tue, 5 Jul 2011 06:20:19 +0000 (08:20 +0200)]
Merge branch 'for-3.1' of git://git./linux/kernel/git/broonie/sound-2.6 into topic/asoc

13 years agoMerge branch 'for-3.0' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound...
Takashi Iwai [Tue, 5 Jul 2011 06:20:00 +0000 (08:20 +0200)]
Merge branch 'for-3.0' of git://git./linux/kernel/git/broonie/sound-2.6 into fix/asoc

13 years agoMerge branch 'for-3.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc...
Takashi Iwai [Tue, 5 Jul 2011 05:33:23 +0000 (07:33 +0200)]
Merge branch 'for-3.1' of git://git./linux/kernel/git/lrg/asoc-2.6 into topic/asoc

13 years agoMerge branch 'for-3.0' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc...
Takashi Iwai [Tue, 5 Jul 2011 05:33:06 +0000 (07:33 +0200)]
Merge branch 'for-3.0' of git://git./linux/kernel/git/lrg/asoc-2.6 into fix/asoc

13 years agoASoC: core - Add platform read and write.
Liam Girdwood [Mon, 4 Jul 2011 10:10:15 +0000 (11:10 +0100)]
ASoC: core - Add platform read and write.

In preparation for ASoC Dynamic PCM (AKA DSP) support.

Allow platform driver to perform IO. Intended for platform DAPM.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: tlv320aic3x: Add correct hw registers to Line1 cross connect muxes
Jarkko Nikula [Thu, 26 May 2011 08:37:02 +0000 (11:37 +0300)]
ASoC: tlv320aic3x: Add correct hw registers to Line1 cross connect muxes

Commit af46800 ("ASoC: Implement mux control sharing") revealed that
"Left Line1[L | R] Mux" and "Right Line1[L | R] Mux" widgets were pointing
to the same kcontrols and codec registers and thus soc-core falsely detected
them as shared controls. This is actually wrong since there are separate
registers in hardware that configure Line1L to RADC and Line1R to LADC cross
connects so these muxes should not be shared.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@ti.com>
13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Mon, 4 Jul 2011 15:54:40 +0000 (08:54 -0700)]
Merge branch 'for-3.0' into for-3.1

13 years agoASoC: Ensure we delay long enough for WM8994 FLL to lock when starting
Mark Brown [Sat, 2 Jul 2011 00:24:46 +0000 (17:24 -0700)]
ASoC: Ensure we delay long enough for WM8994 FLL to lock when starting

This delay is very conservative.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Cc: stable@kernel.org
13 years agoASoC: Tegra: I2S: s/clk_get_sys/clk_get/
Stephen Warren [Fri, 1 Jul 2011 19:56:14 +0000 (13:56 -0600)]
ASoC: Tegra: I2S: s/clk_get_sys/clk_get/

The clock needed by the I2S driver is associated with the I2S device name
in the standard fashion. Hence, use clk_get(dev) instead of clk_get_sys(clk_name).

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Tegra: I2S: Ensure clock is enabled when writing regs
Stephen Warren [Fri, 1 Jul 2011 19:56:13 +0000 (13:56 -0600)]
ASoC: Tegra: I2S: Ensure clock is enabled when writing regs

The I2S controller needs a clock to respond to register writes. Without
this, register writes will at worst hang the CPU. In practice, I've only
observed writes being dropped.

Luckily, the dropped register writes historically had no effect:

TEGRA_I2S_TIMING: The value we wrote was the reset default.

TEGRA_I2S_FIFO_SCR: The default was for the FIFOs to request more data
when one slot was empty. The requested value was for the FIFOs to request
when four slots were empty. The DMA controller in the mainline kernel is
configured to burst a single entry at a time into the FIFO, hence there
was no issue. The only negative effect was on bus efficiency losses due
to an increased number of arbitration attempts.

However, in various non-upstream changes, the DMA controller now bursts
four entries at a time into the FIFO. If there is only space for one
entry, the data is simply dropped. In practice, this resulted in 3/4 of
samples being dropped, and playback at 4x the expected rate and pitch.
By fixing the clocking issue, this is solved.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: core - Make platform probe more like codec probe.
Liam Girdwood [Fri, 1 Jul 2011 15:54:08 +0000 (16:54 +0100)]
ASoC: core - Make platform probe more like codec probe.

In preparation for ASoC dynamic PCM support (AKA ASoC DSP)

Platform will also support DAPM so separate out the probe function
to simplify the code (just like the codec probe).

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Improve error reporting in Speyside WM8962 driver
Mark Brown [Wed, 29 Jun 2011 21:07:24 +0000 (14:07 -0700)]
ASoC: Improve error reporting in Speyside WM8962 driver

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Wed, 29 Jun 2011 16:49:04 +0000 (09:49 -0700)]
Merge branch 'for-3.0' into for-3.1

13 years agoASoC: Change WM9081 speaker output enable to _OUT_DRV
Mark Brown [Fri, 24 Jun 2011 11:44:45 +0000 (12:44 +0100)]
ASoC: Change WM9081 speaker output enable to _OUT_DRV

More for neatness than any actual performance improvement.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: Correct left/right swap in wm_hubs DC offset correction
Mark Brown [Tue, 7 Jun 2011 22:28:45 +0000 (23:28 +0100)]
ASoC: Correct left/right swap in wm_hubs DC offset correction

It was consistently wrong for everything except WM8993 so should be no
functional change.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.comm>
13 years agoASoC: Fix Blackfin I2S _pointer() implementation return in bounds values
Mark Brown [Mon, 13 Jun 2011 11:14:07 +0000 (12:14 +0100)]
ASoC: Fix Blackfin I2S _pointer() implementation return in bounds values

The Blackfin DMA controller can report one frame beyond the end of the
buffer in the wraparound case but ALSA requires that the pointer always
be in the buffer. Do the wraparound to handle this. A similar bug is
likely to apply to the other Blackfin PCM drivers but the code is less
obvious to inspection and I don't have a user to test.

Reported-by: Kieran O'Leary <Kieran.O'Leary@wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
13 years agoASoC: Blackfin: Add machine driver for EVAL-ADAV80X boards
Lars-Peter Clausen [Mon, 27 Jun 2011 15:04:02 +0000 (17:04 +0200)]
ASoC: Blackfin: Add machine driver for EVAL-ADAV80X boards

Add a machine driver to support the EVAL-ADAV801 and EVAL-ADAV803 boards
connected to a Analog Devices BF5XX evaluation board.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Add ADAV80x codec driver
Lars-Peter Clausen [Mon, 27 Jun 2011 15:04:01 +0000 (17:04 +0200)]
ASoC: Add ADAV80x codec driver

This patch adds support for the Analog Devices ADAV801 and ADAV803 audio codec.

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>
13 years agoASoC: SAMSUNG: Add idma related register definition
Sangbeom Kim [Mon, 20 Jun 2011 07:36:19 +0000 (16:36 +0900)]
ASoC: SAMSUNG: Add idma related register definition

This patch add idma related register definitions to support idma.

Signed-off-by: Sangbeom Kim <sbkim73@samsung.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SAMSUNG: Move I2S common register definition
Sangbeom Kim [Mon, 20 Jun 2011 07:36:18 +0000 (16:36 +0900)]
ASoC: SAMSUNG: Move I2S common register definition

I2S registers can be used for control idma.
Previously, register is defined in i2s.c.
For sharing the registers, It is moved to i2s-regs.h

Signed-off-by: Sangbeom Kim <sbkim73@samsung.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SAMSUNG: Add WM8994 PCM Machine driver
Sangbeom Kim [Mon, 20 Jun 2011 08:29:29 +0000 (17:29 +0900)]
ASoC: SAMSUNG: Add WM8994 PCM Machine driver

This patch add WM8994 PCM machine driver to support PCM audio
on SMDKV310, SMDKC210 boards.
Playback and Capture supports 8kHz sampling rates.
and It is tested on SMDKV310, SMDKC210.

Signed-off-by: Sangbeom Kim <sbkim73@samsung.com>
Acked-by: Jassi Brar <jaswinder.singh@linaro.org>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Thu, 23 Jun 2011 19:10:28 +0000 (20:10 +0100)]
Merge branch 'for-3.0' into for-3.1

13 years agoASoC: pxa-ssp: Correct check for stream presence
Daniel Mack [Wed, 22 Jun 2011 18:48:25 +0000 (20:48 +0200)]
ASoC: pxa-ssp: Correct check for stream presence

Don't rely on the codec's channels_min information to decide wheter or
not allocate a substream's DMA buffer. Rather check if the substream
itself was allocated previously.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
13 years agoASoC: imx: add missing module informations
Arnaud Patard (Rtp) [Wed, 22 Jun 2011 20:21:49 +0000 (22:21 +0200)]
ASoC: imx: add missing module informations

- add some modules aliases
- add module license to avoid tainted kernel when loading the imx-pcm-audio
  driver

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: imx: Remove unused Kconfig SND_MXC_SOC_SSI entry
Arnaud Patard (Rtp) [Wed, 22 Jun 2011 20:21:48 +0000 (22:21 +0200)]
ASoC: imx: Remove unused Kconfig SND_MXC_SOC_SSI entry

SND_MXC_SOC_SSI looks to be unused, so kill it.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Add basic WM8918 support
Mark Brown [Wed, 22 Jun 2011 19:07:24 +0000 (20:07 +0100)]
ASoC: Add basic WM8918 support

The WM8918 is register compatible with the WM8904 with a subset of the
functionality. Add the device ID, a subsequent patch will ensure that only
the relevant functionality is exported to userspace.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: Allow suppression of series updates on wm_hubs devices
Mark Brown [Tue, 7 Jun 2011 22:32:46 +0000 (23:32 +0100)]
ASoC: Allow suppression of series updates on wm_hubs devices

Some devices do not support manual updates of the DC servo.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: Trigger wm_hubs series update startup off a separate flag
Mark Brown [Tue, 7 Jun 2011 22:23:52 +0000 (23:23 +0100)]
ASoC: Trigger wm_hubs series update startup off a separate flag

Allowing the two to be used independently.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: add WM8782 ADC Codec Driver
Johannes Stezenbach [Wed, 22 Jun 2011 12:59:25 +0000 (14:59 +0200)]
ASoC: add WM8782 ADC Codec Driver

Signed-off-by: Johannes Stezenbach <js@sig21.net>
[zonque@gmail.com: transform to new ASoC structure]
Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: add STA32X codec driver
Johannes Stezenbach [Wed, 22 Jun 2011 12:59:24 +0000 (14:59 +0200)]
ASoC: add STA32X codec driver

Signed-off-by: Johannes Stezenbach <js@sig21.net>
[zonque@gmail.com: transform to new ASoC structure]
Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: codecs: Max98095: Fix logging of hardware revision.
Taylor Hutt [Mon, 20 Jun 2011 18:54:32 +0000 (11:54 -0700)]
ASoC: codecs: Max98095: Fix logging of hardware revision.

The base hardware revision of the Maxim 98095 part is 0x40; the code
which outputs the revision of the hardware has been updated to
properly use uppercase alphabetic values for the revision numbers.

Also, the use of a constant for the length 'max98095_dai' has been
replaced with ARRAY_SIZE().

Signed-off-by: Taylor Hutt <thutt@chromium.org>
Acked-by: Peter Hsiang <peter.hsiang@maxim-ic.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: adau1701: signedness bug in adau1701_write()
Dan Carpenter [Mon, 20 Jun 2011 07:11:25 +0000 (10:11 +0300)]
ASoC: adau1701: signedness bug in adau1701_write()

"ret" is supposed to be signed here.  The current code will only
return -EIO on error, instead of a more appropriate error code such
as -EAGAIN etc.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Fix DAPM sequence run for per-widget I/O methods
Mark Brown [Sun, 19 Jun 2011 12:49:28 +0000 (13:49 +0100)]
ASoC: Fix DAPM sequence run for per-widget I/O methods

Previously we were using the DAPM context rather than a widget as the
argument for update_bits() so we didn't need to care that our list walk
of widgets left us one beyond the end of the list. Now we're using them
for the register update we need to make sure we're pointing at an actual
widget not the list_head.

Fix originally suggested by Liam on IM.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: Remove adau1701 from SND_SOC_ALL_CODECS due to Sigma dependency
Mark Brown [Sat, 18 Jun 2011 14:31:38 +0000 (15:31 +0100)]
ASoC: Remove adau1701 from SND_SOC_ALL_CODECS due to Sigma dependency

The Sigma code is in drivers/firmware which is only included on a very
small subset of architectures and so ends up breaking the build on
others.  There's a pending patch to make the directory build as standard
but it's not merged yet.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Add adau* drivers to the Analog Devices file patterns
Mark Brown [Fri, 17 Jun 2011 10:22:27 +0000 (11:22 +0100)]
ASoC: Add adau* drivers to the Analog Devices file patterns

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
13 years agoASoC: Blackfin: allow SPI for SSM2602 parts
Mike Frysinger [Fri, 17 Jun 2011 02:24:15 +0000 (22:24 -0400)]
ASoC: Blackfin: allow SPI for SSM2602 parts

This board has hardware switches for selecting SPI or I2C, so don't
require I2C for this driver.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: AD1836: rename suspend/resume funcs
Barry Song [Wed, 15 Jun 2011 19:29:22 +0000 (15:29 -0400)]
ASoC: AD1836: rename suspend/resume funcs

Use less specific names for suspend/resume to match the probe/remove funcs
where these are now used.

Signed-off-by: Barry Song <barry.song@analog.com>
Signed-off-by: Scott Jiang <scott.jiang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: AD1836: fix codec name
Mike Frysinger [Wed, 15 Jun 2011 19:29:21 +0000 (15:29 -0400)]
ASoC: AD1836: fix codec name

The codec name should not have a "-codec" suffix since this is not part of
a MFD.  This was incorrectly changed during the multi-component updated.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: AD1836: fix intermixed tab/space indentation
Mike Frysinger [Wed, 15 Jun 2011 19:29:20 +0000 (15:29 -0400)]
ASoC: AD1836: fix intermixed tab/space indentation

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: AD1836: drop unnecessary spi register check
Mike Frysinger [Wed, 15 Jun 2011 19:29:19 +0000 (15:29 -0400)]
ASoC: AD1836: drop unnecessary spi register check

The only thing the init func does is register a spi driver, so if that
fails, we return the value back up to the caller who will display an
error message for us.  So drop the redundant checking/message.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: AD1836: clean up comment headers
Mike Frysinger [Wed, 15 Jun 2011 19:29:23 +0000 (15:29 -0400)]
ASoC: AD1836: clean up comment headers

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Blackfin: Add bf5xx-adau1701 machine driver
Lars-Peter Clausen [Mon, 13 Jun 2011 13:26:21 +0000 (15:26 +0200)]
ASoC: Blackfin: Add bf5xx-adau1701 machine driver

Add a machine driver to support the ADAU1701 SigmaDSP processors on
Analog Devices BF5XX evaluation boards.

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>
13 years agoASoC: Add ADAU1701 codec driver
Lars-Peter Clausen [Mon, 13 Jun 2011 13:26:20 +0000 (15:26 +0200)]
ASoC: Add ADAU1701 codec driver

This patch adds support for the Analog Devices ADAU1701 SigmaDSP.

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>
13 years agoASoC: Clean up some coding style nits in the bf5xx-i2s-pcm driver
Mark Brown [Mon, 13 Jun 2011 16:50:18 +0000 (17:50 +0100)]
ASoC: Clean up some coding style nits in the bf5xx-i2s-pcm driver

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: dapm - Refactor widget IO functions in preparation for platform widgets.
Liam Girdwood [Mon, 13 Jun 2011 18:37:36 +0000 (19:37 +0100)]
ASoC: dapm - Refactor widget IO functions in preparation for platform widgets.

This time with soc_widget_update_bits reflecting recent soc_update_bits changes.

Currently widget IO is tightly coupled to the CODEC drivers. Future platform DSP
devices have mixer components that can alter power usage and hence require full
DAPM support.

This provides a generic widget IO operation wrapper in preparation for
future patches that implement platform driver DAPM.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Fix mismerge with release branch
Mark Brown [Tue, 14 Jun 2011 08:51:50 +0000 (09:51 +0100)]
ASoC: Fix mismerge with release branch

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Mon, 13 Jun 2011 18:21:09 +0000 (19:21 +0100)]
Merge branch 'for-3.0' into for-3.1

Trival fixup for move of I/O code into separate file.

Conflicts:
sound/soc/soc-cache.c

13 years agoASoC: Remove unused and about to be broken SND_SOC_CUSTOM I/O bus
Mark Brown [Mon, 13 Jun 2011 18:05:58 +0000 (19:05 +0100)]
ASoC: Remove unused and about to be broken SND_SOC_CUSTOM I/O bus

This will be removed in -next so let's drop it from mainline as soon as
we can in order to minimise surprises.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Don't use codec->control_data in bulk write
Mark Brown [Mon, 13 Jun 2011 17:44:52 +0000 (18:44 +0100)]
ASoC: Don't use codec->control_data in bulk write

In order to facilitate merging with the register map I/O replace the use
of control_data for the bulk writes with direct lookup of the client data
from the device.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: Add weak routes for sidetone style paths
Mark Brown [Mon, 13 Jun 2011 15:42:29 +0000 (16:42 +0100)]
ASoC: Add weak routes for sidetone style paths

Normally DAPM will power up any connected audio path. This is not ideal
for sidetone paths as with sidetone paths the audio path is not wanted in
itself, it is only desired if the two paths it provides a sidetone between
are both active. If the sidetone path causes a power up then it can be
hard to minimise pops as we first power up either the sidetone or the main
output path and then power the other, with the second power up potentially
introducing a DC offset.

Address this by introducing the concept of a weak path. If a path is marked
as weak then DAPM will ignore that path when walking the graph, though all
the relevant controls are still available to the application layer to allow
these paths to be configured.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: Move register I/O code into a separate file
Mark Brown [Mon, 13 Jun 2011 16:49:55 +0000 (17:49 +0100)]
ASoC: Move register I/O code into a separate file

For clarity and to help ongoing refactoring in this area create a new file
to contain the physical I/O functions, separating them out from the cache
operations.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: Factor out redundant read() functions
Mark Brown [Fri, 10 Jun 2011 18:42:56 +0000 (19:42 +0100)]
ASoC: Factor out redundant read() functions

We've got a whole bunch of functions which just call straight through to
do_hw_read(). Simplify this situation by removing them and using hw_read()
directly.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
13 years agoASoC: SMDKV310: Enable SPDIF device
Naveen Krishna Chatradhi [Fri, 10 Jun 2011 06:34:27 +0000 (12:04 +0530)]
ASoC: SMDKV310: Enable SPDIF device

Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Fri, 10 Jun 2011 10:03:54 +0000 (11:03 +0100)]
Merge branch 'for-3.0' into for-3.1

13 years agosound/atmel_ssc_dai: add a missing space to an error message
Uwe Kleine-König [Thu, 9 Jun 2011 22:41:48 +0000 (00:41 +0200)]
sound/atmel_ssc_dai: add a missing space to an error message

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SAMSUNG: Fix the incorrect referencing of I2SCON register
Sangbeom Kim [Fri, 10 Jun 2011 01:36:54 +0000 (10:36 +0900)]
ASoC: SAMSUNG: Fix the incorrect referencing of I2SCON register

If DMA active status should be checked, I2SCON register should be referenced.
In this patch, Fix the incorrect referencing of I2SCON register.

Reported-by : Lakkyung Jung <lakkyung.jung@samsung.com>
Signed-off-by: Sangbeom Kim <sbkim73@samsung.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
13 years agoASoC: pcm - rename snd_codec_close() to snd_pcm_close().
Liam Girdwood [Thu, 9 Jun 2011 16:04:59 +0000 (17:04 +0100)]
ASoC: pcm - rename snd_codec_close() to snd_pcm_close().

Make sure we follow naming convention for all PCM ops.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: core - PCM mutex per rtd
Liam Girdwood [Thu, 9 Jun 2011 16:04:39 +0000 (17:04 +0100)]
ASoC: core - PCM mutex per rtd

In preparation for the new ASoC Dynamic PCM support (AKA DSP support).

The new ASoC Dynamic PCM core allows DAIs to be dynamically re-routed
at runtime between the PCM device end (or Frontend - FE) and the physical DAI
(Backend - BE) using regular kcontrols (just like a hardware CODEC routes
audio in the analog domain). The Dynamic PCM core therefore must be
able to call PCM operations for both the Frontend and Backend(s) DAIs at
the same time.

Currently we have a global pcm_mutex that is used to serialise
the ASoC PCM operations. This patch removes the global mutex
and adds a mutex per RTD allowing the PCM operations to be reentrant and
allow control of more than one DAI at at time. e.g. a frontend PCM hw_params()
could configure multiple backend DAI hw_params() with similar or different
hw parameters at the same time.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-3.0' into for-3.1
Mark Brown [Thu, 9 Jun 2011 14:07:42 +0000 (15:07 +0100)]
Merge branch 'for-3.0' into for-3.1