openwrt/staging/blogic.git
15 years agoASoC: Replace remaining uses of snd_soc_cnew with snd_soc_add_controls.
Philipp Zabel [Thu, 12 Mar 2009 10:07:54 +0000 (11:07 +0100)]
ASoC: Replace remaining uses of snd_soc_cnew with snd_soc_add_controls.

The drivers are basically duplicating the same code over and over.
As snd_soc_cnew is going to be made static some time after the next
merge window, we might as well convert them now.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Move WM8580 to normal I2C device probe
Mark Brown [Wed, 11 Mar 2009 18:31:08 +0000 (18:31 +0000)]
ASoC: Move WM8580 to normal I2C device probe

Refactor the WM8580 device registration to probe via standard I2C device
registration, registering the DAIs once the device has probed via I2C.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoMerge branch 's3c-iis-header' into for-2.6.30
Mark Brown [Wed, 11 Mar 2009 18:30:48 +0000 (18:30 +0000)]
Merge branch 's3c-iis-header' into for-2.6.30

15 years ago[ARM] Revert futher extraneous changes from the S3C header move
Mark Brown [Wed, 11 Mar 2009 18:28:24 +0000 (18:28 +0000)]
[ARM] Revert futher extraneous changes from the S3C header move

Can't see any immediate need for these; build tested.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Merge dai_ops factor out
Mark Brown [Wed, 11 Mar 2009 16:51:31 +0000 (16:51 +0000)]
ASoC: Merge dai_ops factor out

Merge Eric Maio's patch to merge snd_soc_dai_ops out of line.  Fixed
merge issues and updated drivers, plus an issue with the ops for the two
s3c2443 AC97 DAIs having been merged.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix formats for s3c24xx-i2s register prints
Mark Brown [Wed, 11 Mar 2009 16:28:29 +0000 (16:28 +0000)]
ASoC: Fix formats for s3c24xx-i2s register prints

The register values are all u32 so don't need the long format.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Remove version display from WM8580 driver
Mark Brown [Wed, 11 Mar 2009 14:12:28 +0000 (14:12 +0000)]
ASoC: Remove version display from WM8580 driver

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add initial driver for the WM8400 CODEC
Mark Brown [Tue, 10 Mar 2009 10:55:15 +0000 (10:55 +0000)]
ASoC: Add initial driver for the WM8400 CODEC

The WM8400 is a highly integrated audio CODEC and power management unit
intended for mobile multimedia application.  This driver supports the
primary audio CODEC features, including:

 - 1W speaker driver
 - Fully differential headphone output
 - Up to 4 differential microphone inputs

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: buildfix for OSK
David Brownell [Wed, 11 Mar 2009 10:37:25 +0000 (02:37 -0800)]
ASoC: buildfix for OSK

Buildfix:

  CC      sound/soc/omap/osk5912.o
  sound/soc/omap/osk5912.c: In function 'osk_soc_init':
  sound/soc/omap/osk5912.c:189: error: implicit declaration of function 'clk_get_usecount'
  make[3]: *** [sound/soc/omap/osk5912.o] Error 1

There's no such (standard) clock interface.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoMerge branch 's3c-iis-header' into for-2.6.30
Mark Brown [Wed, 11 Mar 2009 11:12:48 +0000 (11:12 +0000)]
Merge branch 's3c-iis-header' into for-2.6.30

Conflicts:
arch/arm/mach-shark/include/mach/io.h

15 years ago[ARM] Revert extraneous changes from the S3C audio header move
Mark Brown [Wed, 11 Mar 2009 11:02:33 +0000 (11:02 +0000)]
[ARM] Revert extraneous changes from the S3C audio header move

These changes were included in the S3C audio header move but are not
directly related to it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix up merge with the ARM tree
Mark Brown [Tue, 10 Mar 2009 19:51:07 +0000 (19:51 +0000)]
ASoC: Fix up merge with the ARM tree

The same change has been made with the final lines in slightly differnet
orders.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: don't touch pxa-ssp registers when stream is running
Daniel Mack [Tue, 10 Mar 2009 15:41:00 +0000 (16:41 +0100)]
ASoC: don't touch pxa-ssp registers when stream is running

In pxa_ssp_set_dai_fmt(), check whether there is anything to do at all.
If there would be but the SSP port is in use already, bail out.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoALSA: ASoC: Davinci: Updated sffsdr_hw_params() function to new format
Hugo Villeneuve [Tue, 10 Mar 2009 03:32:08 +0000 (23:32 -0400)]
ALSA: ASoC: Davinci: Updated sffsdr_hw_params() function to new format

Signed-off-by: Hugo Villeneuve <hugo@hugovil.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoALSA: ASoC: Davinci: Replaced DAI format RIGHT_J by DSP_B for SFFSDR
Hugo Villeneuve [Tue, 10 Mar 2009 03:32:07 +0000 (23:32 -0400)]
ALSA: ASoC: Davinci: Replaced DAI format RIGHT_J by DSP_B for SFFSDR

Signed-off-by: Hugo Villeneuve <hugo@hugovil.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoMerge commit 'takashi/topic/asoc' into for-2.6.30
Mark Brown [Tue, 10 Mar 2009 15:42:03 +0000 (15:42 +0000)]
Merge commit 'takashi/topic/asoc' into for-2.6.30

15 years agoASoC: Fix Samsung S3C2412_IISMOD_SDF_{MSB,LSB} definitions
Ben Dooks [Mon, 9 Mar 2009 17:47:13 +0000 (17:47 +0000)]
ASoC: Fix Samsung S3C2412_IISMOD_SDF_{MSB,LSB} definitions

The definitions of S3C2412_IISMOD_SDF_MSB and S3C2412_IISMOD_SDF_LSB
are incorrect, being the same S3C2412_IISMOD_SDF_IIS which is the
only correct one in this series.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Convert PXA AC97 driver to probe with the platform device
Mark Brown [Mon, 9 Mar 2009 18:18:33 +0000 (18:18 +0000)]
ASoC: Convert PXA AC97 driver to probe with the platform device

This will break any boards that don't register the AC97 controller
device due to using ASoC.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoMerge branch 'for-2.6.30' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Takashi Iwai [Mon, 9 Mar 2009 11:05:21 +0000 (12:05 +0100)]
Merge branch 'for-2.6.30' of git://git./linux/kernel/git/broonie/sound-2.6 into topic/asoc

15 years agoASoC: Add a driver for AK4104 S/PDIF transmitter
Daniel Mack [Mon, 9 Mar 2009 01:13:17 +0000 (02:13 +0100)]
ASoC: Add a driver for AK4104 S/PDIF transmitter

This adds a driver for the SPI connected AK4104 S/PDIF transmitter
device. Its features are fairly simple, but as there is need to set up
certain bits in the IEC958 information, this better goes into a real
driver.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Mark Brown <broonie@sirena.org.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix Kconfig dependency of CONFIG_SND_S3C24XX_SOC_JIVE_WM8750
Takashi Iwai [Sun, 8 Mar 2009 23:52:17 +0000 (00:52 +0100)]
ASoC: Fix Kconfig dependency of CONFIG_SND_S3C24XX_SOC_JIVE_WM8750

Remove a non-existing Kconfig CONFIG_SND_SOC_WM8750_SPI.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoASoC: Remove unneeded forward reference to WM8753 SPI implementation
Mark Brown [Sun, 8 Mar 2009 18:57:34 +0000 (18:57 +0000)]
ASoC: Remove unneeded forward reference to WM8753 SPI implementation

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: bring cs4270 feature/limitations list in sync
Daniel Mack [Sun, 8 Mar 2009 16:51:52 +0000 (17:51 +0100)]
ASoC: bring cs4270 feature/limitations list in sync

Removes numbers from the list of features/limitations and makes it
reflect recent changes to the code.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Improve pause/unpause performance in Freescale 8610 drivers
Timur Tabi [Sat, 7 Mar 2009 00:39:34 +0000 (18:39 -0600)]
ASoC: Improve pause/unpause performance in Freescale 8610 drivers

Add support for true pause and unpause.  Without this, mplayer will drop some
audio (less than one second, but still noticeable) when pausing playback.

Remove support for PM suspend and resume from the trigger function, since the
driver doesn't support PM anyway.

Optimize the delay after starting capture.  Instead of delaying 1ms, the driver
now polls the hardware.  The new delay is shorter by over 90% yet still
effective.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Davinci: Fix incorrect machine type for SFFSDR board
Hugo Villeneuve [Fri, 6 Mar 2009 20:56:53 +0000 (15:56 -0500)]
ASoC: Davinci: Fix incorrect machine type for SFFSDR board

Signed-off-by: Hugo Villeneuve <hugo@hugovil.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix logging severity for some S3C error messages
Mark Brown [Fri, 6 Mar 2009 18:13:43 +0000 (18:13 +0000)]
ASoC: Fix logging severity for some S3C error messages

Upgrade the severity of some failure messages from debug level so
they're displayed by default.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Re-remove hand-rolled pr_debug() macros
Mark Brown [Fri, 6 Mar 2009 18:04:34 +0000 (18:04 +0000)]
ASoC: Re-remove hand-rolled pr_debug() macros

The recent set of S3C64xx patches re-added a lot of uses of DBG() that
had previously been removed - revert this so the standard pr_debug()
macro is used.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Staticise workqueue function for GPIO jack detection
Mark Brown [Fri, 6 Mar 2009 11:32:17 +0000 (11:32 +0000)]
ASoC: Staticise workqueue function for GPIO jack detection

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Blackfin: fix typo in MUTE definition
Mike Frysinger [Fri, 6 Mar 2009 07:53:30 +0000 (15:53 +0800)]
ASoC: Blackfin: fix typo in MUTE definition

Reported-by: Rob Maris <maris.rob@vdi.de>
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Blackfin: move gpio_err behind the define that is only user of it
Mike Frysinger [Fri, 6 Mar 2009 07:53:28 +0000 (15:53 +0800)]
ASoC: Blackfin: move gpio_err behind the define that is only user of it

Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add headset jack detection for SDP3430 machine driver
Lopez Cruz, Misael [Thu, 5 Mar 2009 17:32:31 +0000 (11:32 -0600)]
ASoC: Add headset jack detection for SDP3430 machine driver

Add headset jack detection for SDP3430 boards using SoC jack
reporting interface. Headset detection on SDP3430 board is
achieved through TWL4030 GPIO_2 pin.

Signed-off-by: Misael Lopez Cruz <x0052729@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: add support for SSI asynchronous mode to the Freescale SSI drivers
Timur Tabi [Thu, 5 Mar 2009 23:23:37 +0000 (17:23 -0600)]
ASoC: add support for SSI asynchronous mode to the Freescale SSI drivers

Add a new device tree property for the SSI node: "fsl,ssi-asynchronous".  If
defined, the SSI is programmed into asynchronous mode, otherwise it is
programmed into synchronous mode.  In asynchronous mode, pin SRCK must be
connected to the same clock source as STFS, and pin SRFS must be connected to
the same signal as STFS.  Asynchronous mode allows playback and capture to
use different sample sizes.  It also technically allows different sample rates,
but the driver does not support that.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Update Kconfig for Samsung CPUs to reflect S3C64xx support
Mark Brown [Thu, 5 Mar 2009 17:26:15 +0000 (17:26 +0000)]
ASoC: Update Kconfig for Samsung CPUs to reflect S3C64xx support

We now support the 64xx series as well as the 24xx series - make sure
people using Kconfig know this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix memory allocation for snd_soc_dapm_switch names
Mark Brown [Thu, 5 Mar 2009 17:06:23 +0000 (17:06 +0000)]
ASoC: Fix memory allocation for snd_soc_dapm_switch names

snd_soc_dapm_switch ends up ends up in dapm_new_mixer() (since a switch
is a special case of a mixer with only one input) but this wasn't
correctly handled in the code.

Also fix the coding style for the switch below while we're here.

Reported-by: Joonyoung Shim <dofmind@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: add two more bitfields for PXA SSP
Daniel Mack [Thu, 5 Mar 2009 13:21:26 +0000 (14:21 +0100)]
ASoC: add two more bitfields for PXA SSP

Add two more bitfields for the PSP register. As they seem to exist
for PXA3xx only, define them conditionally.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Factor out DAPM widget power check into separate function
Mark Brown [Sun, 1 Mar 2009 19:21:10 +0000 (19:21 +0000)]
ASoC: Factor out DAPM widget power check into separate function

Essentially simple code motion to facilitate refactoring of the power
decisions.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix name of register bit in pxa-ssp
Daniel Mack [Wed, 4 Mar 2009 20:16:57 +0000 (21:16 +0100)]
ASoC: Fix name of register bit in pxa-ssp

A bit in PXA's SSCR0 register was erroneously named ADC but its name is
in fact ACS (audio clock select).

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Make the HS ramp delay configurable
Peter Ujfalusi [Thu, 5 Mar 2009 10:48:49 +0000 (12:48 +0200)]
ASoC: TWL4030: Make the HS ramp delay configurable

Enum type for selecting the desired ramp delay for the headset output.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Refresh JIVE driver
Mark Brown [Wed, 4 Mar 2009 20:17:48 +0000 (20:17 +0000)]
ASoC: Refresh JIVE driver

Remove uneeded startup callback and use snd_soc_dapm_nc_pin()

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Select DMA if I2S is configured
Ben Dooks [Wed, 4 Mar 2009 00:49:34 +0000 (00:49 +0000)]
ASoC: Select DMA if I2S is configured

Select the relevant DMA implementation when the
sound driver is selected.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add s3c64xx-i2s support
Ben Dooks [Wed, 4 Mar 2009 00:49:31 +0000 (00:49 +0000)]
ASoC: Add s3c64xx-i2s support

Add the initial code to support the S3C64XX I2S hardware using the
s3c-i2s-v2 core code.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Split s3c2412-i2s.c into core and SoC specific parts
Ben Dooks [Wed, 4 Mar 2009 00:49:30 +0000 (00:49 +0000)]
ASoC: Split s3c2412-i2s.c into core and SoC specific parts

The S3C2412 I2S (IIS) interface is replicated on further Samsung SoC
parts in a broadly compatible way, so split the common code out into
a core called s3c-i2s-v2.[ch] so that the newer SoCs such as the
S3C6410 can make use of it.

As such, all the original s3c2412 functions are currently being left
with their original names, and will be renamed later in the series.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add JIVE audio support
Ben Dooks [Wed, 4 Mar 2009 00:49:27 +0000 (00:49 +0000)]
ASoC: Add JIVE audio support

Add support for the Jive's WM8750 codec attached via the S3C2412 IIS.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add DAPM machine widgets to SDP3430 driver
Lopez Cruz, Misael [Wed, 4 Mar 2009 17:39:07 +0000 (11:39 -0600)]
ASoC: Add DAPM machine widgets to SDP3430 driver

Add DAPM machine domain widgets to SDP3430 machine driver.
Interconnection:
* Ext Mic: MAINMIC, SUBMIC
* Ext Spk: HFL, HFR
* Headset Jack: HSMIC, HSOL, HSOR

Signed-off-by: Misael Lopez Cruz <x0052729@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoMerge commit 's3c-iis-header' into HEAD
Mark Brown [Fri, 6 Mar 2009 13:36:37 +0000 (13:36 +0000)]
Merge commit 's3c-iis-header' into HEAD

15 years agoS3C: Move <mach/audio.h> to <plat/audio.h>
Ben Dooks [Wed, 4 Mar 2009 00:49:28 +0000 (00:49 +0000)]
S3C: Move <mach/audio.h> to <plat/audio.h>

The <mach/audio.h> file needs to be common to both ARCH_S3C2410 and
ARCH_S3C64XX as they share common driver code, so move it to <plat/audio.h>.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoS3C24XX: Move and update IIS headers
Ben Dooks [Wed, 4 Mar 2009 00:49:26 +0000 (00:49 +0000)]
S3C24XX: Move and update IIS headers

Move the IIS headers to their correct place.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: make ops a pointer in 'struct snd_soc_dai'
Eric Miao [Tue, 3 Mar 2009 01:41:00 +0000 (09:41 +0800)]
ASoC: make ops a pointer in 'struct snd_soc_dai'

Considering the fact that most cpu_dai or codec_dai are using a same
'snd_soc_dai_ops' for several similar interfaces, 'ops' would be better
made a pointer instead, to make sharing easier and code a bit cleaner.

The patch below is rather preliminary since the asoc tree is being
actively developed, and this touches almost every piece of code,
(and possibly many others in development need to be changed as
well). Building of all codecs are OK, yet to every SoC, I didn't test
that.

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: wm8510 pll settings
Jonas Andersson [Wed, 4 Mar 2009 07:24:26 +0000 (08:24 +0100)]
ASoC: wm8510 pll settings

When setting WM8510_MCLKDIV the pll was turned off.

When setting pll frequency you got twice the expected freq, because
the  code calculated  with postscaler of 8,  but  the hardware divide by 4.

Signed-off-by: Jonas Andersson <jonas@microbit.se>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add GPIO support for jack reporting interface
Lopez Cruz, Misael [Tue, 3 Mar 2009 21:25:04 +0000 (15:25 -0600)]
ASoC: Add GPIO support for jack reporting interface

Add GPIO support to jack reporting framework in ASoC using gpiolib calls.
The gpio support exports two new functions: snd_soc_jack_add_gpios and
snd_soc_jack_free_gpios.

Client drivers using gpio feature must pass an array of jack_gpio pins
belonging to a specific jack to the snd_soc_jack_add_gpios function. The
framework will request the gpios, set the data direction and request irq.
The framework will update power status of related jack_pins when an event on
the gpio pins comes according to the reporting bits defined for each gpio.

All gpio resources allocated when adding jack_gpio pins can be released
using snd_soc_jack_free_gpios function.

Signed-off-by: Misael Lopez Cruz <x0052729@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: UDA1380: DATAI is slave only
Philipp Zabel [Tue, 3 Mar 2009 15:10:52 +0000 (16:10 +0100)]
ASoC: UDA1380: DATAI is slave only

Only allow SND_SOC_DAIFMT_CBS_CFS for the playback DAI.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Use network mode with 2 slots for 16-bit stereo in pxa-ssp/Zylonite
Philipp Zabel [Tue, 3 Mar 2009 15:10:51 +0000 (16:10 +0100)]
ASoC: Use network mode with 2 slots for 16-bit stereo in pxa-ssp/Zylonite

For consistency with 24-bit and 32-bit modes, don't send 16-bit stereo
in one 32-bit transfer. Use 2 slots instead on Zylonite. It should result
in exactly the same behaviour.
Now it is possible to use 16-bit single slot transfers in pxa-ssp, which
are needed for Magician to get two frame clock pulses per sample
(one for each channel).

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Tested-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: UDA1380: change decimator/interpolator register handling
Philipp Zabel [Tue, 3 Mar 2009 15:10:54 +0000 (16:10 +0100)]
ASoC: UDA1380: change decimator/interpolator register handling

If the UDA1380's interpolator or decimator are set to be clocked from
the WSPLL (which syncs to the WSI signal), the DAI link must be running
to change the interpolator/decimator registers (which include volume
controls and digital mute setting).

* Queue work in the alsa PCM_START .trigger to flush registers
  as soon as the link is running. This replaces the .prepare
  and .digital_mute callbacks.
* Use the SILENCE override instead of MTM for muting and remove
  its alsa control to avoid confusion.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Remove version display from the UDA1380 driver
Philipp Zabel [Tue, 3 Mar 2009 15:10:53 +0000 (16:10 +0100)]
ASoC: Remove version display from the UDA1380 driver

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: fix typo and removed unneeded switch case for cs4270
Daniel Mack [Sat, 28 Feb 2009 12:21:03 +0000 (13:21 +0100)]
ASoC: fix typo and removed unneeded switch case for cs4270

This removes a misspelled comment and got rid of superfluous switch
case.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Acked-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add SND_SOC_DAPM_PIN_SWITCH controls for exposing DAPM pins
Mark Brown [Sat, 28 Feb 2009 21:14:20 +0000 (21:14 +0000)]
ASoC: Add SND_SOC_DAPM_PIN_SWITCH controls for exposing DAPM pins

On some systems it is desirable for control for DAPM pins to be provided
to user space. This is the case with things like GSM modems which are
controlled primarily from user space, for example. Provide a helper which
exposes the state of a DAPM pin to user space for use in cases like this.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add cs4270 support for slave mode configurations
Daniel Mack [Wed, 25 Feb 2009 13:37:21 +0000 (14:37 +0100)]
ASoC: Add cs4270 support for slave mode configurations

Added support for scenarios where the Cirrus CS4270 audio codec is slave
to the bitclk and lrclk. Mixed setups are unsupported.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix copyright statements on Simtec files
Ben Dooks [Sat, 28 Feb 2009 17:09:57 +0000 (17:09 +0000)]
ASoC: Fix copyright statements on Simtec files

Fix the copyright statements in two of the S3C24XX ASoC files
that have (c) when we require the full word.

Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: wm8753 - Fix build error
Takashi Iwai [Thu, 26 Feb 2009 10:29:58 +0000 (11:29 +0100)]
ASoC: wm8753 - Fix build error

sound/soc/codecs/wm8753.c: In function 'wm8753_probe':
sound/soc/codecs/wm8753.c:1577: error: implicit declaration of function 'wm8753_add_controls'

Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoASoC: Only write back non-default registers when resuming WM8753
Mark Brown [Sun, 22 Feb 2009 20:04:41 +0000 (20:04 +0000)]
ASoC: Only write back non-default registers when resuming WM8753

This will reduce the number of writes done on resume, allowing that to
complete faster (especially on systems with very slow I2C like the
current Samsung driver).

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Convert WM8753 to register via normal device probe
Mark Brown [Tue, 24 Feb 2009 23:33:12 +0000 (23:33 +0000)]
ASoC: Convert WM8753 to register via normal device probe

The base support for the only in-tree user, the GTA01, is out of tree
and will be updated separately.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Shuffle WM8753 device registration code
Mark Brown [Sun, 22 Feb 2009 14:39:03 +0000 (14:39 +0000)]
ASoC: Shuffle WM8753 device registration code

This patch should be pure code motion, separating that out from the
functional changes to move to new style device registration.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix Zylonite voice interface stereo configurations
Mark Brown [Mon, 23 Feb 2009 18:45:19 +0000 (18:45 +0000)]
ASoC: Fix Zylonite voice interface stereo configurations

We always run in the first timeslot of one.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Improve WM9713 voice DAC shutdown procedure
Mark Brown [Fri, 23 Jan 2009 14:44:54 +0000 (14:44 +0000)]
ASoC: Improve WM9713 voice DAC shutdown procedure

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Only unregister drivers we registered for WM8753
Mark Brown [Sun, 22 Feb 2009 14:24:00 +0000 (14:24 +0000)]
ASoC: Only unregister drivers we registered for WM8753

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Report I/O errors from WM8753 reset
Mark Brown [Sun, 22 Feb 2009 14:19:23 +0000 (14:19 +0000)]
ASoC: Report I/O errors from WM8753 reset

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Disable WM8731 line bypass by default
Mark Brown [Thu, 19 Feb 2009 14:29:49 +0000 (14:29 +0000)]
ASoC: Disable WM8731 line bypass by default

This avoids temporarily enabling the ouput stages during startup which
can cause audible effets in the output stages.

Reported-by: Fredrik RedgÄrd <rik@svep.se>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add device init/exit annotations to new-style Wolfson CODEC drivers
Mark Brown [Wed, 18 Feb 2009 21:25:40 +0000 (21:25 +0000)]
ASoC: Add device init/exit annotations to new-style Wolfson CODEC drivers

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Check for errors when writing WM8731 reset register
Mark Brown [Wed, 18 Feb 2009 21:06:01 +0000 (21:06 +0000)]
ASoC: Check for errors when writing WM8731 reset register

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TWL4030: Add digital loopback support
Peter Ujfalusi [Wed, 18 Feb 2009 12:39:05 +0000 (14:39 +0200)]
ASoC: TWL4030: Add digital loopback support

This patch adds the digital loopback/bypass support for twl4030 codec.

The digital loopback will let the digimic0 (routed in the TX1 capture path
inside of TWL4030) data to be routed back to the RX2 playback path
(I2S stereo). It can also route the analog capture date routed through the
TX1 back to RX2.

Effectively the digital loopback is routing the audio from the TX1 capture path
to the RX2 playback path.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Implement SPI device unregistration for WM8731
Mark Brown [Wed, 18 Feb 2009 12:44:40 +0000 (12:44 +0000)]
ASoC: Implement SPI device unregistration for WM8731

Completely untested.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix build for corgi and poodle
Mark Brown [Wed, 18 Feb 2009 12:34:53 +0000 (12:34 +0000)]
ASoC: Fix build for corgi and poodle

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Remove version display from the WM8753 driver
Mark Brown [Wed, 18 Feb 2009 11:36:44 +0000 (11:36 +0000)]
ASoC: Remove version display from the WM8753 driver

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Refactor WM8731 device registration
Mark Brown [Mon, 16 Feb 2009 20:49:16 +0000 (20:49 +0000)]
ASoC: Refactor WM8731 device registration

Move the WM8731 driver to use a more standard device registration
scheme where the device can be registered independantly of the ASoC
probe.

As a transition measure push the current manual code for registering
the WM8731 into the individual machine driver probes. This allows
separate patches to update the relevant architecture files with less
risk of merge issues.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Shuffle WM8731 SPI and I2C device registration
Mark Brown [Mon, 16 Feb 2009 19:35:43 +0000 (19:35 +0000)]
ASoC: Shuffle WM8731 SPI and I2C device registration

This is a pure code motion patch intended to improve reviewability of a
following patch moving WM8731 to use more standard device registration.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Rename AT91SAMG20-EK for applications
Mark Brown [Mon, 16 Feb 2009 18:00:58 +0000 (18:00 +0000)]
ASoC: Rename AT91SAMG20-EK for applications

This is a bit more idiomatic and makes identifying a configuration
based on the board type work better.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Actively manage MCLK for AT91SAM9G20-EK
Mark Brown [Mon, 16 Feb 2009 17:51:54 +0000 (17:51 +0000)]
ASoC: Actively manage MCLK for AT91SAM9G20-EK

We have software control of the MCLK for the WM8731 so save a bit of
power by actively managing it within the machine driver, enabling it
only while the codec is active.

Once ASoC supports multiple boards and doesn't require the soc-audio
device the initial clock setup should be pushed down into the arch/arm
code but for now this reduces merge issues.

Tested-by: Sedji Gaouaou <sedji.gaouaou@atmel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Check machine type before loading on AT91SAM9G20-EK
Mark Brown [Mon, 16 Feb 2009 16:04:05 +0000 (16:04 +0000)]
ASoC: Check machine type before loading on AT91SAM9G20-EK

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Improve diagnostics for AT91SAM9G20-EK probe
Mark Brown [Mon, 16 Feb 2009 13:38:11 +0000 (13:38 +0000)]
ASoC: Improve diagnostics for AT91SAM9G20-EK probe

We should display an error by default if we fail to register.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Clean up WM8731 bias level configuration
Mark Brown [Mon, 16 Feb 2009 19:20:15 +0000 (19:20 +0000)]
ASoC: Clean up WM8731 bias level configuration

The WM8731 bias level configuration function was written slightly
obscurely - streamline the code a little and refresh the comments.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Remove version display from the WM8731 driver
Mark Brown [Mon, 16 Feb 2009 14:08:22 +0000 (14:08 +0000)]
ASoC: Remove version display from the WM8731 driver

It makes boot a bit more noisy and I never remember to update it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix WM8753 DAIs unregistering
Paul Fertser [Sun, 15 Feb 2009 23:49:41 +0000 (02:49 +0300)]
ASoC: Fix WM8753 DAIs unregistering

WM8753 uses a tricky way to switch DAIs "on the fly", for that it
registers 2 dummy DAIs and substitutes them depending on mixer control.

List element of registered dummy DAIs should be preserved to allow
unregistering of DAIs on module unload.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix DaVinci module unload error
Kevin Hilman [Fri, 13 Feb 2009 19:36:37 +0000 (11:36 -0800)]
ASoC: Fix DaVinci module unload error

Fix for the error when the audio module is unloaded.  On unregistering
the platform_device, platform_device_release will free the platform
data.If platform data is static the kernel panics when it is freed.
Instead use the platform device helper function to add data.

This change has been tested on DM644x EVM, DM644x SFFSDR and DM355 EVM.

Signed-off-by: Chaithrika U S <chaithrika@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoMerge branch 'for-2.6.30' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
Takashi Iwai [Fri, 13 Feb 2009 14:10:35 +0000 (15:10 +0100)]
Merge branch 'for-2.6.30' of git://git./linux/kernel/git/broonie/sound-2.6 into topic/asoc

15 years agoMerge branch 'for-2.6.29' into for-2.6.30
Mark Brown [Fri, 13 Feb 2009 14:02:08 +0000 (14:02 +0000)]
Merge branch 'for-2.6.29' into for-2.6.30

15 years agoASoC: Only register AC97 bus if it's not done already
Mark Brown [Thu, 12 Feb 2009 19:33:19 +0000 (19:33 +0000)]
ASoC: Only register AC97 bus if it's not done already

ASoC supports both explicit codec drivers for AC97 devices and a simple
driver which uses the standard ALSA AC97 framework for codec support.
When used with the generic AC97 codec support that will provide the
ad hoc AC97 device for drivers like touchscreens to attach to so the
core shouldn't do so.

Reported-by: Manuel Lauss <mano@roarinelk.homelinux.net>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: add additional controls to the CS4270 codec driver
Timur Tabi [Tue, 3 Feb 2009 17:09:32 +0000 (11:09 -0600)]
ASoC: add additional controls to the CS4270 codec driver

Update the CS4270 codec driver to allow applications to use the mixer to
control Digital Loopback, Soft Ramp, Zero Cross, Popguard, and Auto-Mute.
Soft Ramp, Zero Cross, and Auto-Mute are disabled by the driver when it first
initializes the hardware, but these features either don't work or interfere
with normal ALSA behavior.  However, they can now be re-enabled by an
application if desired.

Remove CONFIG_SND_SOC_CS4270_HWMUTE and always allow ASoC to control the mute
bits.  The driver previously and erroneously assumed that these bits
control only external muting circuitry, but they also control internal
muting circuitry, so they should always be used.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Fix forgotten replacements of socdev->codec
Takashi Iwai [Wed, 11 Feb 2009 07:28:04 +0000 (08:28 +0100)]
ASoC: Fix forgotten replacements of socdev->codec

The snd_soc_codec was moved into socdev->card, but this change wasn't
applied in some places.  Fixed now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'for-2.6.29' into for-2.6.30
Mark Brown [Tue, 10 Feb 2009 21:37:01 +0000 (21:37 +0000)]
Merge branch 'for-2.6.29' into for-2.6.30

15 years agoASoC: Update SDP3430 machine driver for snd_soc_card
Lopez Cruz, Misael [Tue, 10 Feb 2009 08:05:07 +0000 (02:05 -0600)]
ASoC: Update SDP3430 machine driver for snd_soc_card

This patch replaces "snd_soc_machine" structure by "snd_soc_card" in
SP3430 driver. This change is needed in SDP3430 driver to reflect
changes introduced by "ASoC: Rename snd_soc_card to snd_soc_machine" patch
(875065491fba8eb13219f16c36e79a6fb4e15c68).

Signed-off-by: Misael Lopez Cruz <x0052729@ti.com>
Acked-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TLV320AIC3X: Add TLV information for volume controls
Jarkko Nikula [Mon, 9 Feb 2009 12:27:07 +0000 (14:27 +0200)]
ASoC: TLV320AIC3X: Add TLV information for volume controls

TLV320AIC3X volume controls are logarithmic. Export their dB ranges.

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: TLV320AIC3X: Fix volume ranges
Jarkko Nikula [Mon, 9 Feb 2009 12:27:06 +0000 (14:27 +0200)]
ASoC: TLV320AIC3X: Fix volume ranges

This is a minor fix but helps to define dB ranges for volume controls.

Only DAC digital volume has full register value range from 0 to 127 but
ADC PGA gain and output stage volume controls don't.

For ADC PGA, maximum value is 119 and then it saturates to the same
gain value of 59.5 dB. For output stages, value 117 corresponds to -78.3 dB
and is muted for values 118 and above.

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: pxa2xx-i2s: remove I2S pin setup
Philipp Zabel [Thu, 5 Feb 2009 16:48:21 +0000 (17:48 +0100)]
ASoC: pxa2xx-i2s: remove I2S pin setup

This removes the calls to pxa_gpio_mode from the pxa2xx-i2s driver.
Pin setup should be done during board init via pxa2xx_mfp_config
instead.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Acked-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agopxa/spitz: Setup I2S pins for pxa2xx-i2s
Philipp Zabel [Thu, 5 Feb 2009 16:48:20 +0000 (17:48 +0100)]
pxa/spitz: Setup I2S pins for pxa2xx-i2s

The spitz has a WM8750 codec connected as I2S slave but doesn't use the
PXA I2S system clock.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Acked-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agopxa/h5000: Setup I2S pins for pxa2xx-i2s
Philipp Zabel [Thu, 5 Feb 2009 16:48:19 +0000 (17:48 +0100)]
pxa/h5000: Setup I2S pins for pxa2xx-i2s

The iPAQ h5000 has an AK4535 codec connected as I2S slave,
PXA I2S providing SYSCLK.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Acked-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: count reaches 10001, not 10000.
Roel Kluin [Sun, 8 Feb 2009 17:17:37 +0000 (18:17 +0100)]
ASoC: count reaches 10001, not 10000.

With a postfix increment count reaches 10001, not 10000.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Add initial support of Mitac mioa701 device SoC.
Robert Jarzmik [Sat, 7 Feb 2009 13:01:58 +0000 (14:01 +0100)]
ASoC: Add initial support of Mitac mioa701 device SoC.

This machine driver enables sound functions on Mitac mio
a701 smartphone. Build upon ASoC v1, it handles :
 - rear speaker
 - front speaker
 - microphone
 - GSM

A global "Mio Mode" switch is not yet provided to cope with
audio path setup. As balance on audio chip line is no more
assured, an incorrect setup can produce a lot of heat and
even fry the battery behind the wm9713 and the speaker
amplifier.

It doesn't cope with :
 - headset jack
 - mio master mode
 - master volume control

This driver is backported from ASoc v2, and amputated from
scenario setups and master volume control.

[Minor mods for terminology in comments -- broonie]

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoMerge branch 'for-2.6.29' into for-2.6.30
Mark Brown [Fri, 6 Feb 2009 14:19:45 +0000 (14:19 +0000)]
Merge branch 'for-2.6.29' into for-2.6.30

15 years agoASoC: optimize init sequence of Freescale MPC8610 sound drivers
Timur Tabi [Thu, 5 Feb 2009 23:56:02 +0000 (17:56 -0600)]
ASoC: optimize init sequence of Freescale MPC8610 sound drivers

In the Freescale MPC8610 sound drivers, relocate all code from the _prepare
functions into the corresponding _hw_params functions.  These drivers assumed
that the sample size is known in the _prepare function and not in the
_hw_params function, but this is not true.

Move the code in fsl_dma_prepare() into fsl_dma_hw_param().  Create
fsl_ssi_hw_params() and move the code from fsl_ssi_prepare() into it.

Turn off snooping for DMA operations to/from I/O registers, since that's not
necessary.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
15 years agoASoC: Blackfin: drop unnecessary dma casts
Mike Frysinger [Fri, 6 Feb 2009 10:12:35 +0000 (18:12 +0800)]
ASoC: Blackfin: drop unnecessary dma casts

Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>