firefly-linux-kernel-4.4.55.git
13 years agoASoC: sst v2: Add sn95031 codec driver
Vinod Koul [Tue, 4 Jan 2011 14:46:07 +0000 (20:16 +0530)]
ASoC: sst v2: Add sn95031 codec driver

This patch adds the sn95031 asoc codec driver. This driver currently
supports only playback.  Capture and jack detection to be added later

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Fix the device references to codec and platform drivers
Harsha Priya [Wed, 5 Jan 2011 06:04:51 +0000 (11:34 +0530)]
ASoC: Fix the device references to codec and platform drivers

The soc-core takes the platform and codec driver reference during probe. Few of
these references are not released during remove. This cause the platform and
codec driver module unload to fail.

This patch fixes by the taking only one reference to platform and codec module
during probe and releases them correctly during remove. This allows load/unload
properly

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Remove needless inclusion of tlv320aic3x.h from machine drivers
Jarkko Nikula [Wed, 5 Jan 2011 10:05:44 +0000 (12:05 +0200)]
ASoC: Remove needless inclusion of tlv320aic3x.h from machine drivers

After multi-component conversion these machine drivers don't actually need
anything from sound/soc/codecs/tlv320aic3x.h so don't include it.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-2.6.37' into for-2.6.38
Mark Brown [Wed, 5 Jan 2011 10:06:55 +0000 (10:06 +0000)]
Merge branch 'for-2.6.37' into for-2.6.38

Conflicts:
sound/soc/samsung/smartq_wm8987.c

13 years agoASoC: Fix SmartQ compilation
Maurus Cuelenaere [Sun, 2 Jan 2011 19:48:23 +0000 (20:48 +0100)]
ASoC: Fix SmartQ compilation

This makes the SmartQ sound driver compile again with recent ASoC changes.

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Change Samsung Kconfig from ASOC_ to SND_SOC_
Mark Brown [Sun, 2 Jan 2011 14:07:46 +0000 (14:07 +0000)]
ASoC: Change Samsung Kconfig from ASOC_ to SND_SOC_

The rest of ASoC is using SND_SOC_ as the prefix for all the Kconfig
symbols so do so for the new Samsung drivers too, rather than using
ASOC_ as they currently are.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Seungwhan Youn <sw.youn@samsung.com>
Acked-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: sh: fsi-da7210: remove unnecessary format settings
Kuninori Morimoto [Tue, 28 Dec 2010 05:55:45 +0000 (14:55 +0900)]
ASoC: sh: fsi-da7210: remove unnecessary format settings

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agofbdev: sh_mobile_hdmi: fixup compile error
Kuninori Morimoto [Mon, 27 Dec 2010 04:42:20 +0000 (13:42 +0900)]
fbdev: sh_mobile_hdmi: fixup compile error

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Yet more x86 tracepoint workarounds
Mark Brown [Wed, 29 Dec 2010 13:05:21 +0000 (13:05 +0000)]
ASoC: Yet more x86 tracepoint workarounds

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-2.6.37' into for-2.6.38
Mark Brown [Tue, 28 Dec 2010 23:42:53 +0000 (23:42 +0000)]
Merge branch 'for-2.6.37' into for-2.6.38

13 years agoASoC: codecs: Remove unused reg_cache fields from device structs
Lars-Peter Clausen [Tue, 28 Dec 2010 20:37:55 +0000 (21:37 +0100)]
ASoC: codecs: Remove unused reg_cache fields from device structs

The multi-component patch(commit f0fba2ad1) moved the allocation of the
register cache from the driver to the ASoC core. Most drivers where adjusted to
this, but there are quite a few drivers left which now have an unused reg_cache field in
their private device struct.
This patch removes these unused fields.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: codecs: wm8753: Fix register cache incoherency
Lars-Peter Clausen [Tue, 28 Dec 2010 20:38:03 +0000 (21:38 +0100)]
ASoC: codecs: wm8753: Fix register cache incoherency

The multi-component patch(commit f0fba2ad1) moved the allocation of the
register cache from the driver to the ASoC core. Most drivers where adjusted to
this, but the wm8753 driver still uses its own register cache for its
private functions, while functions from the ASoC core use the generic cache.
Furthermore the generic cache uses zero-based numbering while the wm8753 cache
uses one-based numbering.
Thus we end up with two from each other incoherent caches, which leads to undefined
behaviour and crashes.
This patch fixes the issue by changing the wm8753 driver to use the generic
register cache in its private functions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: codecs: wm9090: Fix register cache incoherency
Lars-Peter Clausen [Tue, 28 Dec 2010 20:38:02 +0000 (21:38 +0100)]
ASoC: codecs: wm9090: Fix register cache incoherency

The multi-component patch(commit f0fba2ad1) moved the allocation of the
register cache from the driver to the ASoC core. Most drivers where adjusted to
this, but the wm9090 driver still uses its own register cache for its
private functions, while functions from the ASoC core use the generic cache.
Thus we end up with two from each other incoherent caches, which can lead to
undefined behaviour.
This patch fixes the issue by changing the wm9090 driver to use the
generic register cache in its private functions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org (for 2.6.37 only)
13 years agoASoC: codecs: wm8962: Fix register cache incoherency
Lars-Peter Clausen [Tue, 28 Dec 2010 20:38:01 +0000 (21:38 +0100)]
ASoC: codecs: wm8962: Fix register cache incoherency

The multi-component patch(commit f0fba2ad1) moved the allocation of the
register cache from the driver to the ASoC core. Most drivers where adjusted to
this, but the wm8962 driver still uses its own register cache for its
private functions, while functions from the ASoC core use the generic cache.
Thus we end up with two from each other incoherent caches, which can lead to
undefined behaviour.
This patch fixes the issue by changing the wm8962 driver to use the
generic register cache in its private functions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org (for 2.6.37 only)
13 years agoASoC: codecs: wm8955: Fix register cache incoherency
Lars-Peter Clausen [Tue, 28 Dec 2010 20:38:00 +0000 (21:38 +0100)]
ASoC: codecs: wm8955: Fix register cache incoherency

The multi-component patch(commit f0fba2ad1) moved the allocation of the
register cache from the driver to the ASoC core. Most drivers where adjusted to
this, but the wm8955 driver still uses its own register cache for its
private functions, while functions from the ASoC core use the generic cache.
Thus we end up with two from each other incoherent caches, which can lead to
undefined behaviour.
This patch fixes the issue by changing the wm8955 driver to use the
generic register cache in its private functions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org (for 2.6.37 only)
13 years agoASoC: codecs: wm8904: Fix register cache incoherency
Lars-Peter Clausen [Tue, 28 Dec 2010 20:37:59 +0000 (21:37 +0100)]
ASoC: codecs: wm8904: Fix register cache incoherency

The multi-component patch(commit f0fba2ad1) moved the allocation of the
register cache from the driver to the ASoC core. Most drivers where adjusted to
this, but the wm8904 driver still uses its own register cache for its
private functions, while functions from the ASoC core use the generic cache.
Thus we end up with two from each other incoherent caches, which can lead to
undefined behaviour.
This patch fixes the issue by changing the wm8904 driver to use the
generic register cache in its private functions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Cc: Ian Lartey <ian@opensource.wolfsonmicro.com>
Cc: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org (for 2.6.37 only)
13 years agoASoC: codecs: wm8741: Fix register cache incoherency
Lars-Peter Clausen [Tue, 28 Dec 2010 20:37:58 +0000 (21:37 +0100)]
ASoC: codecs: wm8741: Fix register cache incoherency

The multi-component patch(commit f0fba2ad1) moved the allocation of the
register cache from the driver to the ASoC core. Most drivers where adjusted to
this, but the wm8741 driver still uses its own register cache for its
private functions, while functions from the ASoC core use the generic cache.
Thus we end up with two from each other incoherent caches, which can lead to
undefined behaviour.
This patch fixes the issue by changing the wm8741 driver to use the
generic register cache in its private functions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Cc: Ian Lartey <ian@opensource.wolfsonmicro.com>
Cc: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org (for 2.6.37 only)
13 years agoASoC: codecs: wm8523: Fix register cache incoherency
Lars-Peter Clausen [Tue, 28 Dec 2010 20:37:57 +0000 (21:37 +0100)]
ASoC: codecs: wm8523: Fix register cache incoherency

The multi-component patch(commit f0fba2ad1) moved the allocation of the
register cache from the driver to the ASoC core. Most drivers where adjusted to
this, but the wm8523 driver still uses its own register cache for its
private functions, while functions from the ASoC core use the generic cache.
Thus we end up with two from each other incoherent caches, which can lead to
undefined behaviour.
This patch fixes the issue by changing the wm8523 driver to use the
generic register cache in its private functions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Cc: Ian Lartey <ian@opensource.wolfsonmicro.com>
Cc: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org (for 2.6.37 only)
13 years agoASoC: codecs: max98088: Fix register cache incoherency
Lars-Peter Clausen [Tue, 28 Dec 2010 20:37:56 +0000 (21:37 +0100)]
ASoC: codecs: max98088: Fix register cache incoherency

The multi-component patch(commit f0fba2ad1) moved the allocation of the
register cache from the driver to the ASoC core. Most drivers where adjusted to
this, but the max98088 driver still uses its own register cache for its
private functions, while functions from the ASoC core use the generic cache.
Thus we end up with two from each other incoherent caches, which can lead to
undefined behaviour.
This patch fixes the issue by changing the max98088 driver to use the
generic register cache in its private functions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Cc: Peter Hsiang <Peter.Hsiang@maxim-ic.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org (for 2.6.37 only)
13 years agoASoC: codecs: Add missing control_type initialization
Lars-Peter Clausen [Tue, 28 Dec 2010 20:08:57 +0000 (21:08 +0100)]
ASoC: codecs: Add missing control_type initialization

Some codec drivers do not initialize the control_type field in their private
device struct, but still use it when calling snd_soc_codec_set_cache_io.
This patch fixes the issue by properly initializing it in the drivers probe
functions.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org (for 2.6.37 only)
13 years agoASoC: One more x86 typo fix
Mark Brown [Tue, 28 Dec 2010 02:14:25 +0000 (02:14 +0000)]
ASoC: One more x86 typo fix

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'topic/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
Mark Brown [Mon, 27 Dec 2010 17:51:52 +0000 (17:51 +0000)]
Merge branch 'topic/asoc' of git://git./linux/kernel/git/tiwai/sound-2.6 into for-2.6.38

13 years agoASoC: Fix double comment start
Mark Brown [Fri, 24 Dec 2010 16:59:36 +0000 (16:59 +0000)]
ASoC: Fix double comment start

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Fix typo in x86 workaround
Mark Brown [Mon, 27 Dec 2010 15:30:45 +0000 (15:30 +0000)]
ASoC: Fix typo in x86 workaround

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Remove WM8995 write sequencer bitfield definitions
Mark Brown [Thu, 23 Dec 2010 12:03:07 +0000 (12:03 +0000)]
ASoC: Remove WM8995 write sequencer bitfield definitions

They're very verbose and extremely repetitive so bulk up the kernel more
than is ideal. If required we can readd with WRITE_SEQUENCER_n type
definitions that cover the entire register bank in a few defines.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Remove incorrect WM8903 erratum workaround
Mark Brown [Thu, 23 Dec 2010 11:17:24 +0000 (11:17 +0000)]
ASoC: Remove incorrect WM8903 erratum workaround

Due to a typographical error in the erratum workaround it was never
functional so just remove it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoMerge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Takashi Iwai [Thu, 23 Dec 2010 12:39:59 +0000 (13:39 +0100)]
Merge branch 'for-2.6.38' of git://git./linux/kernel/git/broonie/sound-2.6 into topic/asoc

13 years agoASoC: ifdef out trace points from modules for x86
Mark Brown [Thu, 23 Dec 2010 01:56:20 +0000 (01:56 +0000)]
ASoC: ifdef out trace points from modules for x86

No idea why this works on ARM but not x86.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Add initial WM8995 driver
Dimitris Papastamos [Wed, 22 Dec 2010 11:33:11 +0000 (11:33 +0000)]
ASoC: Add initial WM8995 driver

The WM8995 is a digital audio hub CODEC designed for smartphones.
The current driver supports most of the basic functionality of the
WM8995.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: don't pass the string as the format arguemtn for dev_info()
Takashi Iwai [Wed, 22 Dec 2010 13:08:40 +0000 (14:08 +0100)]
ASoC: don't pass the string as the format arguemtn for dev_info()

Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoASoC: SAMSUNG: Debug wrong parameter
Seungwhan Youn [Wed, 22 Dec 2010 09:46:24 +0000 (18:46 +0900)]
ASoC: SAMSUNG: Debug wrong parameter

snd_soc_jack_new()'s first parameter was changed from snd_soc_card to
snd_soc_codec after Multi-Component support patches. So, this patch
fixes parameter that we missed.

Signed-off-by: Seungwhan Youn <sw.youn@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Add jack IRQ trace to 88pm860x driver
Mark Brown [Sun, 5 Dec 2010 12:53:08 +0000 (12:53 +0000)]
ASoC: Add jack IRQ trace to 88pm860x driver

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Trace Wolfson jack detection IRQs
Mark Brown [Sun, 5 Dec 2010 12:50:12 +0000 (12:50 +0000)]
ASoC: Trace Wolfson jack detection IRQs

Add jack detection interrupt trace to Wolfson CODEC drivers.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Use delayed work to debounce WM8350 jack IRQs
Mark Brown [Sun, 5 Dec 2010 12:41:52 +0000 (12:41 +0000)]
ASoC: Use delayed work to debounce WM8350 jack IRQs

This avoids blocking the IRQ thread and allows further bounces to extend
the debounce time.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: sh: fsi: modify improper dependent
Kuninori Morimoto [Mon, 20 Dec 2010 01:03:13 +0000 (10:03 +0900)]
ASoC: sh: fsi: modify improper dependent

FSI-AK4642 and FSI-DA7210 are depend on I2C, not I2C_SH_MOBILE

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Make LZO cache compression optional
Mark Brown [Tue, 21 Dec 2010 17:19:56 +0000 (17:19 +0000)]
ASoC: Make LZO cache compression optional

Make LZO cache compression optional as it pulls in the kernel wide LZO
implementation and rbtree compression is generally more efficient for
typical register maps, especially in terms of CPU performance.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: If we can't find a cache compression type default to flat
Mark Brown [Tue, 21 Dec 2010 17:09:48 +0000 (17:09 +0000)]
ASoC: If we can't find a cache compression type default to flat

This makes it easier to make cache types build time configurable as we
don't have a hard dependency on a given cache being built in.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Fix WM8994/58 3D stereo control definitions
Mark Brown [Mon, 20 Dec 2010 14:35:09 +0000 (14:35 +0000)]
ASoC: Fix WM8994/58 3D stereo control definitions

Cut'n'paste in the register names.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Remove some unused defines from WM8903
Mark Brown [Mon, 20 Dec 2010 20:53:25 +0000 (20:53 +0000)]
ASoC: Remove some unused defines from WM8903

These would have been used if we'd done manual clock divider setup,
but we didn't.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: SMDKV310: Add I2S support
Jassi Brar [Mon, 20 Dec 2010 02:05:57 +0000 (11:05 +0900)]
ASoC: SMDKV310: Add I2S support

Add ASoC machine driver for SMDKV310/C210 boards that have
a WM8994 attached to I2S-0.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SMDKV310: Enable AC97 device
Jassi Brar [Mon, 20 Dec 2010 02:05:56 +0000 (11:05 +0900)]
ASoC: SMDKV310: Enable AC97 device

Enable AC97 audio device on SMDKV310/C210.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SMDKC110: Enable I2S device
Jassi Brar [Mon, 20 Dec 2010 02:05:55 +0000 (11:05 +0900)]
ASoC: SMDKC110: Enable I2S device

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SMDKV210: Enable I2S device
Jassi Brar [Mon, 20 Dec 2010 02:05:53 +0000 (11:05 +0900)]
ASoC: SMDKV210: Enable I2S device

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SMDK6442: Enable I2S device
Jassi Brar [Mon, 20 Dec 2010 02:05:52 +0000 (11:05 +0900)]
ASoC: SMDK6442: Enable I2S device

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SMDK6450: Enable I2S device
Jassi Brar [Mon, 20 Dec 2010 02:05:51 +0000 (11:05 +0900)]
ASoC: SMDK6450: Enable I2S device

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SMDK6440: Enable I2S device
Jassi Brar [Mon, 20 Dec 2010 02:05:50 +0000 (11:05 +0900)]
ASoC: SMDK6440: Enable I2S device

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: SMDK_WM8580: Make I2S0 as default dai
Jassi Brar [Mon, 20 Dec 2010 02:05:48 +0000 (11:05 +0900)]
ASoC: SMDK_WM8580: Make I2S0 as default dai

Since most newer SMDKs have I2S0 routed to the WM8580's Primary DAI,
future changes can be minimized if the default CPU DAIs are set to
0, rather than 2.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Samsung: I2S: Flush FIFO after stop
Jassi Brar [Mon, 20 Dec 2010 02:05:47 +0000 (11:05 +0900)]
ASoC: Samsung: I2S: Flush FIFO after stop

Flush the FIFO while stopping the channel rather than starting.
This saves time during stream start and keeps the FIFOs clean
when the channel is idling.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Samsung: Set default rclk source rate
Jassi Brar [Mon, 20 Dec 2010 02:05:46 +0000 (11:05 +0900)]
ASoC: Samsung: Set default rclk source rate

Since the rclk_srcrate is cleared upon startup, it should be
initialized upon second and later 'open' calls to the device
with same root-clock source. The bug is otherwise visible in
Codec-Slave mode.

Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'topic/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
Mark Brown [Fri, 17 Dec 2010 17:37:28 +0000 (17:37 +0000)]
Merge branch 'topic/asoc' of git://git./linux/kernel/git/tiwai/sound-2.6 into for-2.6.38

13 years agoASoC: soc-dapm: Introduce the new snd_soc_dapm_virt_mux type
Dimitris Papastamos [Thu, 16 Dec 2010 15:53:39 +0000 (15:53 +0000)]
ASoC: soc-dapm: Introduce the new snd_soc_dapm_virt_mux type

This new type is a virtual version of snd_soc_dapm_mux.  It is used
when a backing register value is not necessary for deciding which
input path to connect.  A simple virtual enumeration control e.g.
SOC_DAPM_ENUM_VIRT() can be exposed to userspace which will be used
to choose which path to connect.

The snd_soc_dapm_virt_mux type ensures that during the initial
path setup, the first (which is also the default) input path will
be connected.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc...
Takashi Iwai [Fri, 17 Dec 2010 15:43:17 +0000 (16:43 +0100)]
Merge branch 'for-2.6.38' of git://git./linux/kernel/git/lrg/asoc-2.6 into topic/asoc

13 years agoASoC: sh: fsi: Add over/under run counter
Kuninori Morimoto [Fri, 17 Dec 2010 03:55:22 +0000 (12:55 +0900)]
ASoC: sh: fsi: Add over/under run counter

Current FSI driver had printed under/over run error
if status register have its error bit.
But runtime print cause the next error
because print out is slow.
This patch add error counter and print error when sound stop

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: sh: fsi: move fsi_irq_enable function to fsi_dai_trigger
Kuninori Morimoto [Fri, 17 Dec 2010 03:52:56 +0000 (12:52 +0900)]
ASoC: sh: fsi: move fsi_irq_enable function to fsi_dai_trigger

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Do DAPM control updates in the middle of DAPM sequences
Mark Brown [Tue, 14 Dec 2010 16:13:57 +0000 (16:13 +0000)]
ASoC: Do DAPM control updates in the middle of DAPM sequences

Attempt to minimise audible effects from mixer and mux updates by
implementing the actual register changes between powering down widgets
that have become unused and powering up widgets that are newly used.

This means that we're making the change with the minimum set of widgets
powered, that the input path is connected when we're powering up widgets
(so things like DC offset correction can run with their signal active)
and that we bring things down to cold before switching away.  Since
hardware tends to be designed for the power on/off case more than for
dynamic reconfiguration this should minimise pops and clicks during
reconfiguration while active.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Tested-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Add ramp up/down volume for HS and HF
Margarita Olaya Cabrera [Wed, 15 Dec 2010 01:00:21 +0000 (19:00 -0600)]
ASoC: twl6040: Add ramp up/down volume for HS and HF

Add ramp functions for the headset and handsfree outputs
in order to reduce the pops during power on/off sequences.

In order to give more control to volume ramp, step size and delay
between steps can be specified.

The patches are based on wm8350 implementation from Liam
Girdwood.

Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Set default gains to minimun value
Olaya, Margarita [Wed, 15 Dec 2010 01:18:36 +0000 (19:18 -0600)]
ASoC: twl6040: Set default gains to minimun value

Updated default values to improve power consumption.

Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Extend DAPM to handle power changes on cross-device paths
Jarkko Nikula [Tue, 14 Dec 2010 10:18:32 +0000 (12:18 +0200)]
ASoC: Extend DAPM to handle power changes on cross-device paths

Power change event like stream start/stop or kcontrol change in a
cross-device path originates from one device but codec bias and widget power
changes must be populated to another devices on that path as well.

This patch modifies the dapm_power_widgets so that all the widgets on a
sound card are checked for a power change, not just those that are specific
to originating device. Also bias management is extended to check all the
devices. Only exception in bias management are widgetless codecs whose bias
state is changed only if power change is originating from that context.

DAPM context test is added to dapm_seq_run to take care of if power sequence
extends to an another device which requires separate register writes.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Move widgets from DAPM context to snd_soc_card
Jarkko Nikula [Tue, 14 Dec 2010 10:18:31 +0000 (12:18 +0200)]
ASoC: Move widgets from DAPM context to snd_soc_card

Decoupling widgets from DAPM context is required when extending the ASoC
core to cross-device paths. Even the list of widgets are now kept in
struct snd_soc_card, the widget listing in sysfs and debugs remain sorted
per device.

This patch makes possible to build cross-device paths but does not extend
yet the DAPM to handle codec bias and widget power changes of an another
device.

Cross-device paths are registered by listing the widgets from device A in
a map for device B. In case of conflicting widget names between the devices,
a uniform name prefix is needed to separate them. See commit ead9b91
"ASoC: Add optional name_prefix for kcontrol, widget and route names" for
help.

An example below shows a path that connects MONO out of A into Line In of B:

static const struct snd_soc_dapm_route mapA[] = {
{"MONO", NULL, "DAC"},
};

static const struct snd_soc_dapm_route mapB[] = {
{"Line In", NULL, "MONO"},
};

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Move DAPM paths from DAPM context to snd_soc_card
Jarkko Nikula [Tue, 14 Dec 2010 10:18:30 +0000 (12:18 +0200)]
ASoC: Move DAPM paths from DAPM context to snd_soc_card

Decoupling DAPM paths from DAPM context is a first prerequisite when
extending ASoC core to cross-device paths. This patch is almost a nullop and
does not allow to construct cross-device setup but the path clean-up part in
dapm_free_widgets is prepared to remove cross-device paths between a device
being removed and others.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Remove unused DAPM_DOUBLE control types
Mark Brown [Tue, 14 Dec 2010 17:16:56 +0000 (17:16 +0000)]
ASoC: Remove unused DAPM_DOUBLE control types

There are no users of these and it's not clear what they would do given
the mono flow modelling which DAPM does. If need arises we can add them
again.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Use correct offset for LineInAmp Right
Misael Lopez Cruz [Sat, 11 Dec 2010 03:06:34 +0000 (21:06 -0600)]
ASoC: twl6040: Use correct offset for LineInAmp Right

Gain for LineInAmp Right uses LINEGAIN[5:3], which means that
offset for right channel should be 4.

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Fix TLV dB step values for gains
Olaya, Margarita [Sat, 11 Dec 2010 03:06:39 +0000 (21:06 -0600)]
ASoC: twl6040: Fix TLV dB step values for gains

Some gains were incorrectly configured for dB values.

Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Increase timeout for power up
Jorge Eduardo Candelaria [Sat, 11 Dec 2010 03:06:30 +0000 (21:06 -0600)]
ASoC: twl6040: Increase timeout for power up

After coming back from suspend, the timeout waiting for Phoenix
chip to complete its power up sequence is not enough, which leaves
the codec cache value for some registers in an outdated state.

Increase the timeout value to wait for the power up sequence
to correclty complete.

Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Enable plug detection interrupts
Misael Lopez Cruz [Sat, 11 Dec 2010 03:06:24 +0000 (21:06 -0600)]
ASoC: twl6040: Enable plug detection interrupts

Enable plug detection interrupt mask in order to get headset
PLUGINT/UNPLUGINT interrupts.

Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Clear interrupt status at boot time
Jorge Eduardo Candelaria [Sat, 11 Dec 2010 03:06:13 +0000 (21:06 -0600)]
ASoC: twl6040: Clear interrupt status at boot time

On Phoenix 1.1, the INTID register default value is an invalid
one, causing the interrupt handler to think the phoenix power on
sequence is ready before it actually finishes.

This causes some i2c errors when trying to configure twl.

Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Enable automatic power for phoenix 1.1
Olaya, Margarita [Sat, 11 Dec 2010 03:06:07 +0000 (21:06 -0600)]
ASoC: twl6040: Enable automatic power for phoenix 1.1

Phoenix 1.1 supports automatic power on sequence, a
verification is added to use it with new revision of
the chip.

Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Fix analog Mic L & R mux controls
Francois Mazard [Sat, 11 Dec 2010 03:06:03 +0000 (21:06 -0600)]
ASoC: twl6040: Fix analog Mic L & R mux controls

The mux control has 4 elements not 3

Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Support other sample rates.
Olaya, Margarita [Sat, 11 Dec 2010 03:05:58 +0000 (21:05 -0600)]
ASoC: twl6040: Support other sample rates.

The twl6040 can support more sample rates other than 88.2 and 96k.

Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Fix PCM error handling ops
Olaya, Margarita [Sat, 11 Dec 2010 03:05:54 +0000 (21:05 -0600)]
ASoC: twl6040: Fix PCM error handling ops

This patch moves all the PCM error handling for clock config
out of trigger() and startup() and into prepare().

Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Restore bias level at resume
Olaya, Margarita [Sat, 11 Dec 2010 03:05:46 +0000 (21:05 -0600)]
ASoC: twl6040: Restore bias level at resume

This patch restores the CODEC bias level at resume().

Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Add headset and handset mux controls
Jorge Eduardo Candelaria [Sat, 11 Dec 2010 03:05:32 +0000 (21:05 -0600)]
ASoC: twl6040: Add headset and handset mux controls

This patch adds support for the twl6040 headset and handset
MUX controls.

Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Modify the IRQ handler
Olaya, Margarita [Sat, 11 Dec 2010 03:05:30 +0000 (21:05 -0600)]
ASoC: twl6040: Modify the IRQ handler

Multiples interrupts can be received. The irq handler is modified
to attend all of them.

Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Update twl IO macro
Olaya, Margarita [Sat, 11 Dec 2010 03:05:24 +0000 (21:05 -0600)]
ASoC: twl6040: Update twl IO macro

Update the codec to use the new twl core register macros

Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: sdp4430: Add Jack support
Jorge Eduardo Candelaria [Sat, 11 Dec 2010 02:45:19 +0000 (20:45 -0600)]
ASoC: sdp4430: Add Jack support

Use jack framework to enable detection for the headset microphone
and stereo output in the sdp4430.

Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
Signed-off-by: David Anders <x0132446@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: twl6040: Add jack support for headset and handset
Jorge Eduardo Candelaria [Sat, 11 Dec 2010 02:45:17 +0000 (20:45 -0600)]
ASoC: twl6040: Add jack support for headset and handset

This patch adds support for reporting twl6040 headset and
handset jack events.

The machine driver retrieves and report the status  through
twl6040_hs_jack_detect.

A workq is used to debounce of the irq.

Signed-off-by: Jorge Eduardo Candelaria <jorge.candelaria@ti.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: TWL4030: Fix 24bit support
Peter Ujfalusi [Tue, 14 Dec 2010 11:45:29 +0000 (13:45 +0200)]
ASoC: TWL4030: Fix 24bit support

twl4030 series of codecs supports S32_LE with msbits=24.
Replace the S24_LE with S32_LE format, and add constraint
for 24msbit in case of 32 S32_LE format.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: soc-cache: A few minor stylistic changes
Dimitris Papastamos [Tue, 14 Dec 2010 15:15:36 +0000 (15:15 +0000)]
ASoC: soc-cache: A few minor stylistic changes

Remove redundant parentheses/spaces in the use of the sizeof
operator.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Explicitly clear WM8993 ramp controls on power down
Mark Brown [Tue, 14 Dec 2010 11:25:18 +0000 (11:25 +0000)]
ASoC: Explicitly clear WM8993 ramp controls on power down

This helps ensure that the ramp logic is reset when powering back up.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: dapm: Add output driver widget
Olaya, Margarita [Sat, 11 Dec 2010 03:11:44 +0000 (21:11 -0600)]
ASoC: dapm: Add output driver widget

In some cases it was not possible to follow the appropiate power
ON/OFF sequence like in cases where the PGA needs to be enabled
before the driver and disabled before the PGA for pop reduction.

Add a widget to support output driver (speaker, haptic, vibra, etc)
drivers where power ON/OFF ordering is important.

Signed-off-by: Margarita Olaya Cabrera <magi.olaya@ti.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoregulator: Update LDO2 for WM8958
Mark Brown [Mon, 13 Dec 2010 15:07:40 +0000 (15:07 +0000)]
regulator: Update LDO2 for WM8958

LDO2 has a slightly different range of supported voltages on WM8958
so update the selector<->voltage mappings to match.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Fix AC'97 registration unwind
Mark Brown [Mon, 13 Dec 2010 17:03:27 +0000 (17:03 +0000)]
ASoC: Fix AC'97 registration unwind

soc_unregister_ac97_dai_link() takes a CODEC as an argument, not a
rtd like the registration function, so give it what it's looking for.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Fix build error caused by merging a fix for 2.6.37 into 2.6.38
Jarkko Nikula [Fri, 10 Dec 2010 18:54:49 +0000 (20:54 +0200)]
ASoC: Fix build error caused by merging a fix for 2.6.37 into 2.6.38

Fix "ASoC: Fix bias power down of non-DAPM codec" for 3.6.37 will cause a
build error when merging into ASoC for-2.6.38. Fix the issue by doing a
change that commit ce6120c "ASoC: Decouple DAPM from CODECs" would do.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-2.6.37' into for-2.6.38
Mark Brown [Mon, 13 Dec 2010 16:48:38 +0000 (16:48 +0000)]
Merge branch 'for-2.6.37' into for-2.6.38

13 years agoASoC: Fix bias power down of non-DAPM codec
Jarkko Nikula [Fri, 10 Dec 2010 18:53:55 +0000 (20:53 +0200)]
ASoC: Fix bias power down of non-DAPM codec

Currently bias of non-DAPM codec will be powered down (standby/off) whenever
there is a stream stop. This is wrong in simultaneous playback/capture since
the bias is put down immediately after stopping the first stream.

Fix this by using the codec->active count when figuring out the needed bias
level after stream stop.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'topic/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai...
Mark Brown [Mon, 13 Dec 2010 15:53:31 +0000 (15:53 +0000)]
Merge branch 'topic/asoc' of git://git./linux/kernel/git/tiwai/sound-2.6 into for-2.6.38

13 years agoASoC: Fix merge errors with flush_scheduled_work() removal
Takashi Iwai [Mon, 13 Dec 2010 11:55:39 +0000 (12:55 +0100)]
ASoC: Fix merge errors with flush_scheduled_work() removal

delayed_work was moved to dapm in the commit
ce6120cca2589ede530200c7cfe11ac9f144333c
    ASoC: Decouple DAPM from CODECs

Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoASoC: Fix widgets for WM8994/58 AIF2 source control
Mark Brown [Wed, 8 Dec 2010 13:49:43 +0000 (13:49 +0000)]
ASoC: Fix widgets for WM8994/58 AIF2 source control

The compiler really ought to have been warning about unreferenced
variables...

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoMerge branch 'topic/workq-update' into topic/asoc
Takashi Iwai [Mon, 13 Dec 2010 08:28:43 +0000 (09:28 +0100)]
Merge branch 'topic/workq-update' into topic/asoc

Conflicts:
sound/soc/codecs/wm8350.c
sound/soc/codecs/wm8753.c
sound/soc/sh/fsi.c
sound/soc/soc-core.c

13 years agosound: don't use flush_scheduled_work()
Tejun Heo [Sat, 11 Dec 2010 16:51:26 +0000 (17:51 +0100)]
sound: don't use flush_scheduled_work()

flush_scheduled_work() is deprecated and scheduled to be removed.

* cancel[_delayed]_work() + flush_scheduled_work() ->
  cancel[_delayed]_work_sync().

* wm8350, wm8753 and soc-core use custom code to cancel a delayed
  work, execute it immediately if it was pending and wait for its
  completion.  This is equivalent to flush_delayed_work_sync().  Use
  it instead.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
13 years agoASoC: Automatically manage WM8903 deemphasis rate
Mark Brown [Fri, 10 Dec 2010 19:17:08 +0000 (19:17 +0000)]
ASoC: Automatically manage WM8903 deemphasis rate

Provide the user with a boolean control then automatically select
the deemphasis filter most closely matching the sample rate.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Remove open coded symmetry implementation from WM8903
Mark Brown [Fri, 10 Dec 2010 19:17:07 +0000 (19:17 +0000)]
ASoC: Remove open coded symmetry implementation from WM8903

We're already flagged as using symmetric rates so we don't need to
have a custom implementation.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Implement WM8903 oversampling rate controls
Mark Brown [Fri, 10 Dec 2010 19:17:06 +0000 (19:17 +0000)]
ASoC: Implement WM8903 oversampling rate controls

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Implement WM8903 high pass filter support
Mark Brown [Fri, 10 Dec 2010 18:42:58 +0000 (18:42 +0000)]
ASoC: Implement WM8903 high pass filter support

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: tlv320dac33: Power down digital parts, when not needed
Peter Ujfalusi [Fri, 10 Dec 2010 11:26:31 +0000 (13:26 +0200)]
ASoC: tlv320dac33: Power down digital parts, when not needed

If the following scenario has been followed:
1. Enable analog bypass
amixer sset 'Analog Left Bypass' on
amixer sset 'Analog Right Bypass' on

2. Start playback
aplay -fdat -d3 /dev/zero

After the playback stopped (3 sec), and the soc timeout (5 sec),
the digital parts of the codec will remain powered up.
This means that the DAI clocks are continue to run, the
oscillator remain operational, etc.

Use the SND_SOC_DAPM_POST_PMD widget to get notification
about the stopped stream, and power down the digital
part of the codec.
If the analog bypass is enabled, than the codec will remain in
BIAS_ON level, and things will work correctly.
In case, if the bypass is disabled, than the codec will
fall to BIAS_STANDBY than to BIAS_OFF level, as it used
to.

The digital part of DAC33 is initialized at every stream start
(DAPM_PRE:PRE_PMU event), so subsequent streams (within 5 sec)
will have working DAI.
When the codec is coming out from BIAS_OFF, the full power-up
sequence followed by the same DAPM_PRE widget event will power up
the digital part.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Add HP iPAQ H1940 support
Vasily Khoruzhick [Thu, 9 Dec 2010 19:17:56 +0000 (21:17 +0200)]
ASoC: Add HP iPAQ H1940 support

Add glue driver to make s3c24xx-i2s and uda1380 produce some sound on
H1940.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Implement WM8994/58 DAC and ADC oversampling control
Mark Brown [Thu, 9 Dec 2010 12:07:44 +0000 (12:07 +0000)]
ASoC: Implement WM8994/58 DAC and ADC oversampling control

The oversampling rate of the DAC and ADC can be controlled to optimise
for either low power consumption or maximum performance.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Optimise WM9081 FLL performance
Mario Becroft [Fri, 3 Dec 2010 22:51:34 +0000 (11:51 +1300)]
ASoC: Optimise WM9081 FLL performance

Tune the FLL gain for optimal performance according to evaluation
results.

Signed-off-by: Mario Becroft <mb@gem.win.co.nz>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoMerge branch 'for-2.6.37' into for-2.6.38
Mark Brown [Thu, 9 Dec 2010 11:29:13 +0000 (11:29 +0000)]
Merge branch 'for-2.6.37' into for-2.6.38

13 years agoASoC: Remove unnecessary structure definitions
Seungwhan Youn [Thu, 9 Dec 2010 04:17:39 +0000 (13:17 +0900)]
ASoC: Remove unnecessary structure definitions

This patch removes some legacy structure definitions which are not using
in current ASoC drivers.

Signed-off-by: Seungwhan Youn <sw.youn@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>