openwrt/staging/blogic.git
15 years agoASoC: Coalesce power updates for PGAs
Mark Brown [Sun, 7 Jun 2009 12:37:44 +0000 (13:37 +0100)]
ASoC: Coalesce power updates for PGAs

Handle gain ramping for PGAs so we can coalesce their power updates too.
This is not ideal since we can't cope properly with gain ramping for
stereo paths but that was the case without coalescing and gain ramping
is relatively infrequently used so the effects are limited.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Coalesce power updates for DAPM widgets with events
Mark Brown [Sun, 7 Jun 2009 12:21:24 +0000 (13:21 +0100)]
ASoC: Coalesce power updates for DAPM widgets with events

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Sort specialised mixers and muxes together
Mark Brown [Sun, 7 Jun 2009 12:08:45 +0000 (13:08 +0100)]
ASoC: Sort specialised mixers and muxes together

The more flexible value muxes and named mixers don't need to be sorted
differently from a power management point of view, they are different
only in terms of the control interface and not in terms of seqencing
behaviour.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Coalesce register writes for DAPM sequences
Mark Brown [Sun, 7 Jun 2009 11:51:26 +0000 (12:51 +0100)]
ASoC: Coalesce register writes for DAPM sequences

Reduce the number of register writes we need to set the power state for
a CODEC by coalescing updates to widgets with the same sequence order and
same register into a single write.

This can be a noticable performance improvement with slow or heavily
contended control buses, such as I2C controllers with a low clock
frequency, and is particularly noticable when resuming. It can also
reduce the noticability of and pops and clicks by ensuring that left
and right channels are powered simultaneously if they are in the same
register.

Currently widgets that have events are not coalesced, including PGAs
which may use the volume ramping control.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Factor out DAPM sequence execution
Mark Brown [Sun, 7 Jun 2009 09:12:52 +0000 (10:12 +0100)]
ASoC: Factor out DAPM sequence execution

Lump the list walk into a single function, and pull in the power
application too so we can do some further refactoring. Pure code
motion.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Sort DAPM power sequences while building lists
Mark Brown [Sat, 6 Jun 2009 18:03:23 +0000 (19:03 +0100)]
ASoC: Sort DAPM power sequences while building lists

In the past the DAPM power sequencing was done by iterating over the list
of widgets once for each widget type and powering widgets of that type.
Instead of doing that do the sorting at the time we insert the widgets
into the lists of widgets to apply power changes to. This reduces the
amount of computation required for seqencing still further, though the
costs are generally dwarfed by the costs of the register writes
implementing them.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Apostrophe patrol
Mark Brown [Sat, 6 Jun 2009 10:26:15 +0000 (11:26 +0100)]
ASoC: Apostrophe patrol

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: codec tlv320aic23 fix bogus divide by 0 message
Troy Kisky [Sat, 6 Jun 2009 02:15:58 +0000 (19:15 -0700)]
ASoC: codec tlv320aic23 fix bogus divide by 0 message

Some code analyzer software mistakenly gives
divide by 0 error messages for these lines.
This patch will end its confusion.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: fix NULL pointer dereference in soc_suspend()
Daniel Mack [Wed, 3 Jun 2009 15:44:49 +0000 (17:44 +0200)]
ASoC: fix NULL pointer dereference in soc_suspend()

In case the initalization of an soc_device failed, there is no codec
associated with it. soc_suspend() will still dereference the pointer
and cause an Ooops when entering the sleep mode.

This happens on our board with a multi-target kernel image when booted
on a machine without audio circuits.

This patch makes the code bail out very early in this special case.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix build error in twl4030.c
Takashi Iwai [Thu, 4 Jun 2009 07:58:18 +0000 (09:58 +0200)]
ASoC: Fix build error in twl4030.c

Fix the (likely cut-n-paste) error by commit
16a30fbb0d3aa4ee829a2dd3d0e314e2b5ae96a9, which causes the error below:
  sound/soc/codecs/twl4030.c: In function 'twl4030_read_reg_cache':
  sound/soc/codecs/twl4030.c:152: error: 'cache' undeclared (first use in this function)

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoASoC: SSM2602: assign last substream to the master when shutting down
Cliff Cai [Tue, 2 Jun 2009 04:18:54 +0000 (00:18 -0400)]
ASoC: SSM2602: assign last substream to the master when shutting down

Fixes crash when shutting down.

Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Blackfin: document how anomaly 05000250 is handled
Sonic Zhang [Tue, 2 Jun 2009 04:18:57 +0000 (00:18 -0400)]
ASoC: Blackfin: document how anomaly 05000250 is handled

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Blackfin: set the transfer size according the ac97_frame size
Cliff Cai [Tue, 2 Jun 2009 04:18:56 +0000 (00:18 -0400)]
ASoC: Blackfin: set the transfer size according the ac97_frame size

Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: SSM2602: remove unsupported sample rates
Cliff Cai [Tue, 2 Jun 2009 04:18:53 +0000 (00:18 -0400)]
ASoC: SSM2602: remove unsupported sample rates

Signed-off-by: Cliff Cai <cliff.cai@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Check the interface format for 4 channel mode
Peter Ujfalusi [Mon, 1 Jun 2009 11:06:40 +0000 (14:06 +0300)]
ASoC: TWL4030: Check the interface format for 4 channel mode

In addition to the operating mode check, also check the
codec's interface format in case of four channel mode.
If the codec is not in TDM (DSP_A) mode, return with error.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Use reg_cache in twl4030_init_chip
Peter Ujfalusi [Fri, 29 May 2009 06:22:37 +0000 (09:22 +0300)]
ASoC: TWL4030: Use reg_cache in twl4030_init_chip

Use the codec->reg_cache instead of the array directly
in twl4030_init_chip for setting the default values.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Initialise dev for the dummy S/PDIF DAI
Mark Brown [Thu, 28 May 2009 13:51:00 +0000 (14:51 +0100)]
ASoC: Initialise dev for the dummy S/PDIF DAI

Also include the header to make sure the DAI is prototyped.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add dummy S/PDIF codec support
Chaithrika U S [Thu, 28 May 2009 09:10:50 +0000 (05:10 -0400)]
ASoC: Add dummy S/PDIF codec support

McASP on DM646x can operate in DIT (S/PDIF) where no codec is needed.
This patch provides stub codec that can be used in these configurations.
On DM646x EVM the McASP1 is connected to the S/PDIF out.

Signed-off-by: Steve Chen <schen@mvista.com>
Signed-off-by: Pavel Kiryukhin <pkiryukhin@ru.mvista.com>
Signed-off-by: Naresh Medisetty <naresh@ti.com>
Signed-off-by: Chaithrika U S <chaithrika@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: correct print specifiers for unsigneds
Roel Kluin [Thu, 28 May 2009 00:08:39 +0000 (17:08 -0700)]
ASoC: correct print specifiers for unsigneds

Unsigned variables should use `%u' rather than `%d'.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Modify mpc5200 AC97 driver to use V9 of spin_event_timeout()
Jon Smirl [Wed, 27 May 2009 05:06:19 +0000 (01:06 -0400)]
ASoC: Modify mpc5200 AC97 driver to use V9 of spin_event_timeout()

The function signature for spin_event_timeout() has changed in version V9.
Adjust the mpc5200 AC97 driver to use the new function.

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Switch FSL SSI DAI over to symmetric_rates
Mark Brown [Sat, 23 May 2009 09:41:05 +0000 (10:41 +0100)]
ASoC: Switch FSL SSI DAI over to symmetric_rates

The effect of symmetric_constraints should provide a standard way to
enforce the use of the same sample rate for both directions.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Timur Tabi <timur@freescale.com>
15 years agoASoC: Mark MPC5200 AC97 as BROKEN until PowerPC merge issues are resolved
Mark Brown [Tue, 26 May 2009 20:14:59 +0000 (21:14 +0100)]
ASoC: Mark MPC5200 AC97 as BROKEN until PowerPC merge issues are resolved

These drivers use spin_event_timeout() which is only present in the
PowerPC tree at present and which is undergoing some API revisions
so temporarily mark them as BROKEN until these issues are sorted
out.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fabric bindings for STAC9766 on the Efika
Jon Smirl [Tue, 26 May 2009 12:34:14 +0000 (08:34 -0400)]
ASoC: Fabric bindings for STAC9766 on the Efika

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Support for AC97 on Phytec pmc030 base board.
Jon Smirl [Tue, 26 May 2009 12:34:12 +0000 (08:34 -0400)]
ASoC: Support for AC97 on Phytec pmc030 base board.

A wm9712 AC97 codec is used.

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: AC97 driver for mpc5200
Jon Smirl [Tue, 26 May 2009 12:34:10 +0000 (08:34 -0400)]
ASoC: AC97 driver for mpc5200

I've implemented retries for when the AC97 hardware doesn't reset on
first try. About 10% of the time both the Efika and pcm030 AC97 codecs
don't reset on first try and need to be poked multiple times.  Failure
is indicated by not having the link clock start ticking. Every once in
a while even five pokes won't get the link started and I have to power
cycle.

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Main rewite of the mpc5200 audio DMA code
Jon Smirl [Tue, 26 May 2009 12:34:08 +0000 (08:34 -0400)]
ASoC: Main rewite of the mpc5200 audio DMA code

Rewrite the mpc5200 audio DMA code to support both I2S and AC97.

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: HandsfreeL/R mute DAPM switch
Peter Ujfalusi [Mon, 25 May 2009 08:12:13 +0000 (11:12 +0300)]
ASoC: TWL4030: HandsfreeL/R mute DAPM switch

Add DAPM switch for HeadsetL/R mute. Since all bits are are needed
for the HFL/R pop removal to work the switch is using the SW_SHADOW
no HW register for the HandsfreeL/R mute.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Add shadow register
Peter Ujfalusi [Mon, 25 May 2009 08:12:12 +0000 (11:12 +0300)]
ASoC: TWL4030: Add shadow register

Shadow, non HW register for dealing with the HandsfreeL/R
muting.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Handsfree pop removal redesign
Peter Ujfalusi [Mon, 25 May 2009 08:12:11 +0000 (11:12 +0300)]
ASoC: TWL4030: Handsfree pop removal redesign

Move the HandsfreeL/R (IHFL/R) pop removal code from the DAPM_MUX_E
to a more appropriate DAPM_PGA_E widget.
Also fix the power-up sequence to match with the TRM.
The power-down sequence is not described in the TRM, so do it
in a way, which seams like the correct sequence.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add a few more mpc5200 PSC defines
Jon Smirl [Sat, 23 May 2009 23:13:03 +0000 (19:13 -0400)]
ASoC: Add a few more mpc5200 PSC defines

Add a few more mpc5200 PSC defines. More bit fields defines for mpc5200
PSC registers.

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Rename the PSC functions to DMA
Jon Smirl [Sat, 23 May 2009 23:13:01 +0000 (19:13 -0400)]
ASoC: Rename the PSC functions to DMA

Rename the functions in the mpc5200 DMA file from i2s based names to dma
ones to reflect the file they are in.

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Basic split of mpc5200 DMA code out of mpc5200_psc_i2s
Jon Smirl [Sat, 23 May 2009 23:12:59 +0000 (19:12 -0400)]
ASoC: Basic split of mpc5200 DMA code out of mpc5200_psc_i2s

Basic split of mpc5200 DMA code out from i2s into a standalone file.

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix minor issues in STAC9766 driver
Mark Brown [Sun, 24 May 2009 12:32:24 +0000 (13:32 +0100)]
ASoC: Fix minor issues in STAC9766 driver

Fairly minor issues:
 - Don't register the DAIs, it's not required for AC97 devices.
 - Make unexported functions static.
 - Wrap some excessively long lines.
 - Undo tab/space breakage.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Codec for STAC9766 used on the Efika
Jon Smirl [Sat, 23 May 2009 23:13:07 +0000 (19:13 -0400)]
ASoC: Codec for STAC9766 used on the Efika

Datasheet: http://www.idt.com/products/getDoc.cfm?docID=13134007

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix WM9081 PowerPC compiler issues
Mark Brown [Fri, 22 May 2009 23:01:05 +0000 (00:01 +0100)]
ASoC: Fix WM9081 PowerPC compiler issues

Ensure that we always set a new sysclk when using the FLL in master mode
and pick out the correct value for the sample rate in hw_params().

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: WM9081 mono DAC with integrated 2.6W class AB/D amplifier driver
Mark Brown [Fri, 22 May 2009 14:01:19 +0000 (15:01 +0100)]
ASoC: WM9081 mono DAC with integrated 2.6W class AB/D amplifier driver

The WM9081 is designed to provide high power output at low distortion
levels in space-constrained portable applications.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Differentiate the playback streams
Peter Ujfalusi [Fri, 22 May 2009 12:12:15 +0000 (15:12 +0300)]
ASoC: TWL4030: Differentiate the playback streams

Give unique stream names for the two playback streams so
DAPM can figure out which codec_dai is in use.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: SDP4030: Use the twl4030_setup_data for headset pop-removal
Peter Ujfalusi [Fri, 22 May 2009 07:13:16 +0000 (10:13 +0300)]
ASoC: SDP4030: Use the twl4030_setup_data for headset pop-removal

With this patch the initial headset pop-removal related values are
configured for the twl4030 codec (ramp delay and sysclk).

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Add support for platform dependent configuration
Peter Ujfalusi [Fri, 22 May 2009 07:13:15 +0000 (10:13 +0300)]
ASoC: TWL4030: Add support for platform dependent configuration

twl4030_setup_data structure can be passed from platform drivers to
the codec via the snd_soc_device->codec_data pointer.

Currently the setup data has support for the Headset pop-removal
related configuration, which differs from board to board.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoAsoC: Make snd_soc_read() and snd_soc_write() functions
Mark Brown [Fri, 22 May 2009 08:41:30 +0000 (09:41 +0100)]
AsoC: Make snd_soc_read() and snd_soc_write() functions

Should be no impact on the generated code but it helps the compiler
print clearer messages.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Move the Headset pop-attenuation code to PGA event
Peter Ujfalusi [Mon, 18 May 2009 13:02:05 +0000 (16:02 +0300)]
ASoC: TWL4030: Move the Headset pop-attenuation code to PGA event

This patch adds SND_SOC_DAPM_PGA_E to the headset path, which handles
the headset ramp up and down sequences needed for the pop noise
removal.

With this patch the order of the internal components in the twl4030
codec is turned on and off in a correct order.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Tested-by: Anuj Aggarwal <anuj.aggarwal@ti.com>
Tested-by: Jarkko Nikula <jhnikula@gmail.com>
Tested-by: Misael Lopez Cruz <x0052729@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Change DAPM routings and controls for DACs and PGAs
Peter Ujfalusi [Mon, 18 May 2009 13:02:04 +0000 (16:02 +0300)]
ASoC: TWL4030: Change DAPM routings and controls for DACs and PGAs

Restructuring the twl4030 codec's DAPM routing to be able to handle the power
sequences correctly.

The twl4030 codec internal implementation have this order:
DAC -> Analog PGA -> Mixer/Mux

While the ASoC framework expects the following order:
DAC -> Mixer -> Analog PGA

This patch moves the Analog PGA handling from SND_SOC_DAPM_PGA to _MIXER and
adds two levels of mixer to handle the digital and analog loopback
functionality.

Now the analog loopback does not powers on any of the DACs.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Tested-by: Anuj Aggarwal <anuj.aggarwal@ti.com>
Tested-by: Jarkko Nikula <jhnikula@gmail.com>
Tested-by: Misael Lopez Cruz <x0052729@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add TXx9 AC link controller driver (v3)
Atsushi Nemoto [Tue, 19 May 2009 13:12:15 +0000 (22:12 +0900)]
ASoC: Add TXx9 AC link controller driver (v3)

This patch adds support for the integrated ACLC of the TXx9 family.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: SDP3430: Connect twl4030 voice DAI to McBSP3
Lopez Cruz, Misael [Mon, 18 May 2009 16:53:04 +0000 (11:53 -0500)]
ASoC: SDP3430: Connect twl4030 voice DAI to McBSP3

Connect twl4030 voice DAI to McBSP3 in sdp3430 machine driver.
Voice DAI init function enables corresponding interface by
writting directly to VOICE_IF codec register.

Signed-off-by: Misael Lopez Cruz <x0052729@ti.com>
Acked-by: Peter Ujflausi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Add control for selecting codec operation mode
Lopez Cruz, Misael [Mon, 18 May 2009 16:52:55 +0000 (11:52 -0500)]
ASoC: TWL4030: Add control for selecting codec operation mode

Add a control for selecting the codec operation mode. TWL4030 codec
has two modes:
- Option 1. Audio only (4 audio DACs)
- Option 2. Voice/Audio (2 audio DACs and voice ADC/DAC)

Control is restricted when a stream is ongoing, since codec's
operation mode cannot be changed on-the-fly.

Signed-off-by: Misael Lopez Cruz <x0052729@ti.com>
Acked-by: Peter Ujflausi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Fix Analog capture path for AUXR
Peter Ujfalusi [Tue, 19 May 2009 07:51:03 +0000 (10:51 +0300)]
ASoC: TWL4030: Fix Analog capture path for AUXR

AUXR is selected by bit 2 and not by bit 1 in the ANAMICR register.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add debug trace for bias level transitions
Mark Brown [Mon, 18 May 2009 14:44:43 +0000 (15:44 +0100)]
ASoC: Add debug trace for bias level transitions

A standard way of making sure we know when the bias level changes.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Integrate bias management with DAPM power management
Mark Brown [Sun, 17 May 2009 20:41:23 +0000 (21:41 +0100)]
ASoC: Integrate bias management with DAPM power management

Rather than managing the bias level of the system based on if there is
an active audio stream manage it based on there being an active DAPM
widget. This simplifies the code a little, moving the power handling
into one place, and improves audio performance for bypass paths when no
playbacks or captures are active.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Make DAPM sysfs entries non-optional
Mark Brown [Sat, 16 May 2009 16:53:16 +0000 (17:53 +0100)]
ASoC: Make DAPM sysfs entries non-optional

sysfs is so standard these days there's no point.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Split DAPM power checks from sequencing of power changes
Mark Brown [Sat, 16 May 2009 16:47:29 +0000 (17:47 +0100)]
ASoC: Split DAPM power checks from sequencing of power changes

DAPM has always applied any changes to the power state of widgets as soon
as it has determined that they are required. Instead of doing this store
all the changes that are required on lists of widgets to power up and
down, then iterate over those lists and apply the changes. This changes
the sequence in which changes are implemented, doing all power downs
before power ups and always using the up/down sequences (previously they
were only used when changes were due to DAC/ADC power events). The error
handling is also changed so that we continue attempting to power widgets
if some changes fail.

The main benefit of this is to allow future changes to do optimisations
over the whole power sequence and to reduce the number of walks of the
widget graph required to check the power status of widgets.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Enable/disable voice digital filters
Misael Lopez Cruz [Mon, 18 May 2009 01:02:31 +0000 (20:02 -0500)]
ASoC: TWL4030: Enable/disable voice digital filters

Enable TWL4030 VTXL/VTXR and VRX digital filters for uplink
and downlink paths, respectively.

This patch also corrects voice 8/16kHz mode selection bit
(SEL_16K) of CODEC_MODE register.

Signed-off-by: Misael Lopez Cruz <x0052729@ti.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agosound: use dev_set_drvdata
Julia Lawall [Sun, 17 May 2009 09:29:21 +0000 (11:29 +0200)]
sound: use dev_set_drvdata

Eliminate direct accesses to the driver_data field.
cf 82ab13b26f15f49be45f15ccc96bfa0b81dfd015

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
struct device *dev;
expression E;
type T;
@@

- dev->driver_data = (T)E
+ dev_set_drvdata(dev, E)

@@
struct device *dev;
type T;
@@

- (T)dev->driver_data
+ dev_get_drvdata(dev)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoASoC: Optimize switch/case in magician.c
Takashi Iwai [Fri, 15 May 2009 10:20:52 +0000 (12:20 +0200)]
ASoC: Optimize switch/case in magician.c

Use default to optimize the switch/case in magicial_playback_hw_params(),
which also fixes the compile warnings below:
  sound/soc/pxa/magician.c:89: warning: 'acds' may be used uninitialized in this function
  sound/soc/pxa/magician.c:89: warning: 'acps' may be used uninitialized in this function

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoASoC: Add missing __devexit in wm8940.c
Takashi Iwai [Fri, 15 May 2009 10:18:47 +0000 (12:18 +0200)]
ASoC: Add missing __devexit in wm8940.c

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'for-2.6.31' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Takashi Iwai [Fri, 15 May 2009 08:30:21 +0000 (10:30 +0200)]
Merge branch 'for-2.6.31' of git://git./linux/kernel/git/broonie/sound-2.6 into topic/asoc

15 years agoMerge branch 'for-2.6.30' into for-2.6.31
Mark Brown [Fri, 15 May 2009 07:59:52 +0000 (08:59 +0100)]
Merge branch 'for-2.6.30' into for-2.6.31

15 years agoASoC: DaVinci EVM board support buildfixes
David Brownell [Thu, 14 May 2009 20:01:59 +0000 (13:01 -0700)]
ASoC: DaVinci EVM board support buildfixes

This is a build fix, resyncing the DaVinci EVM ASoC board code
with the version in the DaVinci tree.  That resync includes
support for the DM355 EVM, although that board isn't yet in
mainline.

(NOTE:  also includes a bugfix to the platform_add_resources
call, recently sent by Chaithrika U S <chaithrika@ti.com> but
not yet merged into the DaVinci tree.)

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: DaVinci I2S updates
David Brownell [Thu, 14 May 2009 19:47:42 +0000 (12:47 -0700)]
ASoC: DaVinci I2S updates

This resyncs the DaVinci I2S code with the version in the DaVinci
tree.  The behavioral change uses updated clock interfaces which
recently merged to mainline.  Two other changes include adding a
comment on the ASP/McBSP/McASP confusion, and dropping pdev->id in
order to support more boards than just the DM644x EVM.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: davinci-pcm buildfixes
David Brownell [Thu, 14 May 2009 19:41:22 +0000 (12:41 -0700)]
ASoC: davinci-pcm buildfixes

This is a buildfix for the DaVinci PCM code, resyncing it with
the version in the DaVinci tree.  The notable change is using
current EDMA interfaces, which recently merged to mainline.
(The older interfaces never made it into mainline.)

NOTE:  open issue, the DMA should be to/from SRAM; see chip
errata for more info.  The artifacts are extremely easy to
hear on DM355 hardware (not yet supported in mainline), but
don't seem as audible on DM6446 hardwaare (which does have
mainline support).

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Support AC97 link off by default on WM9712
Marek Vasut [Thu, 14 May 2009 19:52:46 +0000 (20:52 +0100)]
ASoC: Support AC97 link off by default on WM9712

The WM9712 can be configured by resistor strapping GPIO4 to behave like
the WM9713 and default to leaving the AC97 link disabled after cold
reset until a warm reset occurs.  In this configuration we need to issue
a warm reset after cold to bring the link up so do so.  The warm reset
will be harmless on systems that don't need it.

[Changelog rewritten to document the reasoning. -- broonie]

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoMerge branch 'pxa2xx-i2s' into for-2.6.31
Mark Brown [Thu, 14 May 2009 19:35:51 +0000 (20:35 +0100)]
Merge branch 'pxa2xx-i2s' into for-2.6.31

15 years agoASoC: pxa2xx-i2s: Fix suspend/resume
Karl Beldan [Wed, 13 May 2009 20:16:59 +0000 (22:16 +0200)]
ASoC: pxa2xx-i2s: Fix suspend/resume

pxa2xx_i2s_resume is :
 - unconditionnaly setting SACR0_ENB
 - unsetting SACR0_ENB in saved SACR0 pxa_i2s.sacr0
fix these.

In pxa2xx_i2s_{resume,suspend}, save/restore registers even
when !dai->active.

Signed-off-by: Karl Beldan <karl.beldan@mobile-devices.fr>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: pxa2xx-i2s: Fix inappropriate release of i2s clock
Karl Beldan [Wed, 13 May 2009 20:16:52 +0000 (22:16 +0200)]
ASoC: pxa2xx-i2s: Fix inappropriate release of i2s clock

i2s_clk is 'put' for no reason in pxa2xx_i2s_shutdown.
Now we 'get' i2s_clk at probe and 'put' it at driver removal or when
probe fails.

Signed-off-by: Karl Beldan <karl.beldan@mobile-devices.fr>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: pxa2xx-i2s: Handle SACR1_DRPL and SACR1_DREC separately
Karl Beldan [Wed, 13 May 2009 20:16:46 +0000 (22:16 +0200)]
ASoC: pxa2xx-i2s: Handle SACR1_DRPL and SACR1_DREC separately

- hw_params enables both RPL and REC functions each time : Enable the
appropriate function in pxa2xx_i2s_trigger.
- pxa2xx_i2s_shutdown disables i2s anytime one of RPL or REC function is
off : Turn it off only when both functions are off.

Signed-off-by: Karl Beldan <karl.beldan@mobile-devices.fr>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: pxa2xx-i2s: Proper hw initialization
Karl Beldan [Thu, 14 May 2009 08:25:42 +0000 (10:25 +0200)]
ASoC: pxa2xx-i2s: Proper hw initialization

Make sure we are in a know good state at end of probe :
Reset FIFO logic and registers, and make sure REC and RPL functions
along with FIFO service are disabled (SACR0_RST enables REC and RPL).

Resetting loses current settings so remove reset from stream startup.
Now reset occurs only at probe.

Signed-off-by: Karl Beldan <karl.beldan@mobile-devices.fr>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add SNDRV_PCM_FMTBIT_S32_BE as a valid AC97 format
Jon Smirl [Thu, 14 May 2009 01:59:14 +0000 (21:59 -0400)]
ASoC: Add SNDRV_PCM_FMTBIT_S32_BE as a valid AC97 format

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Added OMAP3 EVM support in ASoC.
Anuj Aggarwal [Thu, 14 May 2009 08:29:19 +0000 (13:59 +0530)]
ASoC: Added OMAP3 EVM support in ASoC.

Resending the patch after fixing the minor issues.

Signed-off-by: Anuj Aggarwal <anuj.aggarwal@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Point at kernel.org git
Mark Brown [Wed, 13 May 2009 16:23:54 +0000 (17:23 +0100)]
ASoC: Point at kernel.org git

The Wolfson git is not currently tracking bleeding edge ASoC so change
to my kernel.org git which is doing so.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: pxa2xx-i2s: Proper initialization
Karl Beldan [Mon, 11 May 2009 21:49:41 +0000 (23:49 +0200)]
ASoC: pxa2xx-i2s: Proper initialization

Reset FIFO logic and registers, and make sure REC and RPL functions along
with FIFO service are disabled at probe.

Signed-off-by: Karl Beldan <karl.beldan@mobile-devices.fr>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoMerge branch 'for-2.6.31' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Takashi Iwai [Tue, 12 May 2009 10:32:07 +0000 (12:32 +0200)]
Merge branch 'for-2.6.31' of git://git./linux/kernel/git/broonie/sound-2.6 into topic/asoc

15 years agoMerge branch 'topic/drvdata-fix' into topic/asoc
Takashi Iwai [Tue, 12 May 2009 09:57:09 +0000 (11:57 +0200)]
Merge branch 'topic/drvdata-fix' into topic/asoc

15 years agoMerge branch 'for-2.6.30' into for-2.6.31
Mark Brown [Tue, 12 May 2009 09:53:33 +0000 (10:53 +0100)]
Merge branch 'for-2.6.30' into for-2.6.31

15 years agoASoC: TWL4030: change DAPM for analog microphone selection
Joonyoung Shim [Mon, 11 May 2009 11:36:08 +0000 (20:36 +0900)]
ASoC: TWL4030: change DAPM for analog microphone selection

The inputs of the twl4030 codec can be mixed, so we will use the mixer
DAPM for the analog microphone registers(0x05, 0x06), but if we enable
more than one input at the same time, the input impedance of the input
amplifier will be reduced.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Enforce symmetric rates for PXA2xx I2S
Mark Brown [Mon, 11 May 2009 19:05:57 +0000 (20:05 +0100)]
ASoC: Enforce symmetric rates for PXA2xx I2S

There is a single I2S_SYNC pin on the chip.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: em-x270: make the driver support also eXeda and CM-X300 machines
Mike Rapoport [Mon, 11 May 2009 12:05:29 +0000 (15:05 +0300)]
ASoC: em-x270: make the driver support also eXeda and CM-X300 machines

Signed-off-by: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agosound: remove driver_data direct access of struct device
Greg Kroah-Hartman [Mon, 4 May 2009 19:40:54 +0000 (12:40 -0700)]
sound: remove driver_data direct access of struct device

In the near future, the driver core is going to not allow direct access
to the driver_data pointer in struct device.  Instead, the functions
dev_get_drvdata() and dev_set_drvdata() should be used.  These functions
have been around since the beginning, so are backwards compatible with
all older kernel versions.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoASoC: remove driver_data direct access of struct device
Roel Kluin [Mon, 11 May 2009 19:57:08 +0000 (21:57 +0200)]
ASoC: remove driver_data direct access of struct device

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agopxa2xx-ac97: fix reset gpio mode setting
Mike Rapoport [Mon, 11 May 2009 10:11:38 +0000 (13:11 +0300)]
pxa2xx-ac97: fix reset gpio mode setting

Signed-off-by: Mike Rapoport <mike@compulab.co.il>
Acked-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: soc-core: fix crash when removing not instantiated card
Mike Rapoport [Mon, 11 May 2009 10:04:55 +0000 (13:04 +0300)]
ASoC: soc-core: fix crash when removing not instantiated card

If the card was not instantiated in snd_soc_instantiate_card, calling
soc-remove will crash because some of codec, cpu_dai and card .remove
methods are called twice.
Fix this by returning from soc_remove immediately.

Signed-off-by: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix up CODEC DAI formats for big endian CPUs
Mark Brown [Sat, 9 May 2009 15:22:58 +0000 (16:22 +0100)]
ASoC: Fix up CODEC DAI formats for big endian CPUs

ASoC uses the standard ALSA data format definitions to specify the wire
format used between the CPU and CODEC. Since the ALSA data formats all
include the endianess of the data but this information is not relevant
by the time the data has been encoded onto the serial link to the CODEC
this means that either all the CODEC drivers need to declare both big and
little endian variants or the core needs to fix up the format constraints
specified by CODEC drivers.

For now take the latter approach - this will need to be revisited if any
CODECs are endianness dependant.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoLinux 2.6.30-rc5
Linus Torvalds [Sat, 9 May 2009 00:14:14 +0000 (17:14 -0700)]
Linux 2.6.30-rc5

15 years agoMerge git://git.infradead.org/mtd-2.6
Linus Torvalds [Sat, 9 May 2009 00:00:41 +0000 (17:00 -0700)]
Merge git://git.infradead.org/mtd-2.6

* git://git.infradead.org/mtd-2.6:
  mtd: fix timeout in M25P80 driver
  mtd: Bug in m25p80.c during whole-chip erase
  mtd: expose subpage size via sysfs
  mtd: mtd in mtd_release is unused without CONFIG_MTD_CHAR

15 years agoMerge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Fri, 8 May 2009 23:59:23 +0000 (16:59 -0700)]
Merge branch 'x86-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: MCE: make cmci_discover_lock irq-safe
  x86: xen, i386: reserve Xen pagetables
  x86, kexec: fix crashdump panic with CONFIG_KEXEC_JUMP
  x86-64: finish cleanup_highmaps()'s job wrt. _brk_end
  x86: fix boot hang in early_reserve_e820()
  x86: Fix a typo in a printk message
  x86, srat: do not register nodes beyond e820 map

15 years agoMerge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
Linus Torvalds [Fri, 8 May 2009 23:25:00 +0000 (16:25 -0700)]
Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6

* 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
  hwmon: (w83781d) Fix W83782D support (NULL pointer dereference)
  hwmon: (asus_atk0110) Fix compiler warning

15 years agoMerge branch 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze
Linus Torvalds [Fri, 8 May 2009 23:24:25 +0000 (16:24 -0700)]
Merge branch 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze

* 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze:
  microblaze: Fix return value for sys_ipc
  microblaze: Storage class should be before const qualifier

15 years agokprobes: fix to use text_mutex around arm/disarm kprobe
Masami Hiramatsu [Thu, 7 May 2009 20:31:26 +0000 (16:31 -0400)]
kprobes: fix to use text_mutex around arm/disarm kprobe

Fix kprobes to lock text_mutex around some arch_arm/disarm_kprobe() which
are newly added by commit de5bd88d5a5cce3cacea904d3503e5ebdb3852a2.

Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Acked-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Jim Keniston <jkenisto@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agohwmon: (w83781d) Fix W83782D support (NULL pointer dereference)
Jean Delvare [Fri, 8 May 2009 18:27:28 +0000 (20:27 +0200)]
hwmon: (w83781d) Fix W83782D support (NULL pointer dereference)

Commit 360782dde00a2e6e7d9fd57535f90934707ab8a8 (hwmon: (w83781d) Stop
abusing struct i2c_client for ISA devices) broke W83782D support for
devices connected on the ISA bus. You will hit a NULL pointer
dereference as soon as you read any device attribute. Other devices,
and W83782D devices on the SMBus, aren't affected.

Reported-by: Michel Abraham
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Tested-by: Michel Abraham
15 years agohwmon: (asus_atk0110) Fix compiler warning
Luca Tettamanti [Fri, 8 May 2009 18:27:28 +0000 (20:27 +0200)]
hwmon: (asus_atk0110) Fix compiler warning

atk_sensor_type is only used when DEBUG is defined.

Signed-off-by: Luca Tettamanti <kronos.it@gmail.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
15 years agoASoC: AFEB9260 driver
Sergey Lapin [Fri, 8 May 2009 15:19:41 +0000 (19:19 +0400)]
ASoC: AFEB9260 driver

ASoC driver for AT91SAM9260-based AFEB9260 board

Signed-off-by: Sergey Lapin <slapin@ossfans.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agomtd: fix timeout in M25P80 driver
Peter Horton [Fri, 8 May 2009 12:51:53 +0000 (13:51 +0100)]
mtd: fix timeout in M25P80 driver

Extend erase timeout in M25P80 SPI Flash driver.

The M25P80 drivers fails erasing sectors on a M25P128 because the ready
wait timeout is too short. Change the timeout from a simple loop count to a
suitable number of seconds.

Signed-off-by: Peter Horton <zero@colonel-panic.org>
Tested-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
15 years agoASoC: Fix file patterns for PXA sound drivers
Mark Brown [Wed, 6 May 2009 09:36:34 +0000 (10:36 +0100)]
ASoC: Fix file patterns for PXA sound drivers

The file matches for PXA sound drivers missed the generic AC97 support
and were overly specific within sound/soc/pxa, omitting all machine
drivers and the SSP driver.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Fix typo in twl4030_codec_mute function
Peter Ujfalusi [Thu, 7 May 2009 11:32:00 +0000 (14:32 +0300)]
ASoC: TWL4030: Fix typo in twl4030_codec_mute function

Copy-paste error: TWL4030_PRECKL_GAIN >> TWL4030_PRECKR_GAIN
It has not caused problems, since
TWL4030_PRECKL_GAIN == TWL4030_PRECKR_GAIN == 0x30

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agox86: MCE: make cmci_discover_lock irq-safe
Hidetoshi Seto [Fri, 8 May 2009 08:28:40 +0000 (17:28 +0900)]
x86: MCE: make cmci_discover_lock irq-safe

Lockdep reports the warning below when Li tries to offline one cpu:

[  110.835487] =================================
[  110.835616] [ INFO: inconsistent lock state ]
[  110.835688] 2.6.30-rc4-00336-g8c9ed89 #52
[  110.835757] ---------------------------------
[  110.835828] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
[  110.835908] swapper/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
[  110.835982]  (cmci_discover_lock){?.+...}, at: [<ffffffff80236dc0>] cmci_clear+0x30/0x9b

cmci_clear() can be called via smp_call_function_single().

It is better to disable interrupt while holding cmci_discover_lock,
to turn it into an irq-safe lock - we can deadlock otherwise.

[ Impact: fix possible deadlock in the MCE code ]

Reported-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
LKML-Reference: <4A03ED38.8000700@jp.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Reported-by: Shaohua Li<shaohua.li@intel.com>
15 years agox86: xen, i386: reserve Xen pagetables
Jeremy Fitzhardinge [Thu, 7 May 2009 18:56:44 +0000 (11:56 -0700)]
x86: xen, i386: reserve Xen pagetables

The Xen pagetables are no longer implicitly reserved as part of the other
i386_start_kernel reservations, so make sure we explicitly reserve them.
This prevents them from being released into the general kernel free page
pool and reused.

[ Impact: fix Xen guest crash ]

Also-Bisected-by: Bryan Donlan <bdonlan@gmail.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Xen-devel <xen-devel@lists.xensource.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
LKML-Reference: <4A032EEC.30509@goop.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86, kexec: fix crashdump panic with CONFIG_KEXEC_JUMP
Huang Ying [Fri, 8 May 2009 02:51:41 +0000 (10:51 +0800)]
x86, kexec: fix crashdump panic with CONFIG_KEXEC_JUMP

Tim Starling reported that crashdump will panic with kernel compiled
with CONFIG_KEXEC_JUMP due to null pointer deference in
machine_kexec_32.c: machine_kexec(), when deferencing
kexec_image. Refering to:

http://bugzilla.kernel.org/show_bug.cgi?id=13265

This patch fixes the BUG via replacing global variable reference:
kexec_image in machine_kexec() with local variable reference: image,
which is more appropriate, and will not be null.

Same BUG is in machine_kexec_64.c too, so fixed too in the same way.

[ Impact: fix crash on kexec ]

Reported-by: Tim Starling <tstarling@wikimedia.org>
Signed-off-by: Huang Ying <ying.huang@intel.com>
LKML-Reference: <1241751101.6259.85.camel@yhuang-dev.sh.intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agox86-64: finish cleanup_highmaps()'s job wrt. _brk_end
Jan Beulich [Wed, 6 May 2009 12:06:47 +0000 (13:06 +0100)]
x86-64: finish cleanup_highmaps()'s job wrt. _brk_end

With the introduction of the .brk section, special care must be taken
that no unused page table entries remain if _brk_end and _end are
separated by a 2M page boundary. cleanup_highmap() runs very early and
hence cannot take care of that, hence potential entries needing to be
removed past _brk_end must be cleared once the brk allocator has done
its job.

[ Impact: avoids undesirable TLB aliases ]

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agox86: fix boot hang in early_reserve_e820()
Jan Beulich [Wed, 6 May 2009 12:02:19 +0000 (13:02 +0100)]
x86: fix boot hang in early_reserve_e820()

If the first non-reserved (sub-)range doesn't fit the size requested,
an endless loop will be entered. If a range returned from
find_e820_area_size() turns out insufficient in size, the range must
be skipped before calling the function again.

[ Impact: fixes boot hang on some platforms ]

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
Linus Torvalds [Fri, 8 May 2009 04:13:24 +0000 (21:13 -0700)]
Merge git://git./linux/kernel/git/sfrench/cifs-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: (32 commits)
  [CIFS] Fix double list addition in cifs posix open code
  [CIFS] Allow raw ntlmssp code to be enabled with sec=ntlmssp
  [CIFS] Fix SMB uid in NTLMSSP authenticate request
  [CIFS] NTLMSSP reenabled after move from connect.c to sess.c
  [CIFS] Remove sparse warning
  [CIFS] remove checkpatch warning
  [CIFS] Fix final user of old string conversion code
  [CIFS] remove cifs_strfromUCS_le
  [CIFS] NTLMSSP support moving into new file, old dead code removed
  [CIFS] Fix endian conversion of vcnum field
  [CIFS] Remove trailing whitespace
  [CIFS] Remove sparse endian warnings
  [CIFS] Add remaining ntlmssp flags and standardize field names
  [CIFS] Fix build warning
  cifs: fix length handling in cifs_get_name_from_search_buf
  [CIFS] Remove unneeded QuerySymlink call and fix mapping for unmapped status
  [CIFS] rename cifs_strndup to cifs_strndup_from_ucs
  Added loop check when mounting DFS tree.
  Enable dfs submounts to handle remote referrals.
  [CIFS] Remove older session setup implementation
  ...

15 years ago[CIFS] Fix double list addition in cifs posix open code
Steve French [Fri, 8 May 2009 03:04:30 +0000 (03:04 +0000)]
[CIFS] Fix double list addition in cifs posix open code

Remove adding open file entry twice to lists in the file
Do not fill file info twice in case of posix opens and creates

Signed-off-by: Shirish Pargaonkar <shirishp@us.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
15 years agoNOMMU: Don't check vm_region::vm_start is page aligned in add_nommu_region()
David Howells [Thu, 7 May 2009 10:41:37 +0000 (11:41 +0100)]
NOMMU: Don't check vm_region::vm_start is page aligned in add_nommu_region()

Don't check vm_region::vm_start is page aligned in add_nommu_region() because
the region may reflect some non-page-aligned mapped file, such as could be
obtained from RomFS XIP.

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>