GitHub/moto-9609/android_kernel_motorola_exynos9610.git
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>
13 years agoASoC: EP93xx: sampling rate range extended
Alexander Sverdlin [Thu, 9 Dec 2010 00:43:49 +0000 (03:43 +0300)]
ASoC: EP93xx: sampling rate range extended

Changes to both I2S and PCM code:
- Rates list extended up to 96kHz, it's tested on EDB9302 and works for both capture and
  playback.

Signed-off-by: Alexander Sverdlin <subaparts@yandex.ru>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: WM8580: Fix R8 initial value
Seungwhan Youn [Thu, 9 Dec 2010 09:07:52 +0000 (18:07 +0900)]
ASoC: WM8580: Fix R8 initial value

Acc to WM8580 manual, the default value for R8 is 0x10, not 0x1c.

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>
Cc: stable@kernel.org
13 years agoASoC: fix deemphasis control in wm8904/55/60 codecs
Dmitry Artamonow [Wed, 8 Dec 2010 20:36:17 +0000 (23:36 +0300)]
ASoC: fix deemphasis control in wm8904/55/60 codecs

Deemphasis control's .get callback should update control's value instead
of returning it - return value of callback function is used for indicating
error or success of operation.

Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
13 years agoASoC: sdp4430: Enable FM stereo pins
Jorge Eduardo Candelaria [Wed, 8 Dec 2010 16:55:05 +0000 (10:55 -0600)]
ASoC: sdp4430: Enable FM stereo pins

Add FM stereo pins to the machine driver and add them as a
dapm widget.

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: tlv320dac33: Fix compillation error
Peter Ujfalusi [Wed, 8 Dec 2010 13:12:56 +0000 (15:12 +0200)]
ASoC: tlv320dac33: Fix compillation error

Fix the compilation error introduced by patch:
ASoC: tlv320dac33: Avoid multiple soft power up

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: tlv320dac33: Move DAC LR power on to a supply widget
Peter Ujfalusi [Wed, 8 Dec 2010 14:04:33 +0000 (16:04 +0200)]
ASoC: tlv320dac33: Move DAC LR power on to a supply widget

The power for the DACs need to be enabled, even when only
the analog bypass is in use with the codec, otherwise
the audio is going to be distorted.
Make sure that the DACs are powered all the time, when
there is audio activity.

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: tlv320dac33: Rename outpup amplifier widget
Peter Ujfalusi [Wed, 8 Dec 2010 14:04:32 +0000 (16:04 +0200)]
ASoC: tlv320dac33: Rename outpup amplifier widget

Use better name for the widget, and remove the 'Power'
from it's name.

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 ADC high pass filter support to WM8994
Uk Kim [Tue, 7 Dec 2010 13:58:40 +0000 (13:58 +0000)]
ASoC: Add ADC high pass filter support to WM8994

Signed-off-by: Uk Kim <w0806.kim@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Support WM8994 mono AIF configurations
Mark Brown [Tue, 7 Dec 2010 17:14:56 +0000 (17:14 +0000)]
ASoC: Support WM8994 mono AIF configurations

The WM8994 supports mono signals - enable this in the driver. With DSP
mode an automatic data channel selector is available, activate this
when in mono mode.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: soc-core: Fix null pointer dereference
Dimitris Papastamos [Tue, 7 Dec 2010 16:30:38 +0000 (16:30 +0000)]
ASoC: soc-core: Fix null pointer dereference

In case the codec driver did not provide a read/write function,
codec->driver->read|write will be NULL.  Ensure that we use the one
specified in codec->read|write to avoid oopsing when we access
the debugfs entries.  This is achieved by using snd_soc_read() and
snd_soc_write().

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.37' into for-2.6.38
Mark Brown [Wed, 8 Dec 2010 13:54:33 +0000 (13:54 +0000)]
Merge branch 'for-2.6.37' into for-2.6.38

Conflicts:
sound/soc/soc-core.c

Axel's fix on two different branches.

13 years agoASoC: Correct WM8962 interrupt mask register read
Mark Brown [Tue, 7 Dec 2010 15:32:38 +0000 (15:32 +0000)]
ASoC: Correct WM8962 interrupt mask register read

Fix mismerge from the out of tree BSP where this support was developed.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: WM8580: Debug BCLK and sample size
Jassi Brar [Tue, 7 Dec 2010 10:23:07 +0000 (19:23 +0900)]
ASoC: WM8580: Debug BCLK and sample size

In case of SNDRV_PCM_FORMAT_S32_LE, we need to set WM8580_AIF_LENGTH_32,
rather than WM8580_AIF_LENGTH_24.
Also, the BCLK has to be 64fs, for sample size of 20, 24 and 32 bits.

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: Fix snd_soc_instantiate_card error path
Axel Lin [Tue, 7 Dec 2010 08:12:29 +0000 (16:12 +0800)]
ASoC: Fix snd_soc_instantiate_card error path

Properly free the resources in the case of snd_card_register failure
and soc_register_ac97_dai_link failure.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Fix resource leak if soc_register_ac97_dai_link failed
Axel Lin [Tue, 7 Dec 2010 12:56:30 +0000 (20:56 +0800)]
ASoC: Fix resource leak if soc_register_ac97_dai_link failed

Properly free the resources in the case of soc_register_ac97_dai_link failure.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoLinux 2.6.37-rc5
Linus Torvalds [Tue, 7 Dec 2010 04:09:04 +0000 (20:09 -0800)]
Linux 2.6.37-rc5

13 years agoMerge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec...
Linus Torvalds [Tue, 7 Dec 2010 04:08:25 +0000 (20:08 -0800)]
Merge branch 'upstream-linus' of git://git./linux/kernel/git/jlbec/ocfs2

* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:
  ocfs2_connection_find() returns pointer to bad structure
  ocfs2: char is not always signed
  Ocfs2: Stop tracking a negative dentry after dentry_iput().
  ocfs2: fix memory leak
  fs/ocfs2/dlm: Use GFP_ATOMIC under spin_lock

13 years agoARM: tegra: fix regression from addruart rewrite
Olof Johansson [Tue, 7 Dec 2010 01:36:32 +0000 (19:36 -0600)]
ARM: tegra: fix regression from addruart rewrite

Commit 0ea129300982 ("arm: return both physical and virtual addresses
from addruart") took out the test for MMU on/off but didn't switch the
ldr instructions to no longer be conditionals based on said test.

Fix that.

Signed-off-by: Olof Johansson <olof@lixom.net>
Acked-by: Colin Cross <ccross@android.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoMerge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspe...
Linus Torvalds [Mon, 6 Dec 2010 23:51:14 +0000 (15:51 -0800)]
Merge branch 'pm-fixes' of git://git./linux/kernel/git/rafael/suspend-2.6

* 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
  PM / Hibernate: Fix memory corruption related to swap
  PM / Hibernate: Use async I/O when reading compressed hibernation image

13 years agoPM / Hibernate: Fix memory corruption related to swap
Rafael J. Wysocki [Fri, 3 Dec 2010 21:57:45 +0000 (22:57 +0100)]
PM / Hibernate: Fix memory corruption related to swap

There is a problem that swap pages allocated before the creation of
a hibernation image can be released and used for storing the contents
of different memory pages while the image is being saved.  Since the
kernel stored in the image doesn't know of that, it causes memory
corruption to occur after resume from hibernation, especially on
systems with relatively small RAM that need to swap often.

This issue can be addressed by keeping the GFP_IOFS bits clear
in gfp_allowed_mask during the entire hibernation, including the
saving of the image, until the system is finally turned off or
the hibernation is aborted.  Unfortunately, for this purpose
it's necessary to rework the way in which the hibernate and
suspend code manipulates gfp_allowed_mask.

This change is based on an earlier patch from Hugh Dickins.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Reported-by: Ondrej Zary <linux@rainbow-software.org>
Acked-by: Hugh Dickins <hughd@google.com>
Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: stable@kernel.org
13 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Mon, 6 Dec 2010 22:49:51 +0000 (14:49 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  ARM: 6524/1: GIC irq desciptor bug fix
  ARM: 6523/1: iop: ensure sched_clock() is notrace
  ARM: 6456/1: Fix for building DEBUG with sa11xx_base.c as a module.
  ARM: 6519/1: kuser: Fix incorrect cmpxchg syscall in kuser helpers
  ARM: 6505/1: kprobes: Don't HAVE_KPROBES when CONFIG_THUMB2_KERNEL is selected
  ARM: 6508/1: vexpress: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
  ARM: 6507/1: RealView: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
  ARM: 6504/1: Thumb-2: Fix long-distance conditional branches in head.S for Thumb-2.
  ARM: 6503/1: Thumb-2: Restore sensible zImage header layout for CONFIG_THUMB2_KERNEL
  ARM: 6502/1: Thumb-2: Fix CONFIG_THUMB2_KERNEL breakage in compressed/head.S
  ARM: 6501/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in mm/proc-v7.S
  ARM: 6500/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in kernel/head.S
  ARM: 6499/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in bootp/init.S
  ARM: 6498/1: vfp: Correct data alignment for CONFIG_THUMB2_KERNEL
  ARM: 6497/1: kexec: Correct data alignment for CONFIG_THUMB2_KERNEL
  ARM: 6496/1: GIC: Do not try to register more then NR_IRQS interrupts
  ARM: cns3xxx: Fix build with CONFIG_PCI=y

13 years agoPM / Hibernate: Use async I/O when reading compressed hibernation image
Bojan Smojver [Thu, 25 Nov 2010 22:41:39 +0000 (23:41 +0100)]
PM / Hibernate: Use async I/O when reading compressed hibernation image

This is a fix for reading LZO compressed image using async I/O.
Essentially, instead of having just one page into which we keep
reading blocks from swap, we allocate enough of them to cover the
largest compressed size and then let block I/O pick them all up. Once
we have them all (and here we wait), we decompress them, as usual.
Obviously, the very first block we still pick up synchronously,
because we need to know the size of the lot before we pick up the
rest.

Also fixed the copyright line, which I've forgotten before.

Signed-off-by: Bojan Smojver <bojan@rexursive.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
13 years agoASoC: soc-core: Remove useless inline function construct
Dimitris Papastamos [Mon, 6 Dec 2010 15:49:20 +0000 (15:49 +0000)]
ASoC: soc-core: Remove useless inline function construct

There is no need to mark this function as inline.  Inline functions
usually are small and concise functions that benefit from not needing
to set up a stack frame and undergo a call/ret sequence upon each
invocation.

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: soc-core: Replace use of strncpy() with strlcpy()
Dimitris Papastamos [Mon, 6 Dec 2010 15:42:17 +0000 (15:42 +0000)]
ASoC: soc-core: Replace use of strncpy() with strlcpy()

By using strncpy() if the source string does not have a null byte in the
first n bytes, then the destination string is not null-terminated.
This can be fixed in a two-step process by manually null-terminating the
array after the use of strncpy() or by using strlcpy().

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: Merge common code in DAI link and auxiliary codec probing/removal
Jarkko Nikula [Mon, 6 Dec 2010 14:27:07 +0000 (16:27 +0200)]
ASoC: Merge common code in DAI link and auxiliary codec probing/removal

Commit 2eea392 "ASoC: Add support for optional auxiliary dailess codecs"
added much of code that can be shared with DAI link codec probing/removal.
Merge now this common code into new soc_probe_codec, soc_remove_codec and
soc_post_component_init functions.

Error prints in these functions are converted to use dev_err and to print
the error code.

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-rmk-fixes' of git://git.infradead.org/users/cbou/linux-cns3xxx
Russell King [Mon, 6 Dec 2010 15:39:23 +0000 (15:39 +0000)]
Merge branch 'for-rmk-fixes' of git://git.infradead.org/users/cbou/linux-cns3xxx

13 years agoMerge branch 'for-2.6.37' into for-2.6.38
Mark Brown [Mon, 6 Dec 2010 14:14:47 +0000 (14:14 +0000)]
Merge branch 'for-2.6.37' into for-2.6.38

Conflicts:
include/linux/mfd/wm8994/pdata.h

13 years agoASoC: soc-cache: Add optional cache name member to snd_soc_cache_ops
Dimitris Papastamos [Mon, 6 Dec 2010 09:51:57 +0000 (09:51 +0000)]
ASoC: soc-cache: Add optional cache name member to snd_soc_cache_ops

Added an optional name member to snd_soc_cache_ops to enable more
sensible diagnostic messages during cache init, exit and sync.

Remove redundant newline in source code.

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: SAMSUNG: Remove duplicated snd_card on smdk_spdif
Seungwhan Youn [Sun, 5 Dec 2010 22:57:13 +0000 (07:57 +0900)]
ASoC: SAMSUNG: Remove duplicated snd_card on smdk_spdif

This patch remove duplicated snd_card defination on smdk_spdif.

Signed-off-by: Seungwhan Youn <sw.youn@samsung.com>
Acked-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: Fix initial return value
Seungwhan Youn [Sun, 5 Dec 2010 22:56:59 +0000 (07:56 +0900)]
ASoC: SAMSUNG: Fix initial return value

This patch fixed intial return value to be a '0' as asuccess on
set_audio_clock_heirachy(). This avoids unintended error on initialize.

Signed-off-by: Seungwhan Youn <sw.youn@samsung.com>
Acked-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: Add trace events for jack detection
Mark Brown [Sun, 5 Dec 2010 12:22:46 +0000 (12:22 +0000)]
ASoC: Add trace events for jack detection

As jack detection can trigger DAPM and the latency in debouncing can create
confusing windows in operation provide some trace events which will hopefully
help in diagnostics. The soc-jack core traces all reports that it gets and
the resulting notifications to upper layers. An event for jack IRQs is also
provided for instrumentation of debounce, and used in the GPIO jack code.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
13 years agoASoC: Hold client_mutex while calling snd_soc_instantiate_cards()
Axel Lin [Mon, 6 Dec 2010 08:48:03 +0000 (16:48 +0800)]
ASoC: Hold client_mutex while calling snd_soc_instantiate_cards()

As the comments of snd_soc_instantiate_cards() said,
snd_soc_instantiate_cards() must be called with client_mutex.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
13 years agoASoC: Fix swap of left and right channels for WM8993/4 speaker boost gain
Uk Kim [Sun, 5 Dec 2010 08:26:07 +0000 (17:26 +0900)]
ASoC: Fix swap of left and right channels for WM8993/4 speaker boost gain

SPKOUTL_BOOST start from third bit, SPKOUTLR_BOOST start from 0 bit.

Signed-off-by: Uk Kim <w0806.kim@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org