openwrt/staging/blogic.git
14 years agoASoC: update setting for pxa ssp slave mode
Haojian Zhuang [Fri, 13 Aug 2010 13:55:35 +0000 (21:55 +0800)]
ASoC: update setting for pxa ssp slave mode

SCFR bit is required to be always set if pxa ssp is in slave mode. This bit
indicates clock input to SSPSCLK is only active during data transfers.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: fix pxa2xx-pcm.h path
Haojian Zhuang [Fri, 13 Aug 2010 13:55:27 +0000 (21:55 +0800)]
ASoC: fix pxa2xx-pcm.h path

Since pxa2xx-pcm.h is removed from sound/soc/pxa, we need to update the
path in related files.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Tested-by: Ian Lartey <ian@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: multi-component: Fix reference to moved header file, which was unused anyway.
Ian Lartey [Fri, 13 Aug 2010 16:02:13 +0000 (17:02 +0100)]
ASoC: multi-component: Fix reference to moved header file, which was unused anyway.

 Removed #include of pxa2xx-pcm.h

Signed-off-by: Ian Lartey <ian@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Remove redundant device name from debugfs directory
Mark Brown [Thu, 12 Aug 2010 14:49:52 +0000 (15:49 +0100)]
ASoC: Remove redundant device name from debugfs directory

Since the core now includes deduplication in the name of CODEC
devices there's no need to add extra for the debugfs directory name.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Set up debugfs only once per CODEC
Mark Brown [Thu, 12 Aug 2010 14:44:04 +0000 (15:44 +0100)]
ASoC: Set up debugfs only once per CODEC

Since the debugfs directory is current per CODEC we should only init
it when the CODEC is initialised, otherwise we end up with errors
being generated when an attempt is made to add duplicate debugfs
entries.

Since most of this stuff is actually for the card we should refactor
but this can come later.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Remove unused driver data from WM8961 probe
Mark Brown [Thu, 12 Aug 2010 14:09:55 +0000 (15:09 +0100)]
ASoC: Remove unused driver data from WM8961 probe

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Staticise WM8727 codec driver structure
Mark Brown [Thu, 12 Aug 2010 14:02:36 +0000 (15:02 +0100)]
ASoC: Staticise WM8727 codec driver structure

Nothing should be referencing this any more.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Update WM8962 to build with multi-component
Mark Brown [Thu, 12 Aug 2010 14:02:11 +0000 (15:02 +0100)]
ASoC: Update WM8962 to build with multi-component

No notable changes, currently build tested only.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoMerge branch 'topic/multi-component' of git://git.kernel.org/pub/scm/linux/kernel...
Mark Brown [Thu, 12 Aug 2010 13:40:28 +0000 (14:40 +0100)]
Merge branch 'topic/multi-component' of git://git./linux/kernel/git/lrg/asoc-2.6 into for-2.6.37

14 years agoASoC: multi-component: TWL4030: Restore registers on removal
Peter Ujfalusi [Thu, 12 Aug 2010 06:29:52 +0000 (09:29 +0300)]
ASoC: multi-component: TWL4030: Restore registers on removal

Add back the register restore call, when the codec driver is
removed.
This does not affect normal operation, but it is usefull when
debugging audio through the twl4030 class codecs.

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>
14 years agoASoC: Automatically determine control_data for soc-cache users
Mark Brown [Thu, 12 Aug 2010 09:59:15 +0000 (10:59 +0100)]
ASoC: Automatically determine control_data for soc-cache users

Since the provision of a struct device for the CODEC is now mandatory
we can use container_of() to locate the struct i2c_client and struct
spi_device for relevant devices, removing the need to manually set it
in each driver.

A further patch will automate selection of the control type based on
the bus_type of the struct device, further reducing the amount of
driver code required.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Add MODULE_ALIAS to Samsung DAI drivers
Mark Brown [Thu, 12 Aug 2010 10:02:19 +0000 (11:02 +0100)]
ASoC: Add MODULE_ALIAS to Samsung DAI drivers

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Remove version display from WM8971 driver
Mark Brown [Thu, 12 Aug 2010 09:57:05 +0000 (10:57 +0100)]
ASoC: Remove version display from WM8971 driver

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Remove unneeded control_data management from Wolfson drivers
Mark Brown [Thu, 12 Aug 2010 10:04:14 +0000 (11:04 +0100)]
ASoC: Remove unneeded control_data management from Wolfson drivers

Now soc-cache.c can figure out the I2C and SPI control data from the
device for the CODEC we don't need to manually assign it in drivers.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Remove version display from WM8510 driver
Mark Brown [Thu, 12 Aug 2010 09:57:04 +0000 (10:57 +0100)]
ASoC: Remove version display from WM8510 driver

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoasoc/multi-component: fsl: add support for disabled SSI nodes
Timur Tabi [Wed, 4 Aug 2010 22:51:08 +0000 (17:51 -0500)]
asoc/multi-component: fsl: add support for disabled SSI nodes

Add support for adding "status = disabled" to an SSI node to incidate that it
is not wired on the board.  This replaces the not-so-intuitive previous method
of omitting a codec-handle property.

Signed-off-by: Timur Tabi <timur@freescale.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoasoc/multi-component: fsl: fix exit and error paths in DMA and SSI drivers
Timur Tabi [Tue, 3 Aug 2010 22:55:28 +0000 (17:55 -0500)]
asoc/multi-component: fsl: fix exit and error paths in DMA and SSI drivers

The error handling code in the OF probe function of the SSI driver is not
freeing all resources correctly.

Since the machine driver no longer calls the DMA driver to provide information
about the SSI, we don't need to keep a list of DMA objects any more.  In
addition, the fsl_soc_dma_remove() function is incorrectly removing *all*
DMA objects when it should only remove one.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoasoc/multi-component: fsl: add support for 36-bit physical addresses
Timur Tabi [Mon, 2 Aug 2010 17:44:36 +0000 (12:44 -0500)]
asoc/multi-component: fsl: add support for 36-bit physical addresses

Update the DMA driver used by the Freescale MPC8610 HPCD audio driver to
support 36-bit physical addresses, for both DMA buffers and the SSI registers.

The DMA driver calls snd_dma_alloc_pages() to allocate the DMA buffers for
playback and capture.  This function is just a front-end for
dma_alloc_coherent().  Currently, dma_alloc_coherent() only allocates buffers
in low memory (it ignores GFP_HIGHMEM), so we never actually get a DMA buffer
with a real 36-bit physical address.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agopowerpc: rename immap_86xx.h to fsl_guts.h, and add 85xx support
Timur Tabi [Thu, 22 Jul 2010 16:33:30 +0000 (11:33 -0500)]
powerpc: rename immap_86xx.h to fsl_guts.h, and add 85xx support

The immap_86xx.h header file only defines one data structure: the "global
utilities" register set found on Freescale PowerPC SOCs.  Rename this file
to fsl_guts.h to reflect its true purpose, and extend it to cover the "GUTS"
register set on 85xx chips.

Signed-off-by: Timur Tabi <timur@freescale.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: multi-component - Add Goni sound driver
Chanwoo Choi [Thu, 22 Jul 2010 06:16:10 +0000 (15:16 +0900)]
ASoC: multi-component - Add Goni sound driver

This patch add sound support for the Goni board based on S5PV210.

The Goni board is based on Samsung SoC(S5PV210) and include
WM8994 codec over I2S to support sound.

The kind of jack is below states :
* SND_JACK_HEADPHONE
* SND_JACK_HEADSET
* SND_JACK_MECHANICAL
  : When TV-OUT cable is inserted on Goni board,
  the TV-OUT cable isn't connected to television.
* SND_JACK_AVOUT
  : When TV-OUT cable is inserted on Goni board,
  the TV-OUT cable is connected to television.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: multi-component - Add Aquila sound driver
Chanwoo Choi [Tue, 20 Jul 2010 23:06:56 +0000 (08:06 +0900)]
ASoC: multi-component - Add Aquila sound driver

This patch add sound support for the Aquila board based on S5PC110.

The Aquila board is based on Samsung SoC(S5PC110) and include
WM8994 codec over I2S to support sound. This uses the I2Sv4 driver
compatible with I2Sv5 to run sound.

The kind of jack is below states :
* SND_JACK_HEADPHONE
* SND_JACK_HEADSET
* SND_JACK_MECHANICAL
  : When TV-OUT cable is inserted on Aquila board,
  the TV-OUT cable isn't connected to television.
* SND_JACK_AVOUT
  : When TV-OUT cable is inserted on Aquila board,
  the TV-OUT cable is connected to television.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
ASoC: multi-component: SAMSUNG: Fix wrong field name on Aquila board

This patch modify the wrong field name on Aquila board.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: multi-component - ASoC Multi-Component Support
Liam Girdwood [Wed, 17 Mar 2010 20:15:21 +0000 (20:15 +0000)]
ASoC: multi-component - ASoC Multi-Component Support

This patch extends the ASoC API to allow sound cards to have more than one
CODEC and more than one platform DMA controller. This is achieved by dividing
some current ASoC structures that contain both driver data and device data into
structures that only either contain device data or driver data. i.e.

 struct snd_soc_codec    --->  struct snd_soc_codec (device data)
                          +->  struct snd_soc_codec_driver (driver data)

 struct snd_soc_platform --->  struct snd_soc_platform (device data)
                          +->  struct snd_soc_platform_driver (driver data)

 struct snd_soc_dai      --->  struct snd_soc_dai (device data)
                          +->  struct snd_soc_dai_driver (driver data)

 struct snd_soc_device   --->  deleted

This now allows ASoC to be more tightly aligned with the Linux driver model and
also means that every ASoC codec, platform and (platform) DAI is a kernel
device. ASoC component private data is now stored as device private data.

The ASoC sound card struct snd_soc_card has also been updated to store lists
of it's components rather than a pointer to a codec and platform. The PCM
runtime struct soc_pcm_runtime now has pointers to all its components.

This patch adds DAPM support for ASoC multi-component and removes struct
snd_soc_socdev from DAPM core. All DAPM calls are now made on a card, codec
or runtime PCM level basis rather than using snd_soc_socdev.

Other notable multi-component changes:-

 * Stream operations now de-reference less structures.
 * close_delayed work() now runs on a DAI basis rather than looping all DAIs
   in a card.
 * PM suspend()/resume() operations can now handle N CODECs and Platforms
   per sound card.
 * Added soc_bind_dai_link() to bind the component devices to the sound card.
 * Added soc_dai_link_probe() and soc_dai_link_remove() to probe and remove
   DAI link components.
 * sysfs entries can now be registered per component per card.
 * snd_soc_new_pcms() functionailty rolled into dai_link_probe().
 * snd_soc_register_codec() now does all the codec list and mutex init.

This patch changes the probe() and remove() of the CODEC drivers as follows:-

 o Make CODEC driver a platform driver
 o Moved all struct snd_soc_codec list, mutex, etc initialiasation to core.
 o Removed all static codec pointers (drivers now support > 1 codec dev)
 o snd_soc_register_pcms() now done by core.
 o snd_soc_register_dai() folded into snd_soc_register_codec().

CS4270 portions:
Acked-by: Timur Tabi <timur@freescale.com>
Some TLV320aic23 and Cirrus platform fixes.
Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
TI CODEC and OMAP fixes
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Samsung platform and misc fixes :-
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Jassi Brar <jassi.brar@samsung.com>
Signed-off-by: Seungwhan Youn <sw.youn@samsung.com>
MPC8610 and PPC fixes.
Signed-off-by: Timur Tabi <timur@freescale.com>
i.MX fixes and some core fixes.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
J4740 platform fixes:-
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
CC: Tony Lindgren <tony@atomide.com>
CC: Nicolas Ferre <nicolas.ferre@atmel.com>
CC: Kevin Hilman <khilman@deeprootsystems.com>
CC: Sascha Hauer <s.hauer@pengutronix.de>
CC: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
CC: Kuninori Morimoto <morimoto.kuninori@renesas.com>
CC: Daniel Gloeckner <dg@emlix.com>
CC: Manuel Lauss <mano@roarinelk.homelinux.net>
CC: Mike Frysinger <vapier.adi@gmail.com>
CC: Arnaud Patard <apatard@mandriva.com>
CC: Wan ZongShun <mcuos.com@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Correct WM8580 Capture control names
Mark Brown [Fri, 6 Aug 2010 17:14:09 +0000 (18:14 +0100)]
ASoC: Correct WM8580 Capture control names

Should use Capture rather than ADC so the UI tools can identify their
function more readily.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Document CFG switch settings for SMDK6410 WM8580 usage
Mark Brown [Fri, 6 Aug 2010 16:57:45 +0000 (17:57 +0100)]
ASoC: Document CFG switch settings for SMDK6410 WM8580 usage

Sadly these aren't soft controllable and can't be read back either :(

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Remove /s from widget names on SMDK64xx WM8580
Mark Brown [Fri, 6 Aug 2010 16:23:02 +0000 (17:23 +0100)]
ASoC: Remove /s from widget names on SMDK64xx WM8580

Otherwise debugfs gets upset when we try to create filenames with /
in them.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Add initial WM8962 CODEC driver
Mark Brown [Thu, 5 Aug 2010 12:20:59 +0000 (13:20 +0100)]
ASoC: Add initial WM8962 CODEC driver

The WM8962 is a low power, high performance stereo CODEC designed for
portable digital audio applications.

This initial driver release supports the key audio paths of the WM8962.
Extended functionality, such as microphone detection, digital microphones
and the advanced DSP signal enhancements provided by the device are not
yet supported.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: TWL4030: Capture route runtime DAPM ordering fix
Peter Ujfalusi [Tue, 3 Aug 2010 09:01:01 +0000 (12:01 +0300)]
ASoC: TWL4030: Capture route runtime DAPM ordering fix

Fix the ordering problem in DAPM domain, when the user
changes between digital and analog sources during active
capture (or loopback) scenario.
Before this patch, when the user changed from analog source
to digital there were a short time, when the codec enabled
analog mic bias (2.2 volts) instead of the correct digital
mic bias (1.8 volts) to the digital microphones.
This behaviour caused by the former implementation of
selecting the correct type of bias. This was done at the
POST_REG event of the DAPM_MUX_E("TXx Capture Route")
widget.
By moving the bias type selection as DAPM_SUPPLY and
connecting it to the corresponding digimic widget the
problematic situation can be avoided.

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>
14 years agoASoC: wm9081: fix resource reclaim in wm9081_register error path
Axel Lin [Fri, 23 Jul 2010 05:53:54 +0000 (05:53 +0000)]
ASoC: wm9081: fix resource reclaim in wm9081_register error path

This patch fixes the error path in wm9081_register to properly free resources.

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>
14 years agoASoC: wm8978: fix a memory leak if a wm8978_register fail
Axel Lin [Fri, 23 Jul 2010 05:53:53 +0000 (05:53 +0000)]
ASoC: wm8978: fix a memory leak if a wm8978_register fail

There is a memory leak found if wm8978_register() fail.
This patch moves the buffer allocate and release
at the same level to prevent the memory leak.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Reviewed-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: wm8974: fix a memory leak if another WM8974 is registered
Axel Lin [Fri, 23 Jul 2010 05:53:52 +0000 (05:53 +0000)]
ASoC: wm8974: fix a memory leak if another WM8974 is registered

wm8974 is allocated in wm8974_i2c_probe() but is not freed if wm8974_register()
return -EINVAL (if another WM8974 is registered).

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>
14 years agoASoC: wm8961: fix resource reclaim in wm8961_register error path
Axel Lin [Fri, 23 Jul 2010 05:53:51 +0000 (05:53 +0000)]
ASoC: wm8961: fix resource reclaim in wm8961_register error path

This patch fixes the error path in wm8961_register to properly free resources.

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>
14 years agoASoC: wm8955: fix resource reclaim in wm8955_register error path
Axel Lin [Fri, 23 Jul 2010 05:53:50 +0000 (05:53 +0000)]
ASoC: wm8955: fix resource reclaim in wm8955_register error path

This patch fixes the error path in wm8955_register to properly free resources.

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>
14 years agoASoC: wm8940: fix a memory leak if wm8940_register return error
Axel Lin [Fri, 23 Jul 2010 05:53:49 +0000 (05:53 +0000)]
ASoC: wm8940: fix a memory leak if wm8940_register return error

This patch adds checking for wm8940_register return value,
and does kfree(wm8940) if wm8940_register() fail.

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>
14 years agoASoC: wm8904: fix resource reclaim in wm8904_register error path
Axel Lin [Fri, 23 Jul 2010 05:53:48 +0000 (05:53 +0000)]
ASoC: wm8904: fix resource reclaim in wm8904_register error path

This patch includes below fixes:
1. wm8904 need to be kfreed in wm8904_register() error path before return.
2. fix the error path for snd_soc_register_codec() fail and
   snd_soc_register_dai() fail to properly free resources.

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>
14 years agoASoC: wm8711: fix a memory leak if another WM8711 is registered
Axel Lin [Fri, 23 Jul 2010 05:53:47 +0000 (05:53 +0000)]
ASoC: wm8711: fix a memory leak if another WM8711 is registered

wm8711 is allocated in either wm8711_spi_probe() or wm8711_i2c_probe() but is
not freed if wm8711_register() return -EINVAL(if another ad1836 is registered).

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>
14 years agoASoC: wm8523: fix resource reclaim in wm8523_register error path
Axel Lin [Fri, 23 Jul 2010 05:53:46 +0000 (05:53 +0000)]
ASoC: wm8523: fix resource reclaim in wm8523_register error path

This patch includes below fixes:
1. If another WM8523 is registered, need to kfree wm8523 before return -EINVAL.
2. If snd_soc_register_codec failed, goto error path to properly free resources.
3. Instead of using mixed in-line and goto style cleanup, use goto style error
   handling if snd_soc_register_dai failed.

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>
14 years agoASoC: da7210: fix a memory leak if failed to initialise da7210 audio codec
Axel Lin [Fri, 23 Jul 2010 05:53:45 +0000 (05:53 +0000)]
ASoC: da7210: fix a memory leak if failed to initialise da7210 audio codec

da7210 should be kfreed if da7210_init() return error.
This patch also fixes the error handing in the case of snd_soc_register_dai()
fail by adding snd_soc_unregister_codec() in error path.

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>
14 years agoASoC: ak4642: fix a memory leak if failed to initialise AK4642
Axel Lin [Fri, 23 Jul 2010 05:53:44 +0000 (05:53 +0000)]
ASoC: ak4642: fix a memory leak if failed to initialise AK4642

ak4642 should be kfreed if ak4642_init() return error.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Reviewed-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>
14 years agoASoC: ad1836: fix a memory leak if another ad1836 is registered
Axel Lin [Fri, 23 Jul 2010 05:53:43 +0000 (05:53 +0000)]
ASoC: ad1836: fix a memory leak if another ad1836 is registered

ad1836 is allocated in ad1836_spi_probe() but is not freed if ad1836_register()
return -EINVAL (if another ad1836 is registered).

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Barry Song <21cnbao@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Initial WM8741 CODEC driver
Ian Lartey [Fri, 30 Jul 2010 23:32:11 +0000 (00:32 +0100)]
ASoC: Initial WM8741 CODEC driver

The WM8741 is a very high performance stereo DAC designed for audio
applications such as professional recording systems, A/V receivers and
high specification CD, DVD and home theatre systems. The device supports
PCM data input word lengths from 16 to 32-bits and sampling rates up to
192kHz.  The WM8741 also supports DSD bit-stream data format, in both
direct DSD and PCM-converted DSD modes.

TODO: Expand wm8741_set_dai_sysclk and rate_constraint members to
allow for all supported sample rate / Master Clock frequency combinations.
Fully enable control of supplies.

Signed-off-by: Ian Lartey <ian@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoMerge branch 'for-2.6.36' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc...
Takashi Iwai [Mon, 2 Aug 2010 10:10:52 +0000 (12:10 +0200)]
Merge branch 'for-2.6.36' of git://git./linux/kernel/git/lrg/asoc-2.6 into topic/asoc

14 years agoASoC: omap-mcbsp: Remove period size constraint in THRESHOLD mode
Peter Ujfalusi [Thu, 29 Jul 2010 06:51:28 +0000 (09:51 +0300)]
ASoC: omap-mcbsp: Remove period size constraint in THRESHOLD mode

The use of sDMA packet mode in THRESHOLD mode removes the restriction on the
period size.
With the extended THRESHOLD mode user space can ask for any
period size it wishes, and the driver will configure the
sDMA and McBSP FIFO accordingly.

Replace the hw_rule for the period size with static constraint,
which will make sure that the period size will be always
even (to avoid prime period size, which could be possible in
mono stream)

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: omap-mcbsp: Support for sDMA packet mode
Peter Ujfalusi [Thu, 29 Jul 2010 06:51:27 +0000 (09:51 +0300)]
ASoC: omap-mcbsp: Support for sDMA packet mode

Utilize the sDMA controller's packet syncronization mode, when
the McBSP FIFO is in use (by extending the THRESHOLD mode).
When the sDMA is configured for packet mode, the sDMA frame size
does not need to match with the McBSP threshold configuration.
Uppon DMA request the sDMA will transfer packet size number of
words, and still trigger interrupt on frame boundary.

The patch extends the original THRESHOLD mode by doing the
following:

if (period_words <= max_threshold)
Current THRESHOLD mode configuration

Otherwise (period_words > max_threshold)
McBSP threshold = sDMA packet size
sDMA frame size = period size

With the extended THRESHOLD mode we can remove the constraint
for the maximum period size, since if the period size is
bigger than the maximum allowed threshold, than the driver
will switch to packet mode, and picks the best (biggest)
threshold value, which can divide evenly the period size.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: omap-mcbsp: Code cleanup in omap_mcbsp_dai_hw_params
Peter Ujfalusi [Thu, 29 Jul 2010 06:51:25 +0000 (09:51 +0300)]
ASoC: omap-mcbsp: Code cleanup in omap_mcbsp_dai_hw_params

To make the code a bit more readable, change the indexed
references to the omap_mcbsp_dai_dma_params elements with
pointer.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: omap-mcbsp: Restructure the code within omap_mcbsp_dai_hw_params
Peter Ujfalusi [Thu, 29 Jul 2010 06:51:26 +0000 (09:51 +0300)]
ASoC: omap-mcbsp: Restructure the code within omap_mcbsp_dai_hw_params

In preparation for the extended threshold mode (sDMA packet mode
support), the code need to be restructured.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: fsi: Add new funtion for SPDIF
Kuninori Morimoto [Thu, 29 Jul 2010 07:48:32 +0000 (16:48 +0900)]
ASoC: fsi: Add new funtion for SPDIF

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>
14 years agoASoC: fsi: remove device id check
Kuninori Morimoto [Wed, 28 Jul 2010 02:57:45 +0000 (11:57 +0900)]
ASoC: fsi: remove device id check

Current FSI driver id is not only 0

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>
14 years agoASoC: fsi: remove unnecessary clock processing
Kuninori Morimoto [Wed, 28 Jul 2010 02:57:36 +0000 (11:57 +0900)]
ASoC: fsi: remove unnecessary clock processing

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>
14 years agoASoC: tlv320dac33: Add support for automatic FIFO configuration
Peter Ujfalusi [Wed, 28 Jul 2010 12:26:55 +0000 (15:26 +0300)]
ASoC: tlv320dac33: Add support for automatic FIFO configuration

Platform parameter to enable automatic FIFO configuration when
the codec is in Mode1 or Mode7 FIFO mode.
When this mode is selected, the controls for changing
nSample (in Mode1), and UTHR (in Mode7) are not added.
The driver configures the FIFO configuration based on
the stream's period size in a way, that every burst will
read period size of data from the host.
In Mode7 we need to use a formula, which gives close enough
aproximation for the burst length from the host point
of view.

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>
14 years agoASoC: tlv320dac33: Revisit the FIFO Mode1 handling
Peter Ujfalusi [Wed, 28 Jul 2010 12:26:54 +0000 (15:26 +0300)]
ASoC: tlv320dac33: Revisit the FIFO Mode1 handling

Replace the hardwired latency definition with platform data
parameter, and simplify the nSample parameter calculation.

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>
14 years agoASoC: TWL4030: Capture route DAPM event fix
Peter Ujfalusi [Mon, 26 Jul 2010 06:59:15 +0000 (09:59 +0300)]
ASoC: TWL4030: Capture route DAPM event fix

There is no need to handle POST_PMU, POST_PMD event with
the Capture Route widget.
It is enough to handle POST_REG event, since that will come
when the user changes the routing, and we will switch the needed
bits in the registers.

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>
14 years agoASoC: da7210: Add HeadPhone Playback Volume control
Kuninori Morimoto [Wed, 21 Jul 2010 05:12:16 +0000 (14:12 +0900)]
ASoC: da7210: Add HeadPhone Playback Volume control

HeadPhone Playback Volume control register of DA7210 has
reserved area. This patch considered it as mute.

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>
14 years agoMerge branch 'for-2.6.36' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc...
Takashi Iwai [Wed, 21 Jul 2010 13:01:07 +0000 (15:01 +0200)]
Merge branch 'for-2.6.36' of git://git./linux/kernel/git/lrg/asoc-2.6 into topic/asoc

14 years agoASoC: TWL4030: Add configurable delay after digimic enable
Peter Ujfalusi [Tue, 20 Jul 2010 12:49:09 +0000 (15:49 +0300)]
ASoC: TWL4030: Add configurable delay after digimic enable

When digital microphones are connected to twl, delay is
needed after enabling the digimic interface of the codec.
Add new parameter for the setup data, which can be used
to pass the apropriate delay in ms after the digimic
interface has been enabled.

Without certain delay (in certain HW configuration) the
beggining of the recorded sample contains a glitch, which
is generated by the digital microphones.

Delaying the micbias1, 2 (which is the bias for the digimic0
or 1) does not help, since the glitch is coming after
switching the digimic interface.

Reversing the micbias and digimic enable order does not
work either (in that case the wait need to be added after
the micbias enabled).

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>
14 years agoASoC: Unconditionally enable WM8994 AIF1ADC TDM mode
Mark Brown [Tue, 20 Jul 2010 09:13:14 +0000 (10:13 +0100)]
ASoC: Unconditionally enable WM8994 AIF1ADC TDM mode

AIF1ADC TDM mode has no effect other than causing the ADCDAT line to
be tristated rather than driven low on clock cycles where there is no
data to be transmitted. If the clock cycle is idle then there should
be no devices using the data so tristating should have no adverse
effects.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: davinci: let platform data define edma queue numbers
Sekhar Nori [Mon, 19 Jul 2010 07:01:16 +0000 (12:31 +0530)]
ASoC: davinci: let platform data define edma queue numbers

Currently the EDMA queue to be used by for servicing ASP through
internal RAM is fixed to EDMAQ_0 and that to service internal RAM
from external RAM is fixed to EDMAQ_1.

This may not be the desirable configuration on all platforms. For
example, on DM365, queue 0 has large fifo size and is more suitable
for video transfers. Having audio and video transfers on the same
queue may lead to starvation on audio side.

platform data as defined currently passes a queue number to the driver
but that remains unused inside the driver.

Fix this by defining one queue each for ASP and RAM transfers in the
platform data and using it inside the driver.

Since EDMAQ_0 maps to 0, thats the queue that will be used if
the asp queue number is not initialized. None of the platforms
currently utilize ping-pong transfers through internal RAM so that
functionality remains unchanged too.

This patch has been tested on DM644x and OMAP-L138 EVMs.

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC:Support Samsung SoC(S5P) in I2Sv2
Chanwoo Choi [Tue, 20 Jul 2010 05:28:30 +0000 (14:28 +0900)]
ASoC:Support Samsung SoC(S5P) in I2Sv2

This patch modify I2Sv2 driver to support Samsung SoC(S5PV210).

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoMerge branch 'for-2.6.35' into for-2.6.36
Mark Brown [Tue, 20 Jul 2010 08:52:25 +0000 (09:52 +0100)]
Merge branch 'for-2.6.35' into for-2.6.36

14 years agoASoC: Select wm_hubs automatically for WM8994
Chanwoo Choi [Tue, 20 Jul 2010 05:28:33 +0000 (14:28 +0900)]
ASoC: Select wm_hubs automatically for WM8994

Otherwise all machine drivers need to do so.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Implement WM8994 AIF1ADC2 paths
Mark Brown [Mon, 19 Jul 2010 13:02:34 +0000 (14:02 +0100)]
ASoC: Implement WM8994 AIF1ADC2 paths

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Explicitly disable DC servo on WM hubs headphone powerdown
Mark Brown [Mon, 10 May 2010 20:06:14 +0000 (21:06 +0100)]
ASoC: Explicitly disable DC servo on WM hubs headphone powerdown

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: eukrea-tlv320: add support for cpuimx35sd
Eric Bénard [Mon, 19 Jul 2010 08:40:32 +0000 (10:40 +0200)]
ASoC: eukrea-tlv320: add support for cpuimx35sd

Signed-off-by: Eric Bénard <eric@eukrea.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: imx: check kzalloc() result and fix memory leak
Kulikov Vasiliy [Fri, 16 Jul 2010 16:16:54 +0000 (20:16 +0400)]
ASoC: imx: check kzalloc() result and fix memory leak

If kzalloc() fails we must exit with -ENOMEM. Also we must free
allocated runtime->private_data on error as it would be lost on next
call to snd_imx_open().

Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: imx: check kzalloc() result and fix memory leak
Kulikov Vasiliy [Fri, 16 Jul 2010 16:16:34 +0000 (20:16 +0400)]
ASoC: imx: check kzalloc() result and fix memory leak

If kzalloc() fails we must exit with -ENOMEM. Also we must free
allocated runtime->private_data on error as it would be lost on next
call to snd_imx_open().

Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: davinci: check kzalloc() result (typo)
Kulikov Vasiliy [Fri, 16 Jul 2010 16:16:17 +0000 (20:16 +0400)]
ASoC: davinci: check kzalloc() result (typo)

The code checks 'davinci_vc' after kzalloc() and do not checks
'davinci_vcif_dev' that kzalloc() result is assigned to. It seems that
it is a typo (autocompletion?).

Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: fsi: Add specified ID for soc-audio
Kuninori Morimoto [Fri, 16 Jul 2010 10:51:06 +0000 (19:51 +0900)]
ASoC: fsi: Add specified ID for soc-audio

Specified ID is necessary, when some codecs are used with FSI.

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>
14 years agoMerge branch 'for-2.6.35' into for-2.6.36
Mark Brown [Sat, 17 Jul 2010 18:45:43 +0000 (19:45 +0100)]
Merge branch 'for-2.6.35' into for-2.6.36

14 years agoASoC: Remove duplicate AUX definition from WM8776
Mark Brown [Sat, 17 Jul 2010 13:20:17 +0000 (14:20 +0100)]
ASoC: Remove duplicate AUX definition from WM8776

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Cc: stable@kernel.org
14 years agoASoC: TWL6040: Correct widget handling for drivers
Jorge Eduardo Candelaria [Thu, 15 Jul 2010 16:38:01 +0000 (11:38 -0500)]
ASoC: TWL6040: Correct widget handling for drivers

In order to reduce pop-noise at powering up/down of the DACs and Drivers,
these components have to be handled in a specific sequence. Headset,
Handsfree, and Earphone drivers are now registered as PGA components to
ensure DACs are enabled first.

Also, add a delay to leave time for DACs to settle before
continuing power up/down sequence.

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>
14 years agoASoC: Handle read failures in codec_reg
Mark Brown [Wed, 14 Jul 2010 15:14:33 +0000 (16:14 +0100)]
ASoC: Handle read failures in codec_reg

When a device is powered down volatile registers can't be read so
attempts to display codec_reg will show error values, and obviously
it is also possible for there to be hardware errors too. Check for
errors from reads and display them more clearly when formatting
codec_reg.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoMerge branch 'for-2.6.35' into for-2.6.36
Mark Brown [Wed, 14 Jul 2010 19:12:57 +0000 (20:12 +0100)]
Merge branch 'for-2.6.35' into for-2.6.36

14 years agoASoC:: remove a redundant snd_soc_unregister_codec call in wm8988_register
Axel Lin [Wed, 14 Jul 2010 11:06:07 +0000 (19:06 +0800)]
ASoC:: remove a redundant snd_soc_unregister_codec call in wm8988_register

snd_soc_unregister_codec is called twice if snd_soc_register_dai fail.

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>
14 years agoASoC: wm8727: add a missing return in wm8727_platform_probe
Axel Lin [Wed, 14 Jul 2010 10:57:31 +0000 (18:57 +0800)]
ASoC: wm8727: add a missing return in wm8727_platform_probe

otherwise the error path will always be executed.

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>
14 years agoASoC: au1x: fix section mismatch in psc-i2s.c
Manuel Lauss [Mon, 12 Jul 2010 13:14:59 +0000 (15:14 +0200)]
ASoC: au1x: fix section mismatch in psc-i2s.c

Annotate platform probe callback with __devinit instead of plain __init.

Signed-off-by: Manuel Lauss <manuel.lauss@googlemail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: kirkwood-i2s: Handle mute/unmute playback/record
arnaud.patard@rtp-net.org [Sun, 11 Jul 2010 21:28:32 +0000 (23:28 +0200)]
ASoC: kirkwood-i2s: Handle mute/unmute playback/record

The controller has mute/unmute capability and some bootloader may mute
them at boot. If it's not handled, all things will seem to be working
but no sound will come out of the speaker/headphone.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Fix kirkwood i2s mono playback
arnaud.patard@rtp-net.org [Sun, 11 Jul 2010 21:28:31 +0000 (23:28 +0200)]
ASoC: Fix kirkwood i2s mono playback

Kirkwood controller needs to be informed if the audio stream is mono
or not. Failing to do so will result in playing at the wrong speed.

Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: fsi: Fixup for master mode
Kuninori Morimoto [Tue, 13 Jul 2010 03:13:14 +0000 (12:13 +0900)]
ASoC: fsi: Fixup for master mode

This patch add hw_params to snd_soc_dai_ops,
because board specific set_rate is needed
when FSI was used as master mode.

This patch remove fsi_clk_ctrl from fsi_dai_startup,
because clock should be disabled before set_rate.

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>
14 years agoASoC: fsi: Add pr_err for noticing unsupported access
Kuninori Morimoto [Tue, 13 Jul 2010 03:13:09 +0000 (12:13 +0900)]
ASoC: fsi: Add pr_err for noticing unsupported access

This patch didn't use dev_err,
because it is difficult to get struct device here.

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>
14 years agoASoC: fsi: Change struct fsi_regs to fsi_core
Kuninori Morimoto [Tue, 13 Jul 2010 03:13:04 +0000 (12:13 +0900)]
ASoC: fsi: Change struct fsi_regs to fsi_core

Many registers which were grouped by category were added in FSI2.
To make easy to switch FSI/FSI2, fsi_core was added instead of fsi_regs.

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>
14 years agoASoC: fsi: remove noisy CR_FMT macro
Kuninori Morimoto [Tue, 13 Jul 2010 03:13:00 +0000 (12:13 +0900)]
ASoC: fsi: remove noisy CR_FMT macro

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>
14 years agoASoC: fsi: remove un-used variable on fsi_dai_startup
Kuninori Morimoto [Tue, 13 Jul 2010 03:12:53 +0000 (12:12 +0900)]
ASoC: fsi: remove un-used variable on fsi_dai_startup

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>
14 years agoASoC: fsi: modify format area definition on flags
Kuninori Morimoto [Tue, 13 Jul 2010 09:13:19 +0000 (18:13 +0900)]
ASoC: fsi: modify format area definition on flags

There is no necessity that each bit in this area has the meaning.
This patch modify it to sequence number

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>
14 years agoASoC: Remove unnecessary casts of private_data
Joe Perches [Mon, 12 Jul 2010 20:50:27 +0000 (13:50 -0700)]
ASoC: Remove unnecessary casts of private_data

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Remove unnecessary casts of private_data
Joe Perches [Mon, 12 Jul 2010 20:50:26 +0000 (13:50 -0700)]
ASoC: Remove unnecessary casts of private_data

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoMerge branch 'for-2.6.35' into for-2.6.36
Mark Brown [Tue, 13 Jul 2010 11:29:10 +0000 (12:29 +0100)]
Merge branch 'for-2.6.35' into for-2.6.36

14 years agoASoC: fsi: fixup wrong value setting order of TDM
Kuninori Morimoto [Tue, 13 Jul 2010 03:01:25 +0000 (12:01 +0900)]
ASoC: fsi: fixup wrong value setting order of TDM

channel size should be set before setting register value

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>
14 years agoASoC: fsi: fixup clock inversion operation
Kuninori Morimoto [Tue, 13 Jul 2010 03:01:15 +0000 (12:01 +0900)]
ASoC: fsi: fixup clock inversion operation

Clock inversion should be specified by each flags bit.

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>
14 years agoASoC: TWL4030: DAC power optimization
Peter Ujfalusi [Tue, 13 Jul 2010 09:07:44 +0000 (12:07 +0300)]
ASoC: TWL4030: DAC power optimization

Restructure the DAPM connections in order to enable
only the needed DAC (out of four in twl4030 series).
I need to keep the 'AIF Enable' supply connected to
the L2/R2 digital path, since the digital loopback
needs AIF and APLL running.
If no valid route available, than none of the DAC will
be powered, but the AIF and APLL is going to be enabled.
Furthermore, if only one audio path have valid route,
than only the corresponding DAC will be powered.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsomicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: TWL4030: Fix for digital loopback gain range
Peter Ujfalusi [Mon, 12 Jul 2010 08:50:06 +0000 (11:50 +0300)]
ASoC: TWL4030: Fix for digital loopback gain range

When the gain is configured using dB value it was
not possible to use -24dB since the loopback got
muted instead of -24dB.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Mark Brown <broonie@opensource.wolfsomicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Implement WM8994 OPCLK support
Mark Brown [Thu, 8 Jul 2010 02:25:43 +0000 (11:25 +0900)]
ASoC: Implement WM8994 OPCLK support

The WM8994 can output a clock derived from its internal SYSCLK, called
OPCLK.  The rate can be selected as a sysclk, with a division from the
SYSCLK rate specified (multiplied by 10 since a division of 5.5 is
supported) and the clock can be disabled by specifying a divisor of
zero.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Include WM8994 GPIO and interrupt registers in codec_reg
Mark Brown [Thu, 8 Jul 2010 15:12:08 +0000 (00:12 +0900)]
ASoC: Include WM8994 GPIO and interrupt registers in codec_reg

Very handy for debug.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: DaVinci: More accurate continuous serial clock for McBSP (I2S)
Raffaele Recalcati [Tue, 6 Jul 2010 08:39:04 +0000 (10:39 +0200)]
ASoC: DaVinci: More accurate continuous serial clock for McBSP (I2S)

    i2s_accurate_sck switch can be used to have a better approximate
    sampling frequency.
    The clock is an externally visible bit clock and it is named
    i2s continuous serial clock (I2S_SCK).
    The trade off is between more accurate clock (fast clock)
    and less accurate clock (slow clock).
    The waveform will be not symmetric.
    Probably it is possible to get a better algorithm for calculating
    the divider, trying to keep a slower clock as possible.

    This patch has been developed against the
        http://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci.git
    git tree and has been tested on bmx board (similar to dm365 evm, but using
    uda1345 as external audio codec).

Signed-off-by: Raffaele Recalcati <raffaele.recalcati@bticino.it>
Signed-off-by: Davide Bonfanti <davide.bonfanti@bticino.it>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: DaVinci: Added selection of clk input pin for McBSP
Raffaele Recalcati [Tue, 6 Jul 2010 08:39:03 +0000 (10:39 +0200)]
ASoC: DaVinci: Added selection of clk input pin for McBSP

    When McBSP peripheral gets the clock from an external pin,
    there are three possible chooses, MCBSP_CLKX, MCBSP_CLKR
    and MCBSP_CLKS.
    evm-dm365 uses MCBSP_CLKR, instead in bmx board I have a different
    hardware connection and I use MCBSP_CLKS, so I have added
    this possibility.

    This patch has been developed against the:
        http://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci.git
    git tree and has been tested on bmx board (similar to dm365 evm)

Signed-off-by: Raffaele Recalcati <raffaele.recalcati@bticino.it>
Signed-off-by: Davide Bonfanti <davide.bonfanti@bticino.it>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: DaVinci: Added two clocking possibilities to McBSP (I2S)
Raffaele Recalcati [Tue, 6 Jul 2010 08:39:02 +0000 (10:39 +0200)]
ASoC: DaVinci: Added two clocking possibilities to McBSP (I2S)

    Added two clocking options for dm365 McBSP peripheral when used
    with I2S timings, that are SND_SOC_DAIFMT_CBS_CFS (the cpu generates
    clock and frame sync) and SND_SOC_DAIFMT_CBS_CFM (the cpu gets clock
    from external pin and generates frame sync).
    A slave clock management can be important when the external codec needs
    the system clock and the bit clock synchronized (tested with uda1345).
    This patch has been developed against the:
        http://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci.git
    git tree and has been tested on bmx board (similar to dm365 evm, but using
    uda1345 as external audio codec).

Signed-off-by: Raffaele Recalcati <raffaele.recalcati@bticino.it>
Signed-off-by: Davide Bonfanti <davide.bonfanti@bticino.it>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Invert speaker enabling behaviour in SmartQ sound driver
Maurus Cuelenaere [Sun, 4 Jul 2010 13:12:11 +0000 (15:12 +0200)]
ASoC: Invert speaker enabling behaviour in SmartQ sound driver

The speaker was enabled when the headphone was plugged in, which isn't the
wanted behaviour so correct this.

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Automatically manage ALC coefficients for WM8960
Mark Brown [Mon, 5 Jul 2010 14:54:51 +0000 (23:54 +0900)]
ASoC: Automatically manage ALC coefficients for WM8960

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Automatically manage DAC deemphasis rate for WM8960
Mark Brown [Mon, 5 Jul 2010 04:58:16 +0000 (13:58 +0900)]
ASoC: Automatically manage DAC deemphasis rate for WM8960

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Remove current WM8960 deemphasis control
Mark Brown [Mon, 5 Jul 2010 04:54:32 +0000 (13:54 +0900)]
ASoC: Remove current WM8960 deemphasis control

It will be replaced with automatic deemphasis rate configuration but since
we have an enumeration table in this driver this is done in a separate
commit to make the renumbering of the enumeration items clear.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Fix sorting of Makefile and Kconfig
Mark Brown [Mon, 5 Jul 2010 03:09:22 +0000 (12:09 +0900)]
ASoC: Fix sorting of Makefile and Kconfig

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Add SmartQ sound driver
Maurus Cuelenaere [Sat, 3 Jul 2010 00:46:12 +0000 (02:46 +0200)]
ASoC: Add SmartQ sound driver

This adds sound support for the SmartQ board.

The hardware consists of a S3C6410 coupled with a WM8987 over I²S. The WM8750
driver is used for driving the WM8987, as they are register compatible.

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>