openwrt/staging/blogic.git
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: 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>
14 years agoASoC: codec: Add WM8987 device id to WM8750 driver
Maurus Cuelenaere [Sat, 3 Jul 2010 00:46:10 +0000 (02:46 +0200)]
ASoC: codec: Add WM8987 device id to WM8750 driver

The WM8987 codec is register compatible with the WM8750, so just add it to the
SPI and I²C device table.

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: ak4642: Add Digital Playback Volume control
Kuninori Morimoto [Thu, 1 Jul 2010 05:23:45 +0000 (14:23 +0900)]
ASoC: ak4642: Add Digital Playback Volume control

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: uda134x: correct bias level setup for codecs family
Vladimir Zapolskiy [Thu, 24 Jun 2010 13:19:25 +0000 (17:19 +0400)]
ASoC: uda134x: correct bias level setup for codecs family

For UDA1341 codec power control is managed in STATUS1 register, and
for all other codecs in DATA011 register.

Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: uda134x: add DATA011 register found in codecs family
Vladimir Zapolskiy [Thu, 24 Jun 2010 11:17:07 +0000 (15:17 +0400)]
ASoC: uda134x: add DATA011 register found in codecs family

In UDA1340, UDA1344 and UDA1345 codecs there is one more functional
register in part of DATA0 tranfser. For UDA1341 this register
coincides with EA register.

Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoMerge remote branch 'takashi/topic/asoc' into for-2.6.36
Mark Brown [Wed, 30 Jun 2010 13:46:53 +0000 (14:46 +0100)]
Merge remote branch 'takashi/topic/asoc' into for-2.6.36

14 years agoASoC: clean i.MX Kconfig
Eric Bénard [Sat, 19 Jun 2010 08:47:56 +0000 (10:47 +0200)]
ASoC: clean i.MX Kconfig

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: uda134x: fix bias level setup on initialization
Vladimir Zapolskiy [Thu, 24 Jun 2010 13:38:51 +0000 (17:38 +0400)]
ASoC: uda134x: fix bias level setup on initialization

On initialization ADC/DAC are enabled only for UDA1341, that's why
bias_level shall be set to off explicitly, otherwise dapm is
misinformed about bias_level on startup.

Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: uda134x: replace a macro with a value in platform struct.
Vladimir Zapolskiy [Thu, 24 Jun 2010 13:38:50 +0000 (17:38 +0400)]
ASoC: uda134x: replace a macro with a value in platform struct.

This change wipes out a hardcoded macro, which enables codec bias
level control. Now is_powered_on_standby value shall be used instead.

Signed-off-by: Vladimir Zapolskiy <vzapolskiy@gmail.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 [Thu, 24 Jun 2010 09:11:41 +0000 (11:11 +0200)]
Merge branch 'for-2.6.36' of git://git./linux/kernel/git/lrg/asoc-2.6 into topic/asoc

14 years agoASoC: RX-51: Add basic jack detection
Jarkko Nikula [Mon, 21 Jun 2010 11:15:00 +0000 (14:15 +0300)]
ASoC: RX-51: Add basic jack detection

This patch adds GPIO jack detection to Nokia N900/RX-51. At the moment only
SND_JACK_VIDEOOUT type is reported. More types could be reported after
getting more audio features supported and necessary drivers integrated for
implementing automated accessory detection.

Signed-off-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: RX-51: Add Jack Function kcontrol
Jarkko Nikula [Mon, 21 Jun 2010 11:14:59 +0000 (14:14 +0300)]
ASoC: RX-51: Add Jack Function kcontrol

Nokia RX-51/N900 has multifunction 4-pole audio-video jack that can be used
as headphone, headset or audio-video connector. This patch implements the
control 'Jack Function' which is used to select the desired function.
At the moment only TV-out without audio is supported.

Signed-off-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 agocodecs/tlv320aic23: fix bias management for suspend/resume
Eric Bénard [Sat, 19 Jun 2010 17:33:39 +0000 (19:33 +0200)]
codecs/tlv320aic23: fix bias management for suspend/resume

in tlv320aic23_set_bias_level, for the case SND_SOC_BIAS_ON, the
comment says "vref/mid, osc on, dac unmute" but the code doesn't
clear the corresponding bits, thus when resuming, several bits are
not cleared preventing the codec from working.

in tlv320aic23_suspend, clearing the active register is not needed
as it will be done by tlv320aic23_set_bias_level, when setting
bias to SND_SOC_BIAS_OFF

Signed-off-by: Eric Bénard <eric@eukrea.com>
Cc: broonie@opensource.wolfsonmicro.com
Cc: anuj.aggarwal@ti.com
Cc: lrg@slimlogic.co.uk
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: JZ4740: Add qi_lb60 board driver
Lars-Peter Clausen [Sat, 19 Jun 2010 14:52:51 +0000 (16:52 +0200)]
ASoC: JZ4740: Add qi_lb60 board driver

This patch adds ASoC support for the qi_lb60 board.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Add JZ4740 codec driver
Lars-Peter Clausen [Mon, 21 Jun 2010 22:46:31 +0000 (00:46 +0200)]
ASoC: Add JZ4740 codec driver

This patch adds support for the JZ4740 internal codec.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Add JZ4740 ASoC support
Lars-Peter Clausen [Sat, 19 Jun 2010 14:50:37 +0000 (16:50 +0200)]
ASoC: Add JZ4740 ASoC support

This patch adds ASoC support for JZ4740 SoCs I2S module.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: pandora: fix CLKX polarity
Grazvydas Ignotas [Thu, 17 Jun 2010 13:45:28 +0000 (16:45 +0300)]
ASoC: pandora: fix CLKX polarity

After mass production started it was found that several boards exhibit
noise problems during sound playback. After some investigation it was
determined that CLKX polarity is set incorrectly, and even if most boards
can tolerate the wrong setting, there are some that don't.

Fix polarity setup in the board file. As the clock settings for input and
output now match, merge in and out functions and structures to simplify
code.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Fix sorting of DA7210 entries in Kconfig
Mark Brown [Sun, 20 Jun 2010 13:05:46 +0000 (14:05 +0100)]
ASoC: Fix sorting of DA7210 entries in Kconfig

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Fix overflow bug in SOC_DOUBLE_R_SX_TLV
Stuart Longland [Fri, 18 Jun 2010 02:56:10 +0000 (12:56 +1000)]
ASoC: Fix overflow bug in SOC_DOUBLE_R_SX_TLV

When SX_TLV widgets are read, if the gain is set to a value below 0dB,
the mixer control is erroniously read as being at maximum volume.

The value read out of the CODEC register is never sign-extended, and
when the minimum value is subtracted (read; added, since the minimum is
negative) the result is a number greater than the maximum allowed value
for the control, and hence it saturates.

Solution: Mask the result so that it "wraps around", emulating
sign-extension.

Signed-off-by: Stuart Longland <redhatter@gentoo.org>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: eukrea-tlv320: add support for our i.MX25 board
Eric Bénard [Thu, 17 Jun 2010 13:44:01 +0000 (15:44 +0200)]
ASoC: eukrea-tlv320: add support for our i.MX25 board

* tdm slot has to be configured to get sound working on i.MX25

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: Fix I2C dependency for SND_FSI_AK4642 and SND_FSI_DA7210
Peter Huewe [Tue, 15 Jun 2010 15:38:55 +0000 (17:38 +0200)]
ASoC: Fix I2C dependency for SND_FSI_AK4642 and SND_FSI_DA7210

The config option SND_FSI_AK4642 selects SND_SOC_AK4642 which in turn
enables the compilation of ak4642.c - however this codec uses I2C to
communicate with the HW.
Same applies to DA7210.

Consequently when I2C is not set, the compilation fails [1]

This patch fixes this issues, by adding a depencdency on the related HW-
controller.

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: Pay attention to write errors in volsw_2r_sx
Mark Brown [Tue, 15 Jun 2010 14:14:31 +0000 (15:14 +0100)]
ASoC: Pay attention to write errors in volsw_2r_sx

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
14 years agoASoC: Default WM2000 ANC and speaker to enabled
Mark Brown [Tue, 15 Jun 2010 14:14:00 +0000 (15:14 +0100)]
ASoC: Default WM2000 ANC and speaker to enabled

The most useful configuration for the WM2000 is to enable the ANC so turn
that on by default, and since we're not reflecting chip default state also
enable the speaker output by default.

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 [Tue, 15 Jun 2010 10:55:35 +0000 (11:55 +0100)]
Merge branch 'for-2.6.35' into for-2.6.36

14 years agoASoC: DaVinci: Fix McASP hardware FIFO configuration
Sudhakar Rajashekhara [Fri, 11 Jun 2010 13:54:51 +0000 (19:24 +0530)]
ASoC: DaVinci: Fix McASP hardware FIFO configuration

On DA830/OMAP-L137 and DA850/OMAP-L138 SoCs, the McASP peripheral
has FIFO support. This FIFO provides additional data buffering. It
also provides tolerance to variation in host/DMA controller response
times. More details of the FIFO operation can be found at

http://focus.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=sprufm1&fileType=pdf

Existing sequence of steps for audio playback/capture are:
a. DMA configuration
b. McASP configuration (configures and enables FIFO)
c. Start DMA
d. Start McASP (enables FIFO)

During McASP configuration, while FIFO was being configured, FIFO
was being enabled in davinci_hw_common_param() function of
sound/soc/davinci/davinci-mcasp.c file. This generated a transmit
DMA event, which gets serviced when DMA is started.

https://patchwork.kernel.org/patch/84611/ patch clears the DMA
events before starting DMA, which is the right thing to do. But
this resulted in a state where DMA was waiting for an event from
McASP (after step c above), but the event which was already there,
has got cleared (because of step b above).

The fix is not to enable the FIFO during McASP configuration as
FIFO was being enabled as part of McASP start.

Signed-off-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
14 years agoASoC: header cleanup for da7210
Kuninori Morimoto [Tue, 15 Jun 2010 01:33:26 +0000 (10:33 +0900)]
ASoC: header cleanup for da7210

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>