Commit graph

2922 commits

Author SHA1 Message Date
Mark Brown
a2721fd9fa ASoC: Add missing debugfs conditionals
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-03-07 11:13:56 +00:00
Mark Brown
20d660653a ASoC: Fix outdated API usage in tlv320aic32x4
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-03-07 11:13:42 +00:00
Javier Martin
1d471cd126 ASoC: Add TI tlv320aic32x4 codec support.
This patch adds support for tlv320aic3205 and tlv320aic3254 codecs.
It doesn't include miniDSP support for aic3254.

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-03-04 18:21:08 +00:00
Mark Brown
28e9ad921d ASoC: Add a late_probe() callback to cards
This is run after the DAPM widgets and routes are added, allowing setup
of things like jacks using the routes. The main card probe() is run before
anything else so can't be used for this purpose.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-03-03 11:15:35 +00:00
Mark Brown
b8ad29debd ASoC: Allow card DAPM widgets and routes to be set up at registration
These will be added after all devices are registered and allow most DAI
init functions in machine drivers to be replaced by simple data.
Regular controls are not supported as the registration function still
works in terms of CODECs.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-03-03 11:15:26 +00:00
Mark Brown
e37a4970cd ASoC: Add a per-card DAPM context
This means that rather than adding the board specific DAPM widgets to a
random CODEC DAPM context they can be added to the card itself which is
a bit cleaner. Previously there only was one DAPM context and it was
tied to the single supported CODEC.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-03-03 11:15:16 +00:00
Mark Brown
88e8b9a84b ASoC: Check for a CODEC before dereferencing in DAPM
A CODEC pointer is optional (and is checked for in most contexts within
DAPM) - add checks to the few places where it was missed.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-03-03 11:15:03 +00:00
Mark Brown
12ea2c782e ASoC: Get the card directly from the DAPM context
Rather than indirecting through the CODEC we can look the card up directly
from the card pointer in the DAPM context.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-03-03 11:14:55 +00:00
Mark Brown
1916a2aae5 ASoC: Add TLV information for WM8978 DAC limiter
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-03-03 11:14:45 +00:00
Mark Brown
4955f631a4 Merge branch 'for-2.6.38' into for-2.6.39 2011-03-03 11:13:15 +00:00
Mark Brown
c8fb034ccd ASoC: Fix broken bitfield definitions in WM8978
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Cc: stable@kernel.org
2011-03-03 11:12:58 +00:00
Dimitris Papastamos
8959c91088 ASoC: WM8994: Ensure MICBIAS is provided with a clock
The patch 'ASoC: WM8994: Improve Playback Robustness' did not handle
this case properly.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-03-03 11:12:37 +00:00
Tony Lindgren
b2833a0578 Merge branches 'devel-iommu-mailbox', 'devel-mcbsp', 'devel-board' and 'devel-hsmmc' into omap-for-linus
Conflicts:
	arch/arm/mach-omap2/omap_hwmod_44xx_data.c
2011-03-02 17:11:18 -08:00
Tony Lindgren
12d7d4e0ed Merge branch 'devel-cleanup' into omap-for-linus
Conflicts:
	arch/arm/mach-omap2/timer-gp.c
2011-03-02 17:07:14 -08:00
Mark Brown
4a5f7bda8f ASoC: Add platform data for WM9081 IRQ pin configuration
The WM9081 IRQ output can be either active high or active low and can
support either CMOS or open drain modes.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-03-01 23:30:53 +00:00
Mark Brown
49542656ad ASoC: Remove module probe announcements from CODEC drivers
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-03-01 23:30:40 +00:00
Javier Martin
0a93421b6a ASoC: Fix burstsize and DSP_B format problems in imx-ssi.
When choosing IMX_DMA flag, burtsizes are set to its default
value (0) which leads to driver malfunction. Change them to 4.

DSP_B interface needs additional flag to match DSP_B formats
as described in several codecs as wm8741 and aic3205.

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-03-01 23:30:14 +00:00
Dimitris Papastamos
b462c6e69a ASoC: WM8994: Ensure MICBIAS is provided with a clock
The patch 'ASoC: WM8994: Improve Playback Robustness' did not handle
this case properly.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-03-01 23:29:12 +00:00
Mark Brown
c496ccd5db Merge branch 'for-2.6.38' into for-2.6.39 2011-03-01 23:29:04 +00:00
Dimitris Papastamos
04d286819b ASoC: WM8994: Ensure late enable events are processed for the ADCs
Ensure that the ADCs are provided with a clock as the previous patch
"ASoC: WM8994: Improve playback robustness" did not handle this case
properly.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
2011-03-01 23:27:07 +00:00
Dimitris Papastamos
a3cff81ac1 ASoC: WM8994: Don't disable the AIF[1|2]CLK_ENA unconditionaly
Since we began using the late clock disable functionality, ensure that
we don't disable the clock if any of the ADC or DAC paths are still
enabled.  This happens when we have simultaneous playback and recording.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
2011-03-01 23:27:00 +00:00
Mark Brown
3ee845acba ASoC: Fix WM9081 platform data initialisation
It went AWOL in the multi-component conversion.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Cc: stable@kernel.org
2011-03-01 23:10:41 +00:00
Eric Bénard
2c4066cca4 eukrea-tlv320: add MBIMXSD51 support
Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-03-01 14:19:51 +01:00
Grant Likely
f07eb223a0 dt/sound: Eliminate users of of_platform_{,un}register_driver
Get rid of users of of_platform_driver in drivers/sound.  The
of_platform_{,un}register_driver functions are going away, so the
users need to be converted to using the platform_bus_type directly.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2011-02-28 13:22:44 -07:00
Stephen Warren
e1412e636e ASoC: Tegra: Fix error handling in DMA channel alloc
tegra_dma_allocate_channel() returns NULL on errors, not an error pointer.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-28 15:10:03 +00:00
Mark Brown
61a142b7e4 ASoC: Staticise non-exported symbols in SGTL5000
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-28 14:33:01 +00:00
Zeng Zhaoming
5f83df9a61 ASoC: remove unnecessary header including in SGTL5000 codec driver
Remove unnecessary headers:
 - mach/hardware.h in sgtl5000.c
 - linux/i2c.h in sgtl5000.h

Signed-off-by: Zeng Zhaoming <b32542@freescale.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-28 14:24:35 +00:00
Mark Brown
ccecc127a8 Merge branch 'for-2.6.38' into for-2.6.39 2011-02-26 09:50:01 +00:00
Eric Bénard
573f89b5f3 ASoC: eukrea-tlv320: add MBIMXSD51 support
Signed-off-by: Eric Bénard <eric@eukrea.com>
Acked-by: Liam Girdwood <lrg@slimogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-25 12:58:59 +00:00
Mark Brown
b3111a9aa8 ASoC: Move WM2000 to dev_pm_ops
There's a general move to use dev_pm_ops rather than bus specific functions
in order to facilitate work on the PM core. Do this conversion to WM2000.
The driver ought to be updated to work better in a multi-component model
but the mechanical conversion ensures that we avoid blocking PM core work
until that happens.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-25 12:58:36 +00:00
Eric Bénard
43c6318882 eukrea-tlv320: fix platform_name
commit f0fba2ad1b included a mistake
on the name of the platform in the snd_soc_dai_link structure.

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>
Cc: stable@kernel.org
2011-02-25 12:57:49 +00:00
Zeng Zhaoming
9b34e6cc3b ASoC: Add Freescale SGTL5000 codec support
Add Freescale SGTL5000 codec support.
Supported features:
 - line-in and mic input
 - headphone and line-out output
 - line-in bypass ADC and DAC to headphone
 - 16, 20, 24, 32 bit audio
 - 8 ~ 96k sample rates

Signed-off-by: Zeng Zhaoming <zhaoming.zeng@freescale.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-25 12:09:33 +00:00
Justin P. Mattock
ceade6c81b ASoC: remove one to many l's in the word
The patch below removes an extra "l" in the word.

Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
Acked-by: Jassi Brar <jassi.brar@samsung.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-25 11:48:45 +00:00
Mark Brown
5448716ba9 Merge branch 'for-2.6.38' into for-2.6.39 2011-02-25 11:45:09 +00:00
Stephen Warren
a3cd50deef ASoC: Tegra: Move utilities to separate module
The utilities will be required by every machine driver. Including the
utility object directly into every machine driver causes a build failure
if the modules are actually built into the kernel, since each will define
the symbols exported by the utility file. Solve this by moving the
utility object into a separate module.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-25 11:44:46 +00:00
Dimitris Papastamos
67f5ed6e71 ASoC: soc-dapm: Include quotes around contents in debugfs entries
Sometimes the name of the control switch of a dapm route contains
spaces which makes it impossible to distinguish it from the source widget.
Add quotes around the names of the widgets to makes these parsable.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-25 11:44:36 +00:00
Mark Brown
2031c0645c ASoC: Remove -codec suffix from WM9081 driver
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-25 11:43:53 +00:00
Dmitry Eremin-Solenikov
4bfc4e2508 ASoC: correct pxa AC97 DAI names
Correct names for pxa AC97 DAI are pxa2xx-ac97 and pxa2xx-ac97-aux. Fix
that for all PXA platforms.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
2011-02-25 11:42:18 +00:00
Kishon Vijay Abraham I
2686e07b3e ASoC: McBSP: get hw params from McBSP driver
Removed the use of macros to obtain base address and DMA channel number.
Instead use the McBSP driver API's that passes base address and DMA
channel number to the client driver.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Acked-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: Tony Lindgren <tony@atomide.com>
2011-02-24 13:04:13 -08:00
Mark Brown
1d2c27f941 ASoC: Pass the jack to jack notifiers
We're currently not passing anything and this will make the card and so on
more discoverable.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-24 09:42:33 +00:00
Mark Brown
864c4bd248 ASoC: Simplify default WM8958 jack detection code
The default WM8958 jack detection handler implements a full set of buttons
and also support for video detection. Support for multi-button jacks is
fairly system specific and will usually require some tuning for headsets
so simplify the implementation to only report a simple short to ground
button, leaving multi-button headsets to be handled by system specific
code.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-22 10:42:33 -08:00
Mark Brown
48e028ecca ASoC: Support configuration of WM8958 microphone bias analogue parameters
The WM8958 has a different microphone bias architecture to WM8994 so needs
different configuration to WM8994. Support this in platform data.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-22 10:42:06 -08:00
Mark Brown
9b7c525dfa ASoC: Support WM8958 direct microphone detection IRQ
Allow direct routing of the WM8958 microphone detection signal to a GPIO
to be used, saving the need to demux the interrupt.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-22 10:41:41 -08:00
Mark Brown
7d700ac8d9 ASoC: Mark WM8958 microphone bias registers as readable
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-22 10:41:19 -08:00
Mark Brown
9d0624a740 ASoC: Run bias level changes for all DAPM contexts in parallel
As bias level changes can be quite time consuming and the bias changes
for multiple devices aren't strongly tied to each other (if anything it
can be advantageous to bring different devices up together) we can improve
the state transition time for multi-component systems by running the bias
level changes for all the devices in parallel. This is very simple to
achieve using the kernel async functionality so use that to schedule the
work.

This should have no practical effect for the overwhelming majority of
systems which have a single DAPM context - we'll bounce into another
thread to do the bias level change but otherwise everything will happen
in exactly the same order as it did before.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-22 10:40:54 -08:00
Mark Brown
ed5a4c4723 ASoC: Remove card from snd_soc_dapm_set_bias_level()
We can get the card from the DAPM context so don't bother passing it as
an argument.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-22 10:39:14 -08:00
Mark Brown
4c090edfbb Merge branch 'for-2.6.38' into for-2.6.39 2011-02-22 10:38:13 -08:00
Mark Brown
cea2bc50a3 ASoC: Hook wm_hubs micbiases up to CLK_SYS
The microphone detection functionality requires a clock to work. In any
non-detection case where the MICBIAS is enabled CLK_SYS will be needed
anyway so there is no negative impact on power consumption.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-22 10:37:49 -08:00
Mark Brown
8ceed344af ASoC: Correct definition of WM8903_VMID_RES_5K
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-22 10:37:48 -08:00
Mark Brown
406e56c9df ASoC: Fix WM8958 default microphone detection argument ordering
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-22 10:37:32 -08:00
Jarkko Nikula
9d7e584b3f ASoC: omap: rx51: Add FM transmitter support
Si4713 FM transmitter on Nokia RX-51/N900 is connected to same Line out
signals of TLV320AIC34 than TPA6130 headphone amplifier.

This patch adds route to transmitter and "FM Transmitter" control to keep
route active when needed.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-22 09:38:50 +00:00
Kukjin Kim
b4a5660da0 ASoC: Change dependency of ARCH_EXYNOS4
This patch changes dependency of ARCH_EXYNOS4 from ARCH_S5PV310
according to the change of ARCH name, EXYNOS4.

Acked-by: Jassi Brar <jassi.brar@samsung.com>
Cc: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
2011-02-22 13:51:15 +09:00
Mark Brown
4baafdd76b ASoC: Hook wm_hubs micbiases up to CLK_SYS
The microphone detection functionality requires a clock to work. In any
non-detection case where the MICBIAS is enabled CLK_SYS will be needed
anyway so there is no negative impact on power consumption.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-18 15:05:53 -08:00
Mark Brown
40d2f1592a ASoC: Mark WM8958 microphone detection registers readable
So they show up in codec_reg.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-18 14:47:02 -08:00
Mark Brown
7887ab3a27 ASoC: Allow GPIO jack detection to be configured as a wake source
Some systems wish to use jacks as wake sources. Provide a wake flag in the
GPIO configuration which causes the driver to enable the IRQ as a wake
source.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-18 09:14:14 -08:00
Mark Brown
5a9f91ca79 ASoC: Log wm_hubs DC servo operation code when reporting a timeout
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-18 09:14:04 -08:00
Mark Brown
d1118aaad2 ASoC: Remove export of snd_soc_dapm_stream_event()
The only thing that should ever be calling this is soc-core and that is
built as part of the same module so doesn't need the export.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-18 09:13:39 -08:00
Mark Brown
4a8d929d14 ASoC: Fix missing space in WM8994
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-18 09:13:30 -08:00
Tony Lindgren
9238b6d8e8 Merge branches 'devel-cleanup', 'devel-board', 'devel-early-init' and 'devel-ti816x' into omap-for-linus 2011-02-16 11:32:38 -08:00
Vinod Koul
5b499f8bf3 ASoC: sst_platform: fix the pulseaudio error
Pulseaudio doesnt work with current driver and it was root caused to absense of
hw_params function and malloc_pages in it.
This patch adds this and allows pa to work fine with these drivers

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-15 17:59:17 -08:00
Vinod Koul
d58198b943 ASoC: mfld_machine: make use of soc_register_card API
This patch removes the old method of soc-audio device creation in mfld machine
and makes use of new soc_register_card API to register the card

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-15 17:59:05 -08:00
Vinod Koul
65e9625e1f ASoC: sn95031: fix the amic tlv scale
The tlv scale is defined as (min, step, mute). The mute is not supported here so
put the value to 0

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-15 17:58:54 -08:00
Vinod Koul
a62ffc92e8 ASoC: sn95031: fix the DMIC path routing
This patch makes the DMIC dynamically connect to TX Mux, earlier code had
erroneously made this as static path

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-15 17:58:41 -08:00
Vinod Koul
1461d0630e ASoC: sn95031: make playback rails depend on actual pins they control
This patch makes the codec playback rails (headset and speaker) depend on
actual pins they control. This enables better power management of the codec

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-15 17:58:26 -08:00
Jarkko Nikula
1784061957 ASoC: omap: rx51: Report headset insertion instead of video out cable
It is more usefull to report headset instead of video out cable in response
to jack insertion as this is more usual use-case and because now the headset
feature is supported. Automatic accessory detection is not possible at the
moment so most sensible static accessory type have to be used.

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>
2011-02-15 21:53:59 +00:00
Jarkko Nikula
31164c7cf1 ASoC: omap: rx51: Add headset support
This patch adds support for headset microphone in Nokia RX-51/N900. The mic
signal from audio jack is routed to codec A LINE1L via two switches and the
mic bias is coming from codec B part.

First switch is the tv-out switch that is already supported and the second
switch selects between voltage detection circuit and codecs. As there is
no use for voltage detection at the moment the second switch is connected
statically to codecs in rx51_soc_init.

Headset can be active when control "Jack Function" is set to "Headset".

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>
2011-02-15 21:53:59 +00:00
Jarkko Nikula
d8ec598e5d ASoC: omap: rx51: Use gpio_request_one to configure tvout_sel gpio
Just slight cleanup to be sync with upcoming change.

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>
2011-02-15 21:53:59 +00:00
Mark Brown
f98dedcefd Merge branch 'for-2.6.38' into for-2.6.39 2011-02-13 19:51:04 +00:00
Mark Brown
905f6952c5 ASoC: Warn if WM8903 platform data is used to enable microphone IRQ
The WM8903 interrupts are clear on read so if the WM8903 detection is
enabled from platform data when the IRQ is in use (rather than using a
direct signal from a GPIO) status may be lost during startup. Help users
spot this misconfiguration by adding a WARN_ON().

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-13 19:50:20 +00:00
Stephen Warren
8eb34207c8 ASoC: Tegra: Add MODULE_ALIAS
With the appropriate MODULE_ALIAS in place, the audio modules will be
automatically loaded; there is no longer a need for manual modprobes.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-13 19:50:10 +00:00
Stephen Warren
bf1b132836 ASoC: Tegra: Harmony: Explicitly set mic enables
Harmony has both an external mic (a regular mic jack) and an internal mic
(a 0.1" two-pin header on the board).

The external mic is connected to the WM8903's IN1L pin, and is supported
by the current driver.

The internal mic is connected to the WM8903's IN1R pin, and is not supported
by the current driver.

It appears that no Harmony systems were shipped with any internal mic
connected; users were expected to provide their own. This makes the
internal mic connection less interesting.

The WM8903's Mic Bias signal is used for both of these mics. For each mic,
a GPIO drives a transistor which gates whether the mic bias signal is
actively connected to that mic, or isolated from it.

The dual use of the mic bias for both mics makes a general-purpose complete
implementation of mic detection using the mic bias complex. So, for
simplicity, the internal mic is currently ignored by the driver.

This patch configures the relevant GPIOs to enable the mic bias connection
to the external mic, and disable the mic bias connection to the internal
mic. Note that in practice, this is the default state if these GPIOs aren't
configured.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-13 19:50:10 +00:00
Stephen Warren
0d6cdca719 ASoC: Harmony: Call snd_soc_dapm_nc_pin
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-13 19:50:09 +00:00
Stephen Warren
41b5f9b349 ASoC: Tegra: Harmony: Implement mic detection
* Add jack definition for mic jack
* Request wm8903 to enable mic detection
* Force mic bias on, since it's required for mic detection

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-13 19:50:09 +00:00
Mark Brown
3017358a75 ASoC: Ensure supplies are maintained for force enabled widgets
If a widget has been force enabled then not only do we need to keep the
widget itself enabled, we also need to keep any supplies the widget
requires enabled. The user could force all the individual widgets on but
this requires too much knowledge of device internals.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-13 19:49:47 +00:00
Dimitris Papastamos
c52fd021bc ASoC: WM8994: Improve playback robustness
On WM8994 revision D and earlier ensure proper playback robustness
as some rare use cases can trigger issues.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
2011-02-13 19:45:01 +00:00
Dimitris Papastamos
173efa09e4 ASoC: WM8994: Improve robustness in some use cases
Ensure that on disabling certain registers such as AIF1DAC1L,
AIF1DAC1R etc. the AIF1CLK and AIF2CLK remain enabled.  Similarly
when enabling those registers, AIF1CLK and AIF2CLK will remain
disabled.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
2011-02-13 19:44:54 +00:00
Stephen Warren
3088e3b496 ASoC: WM8903: Fix mic detection enable logic
The mic detection HW should be enabled when either mic or short detection
is required, not when only both are required.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
2011-02-13 19:44:46 +00:00
Jarkko Nikula
535787b6ae ASoC: Allow use sleeping gpio in soc-jack
It is safe to use sleeping gpio in snd_soc_jack_gpio_detect as it is not
called from interrupt context. This avoids WARN_ON from __gpio_get_value
if sleeping gpio is registered for jack.

Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-11 11:17:43 +00:00
Vinod Koul
7ae7434086 ASoC: mid-x86: Use the soc-jack apis for jack type detection
This patch modifies the mfld_machine to use the new jack apis for adding the
voltage zones for jack type detection. It also modifed TI sn95031 codec driver
to use these new apis

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-11 11:16:29 +00:00
Mark Brown
4a5aa6e9ea Merge branch 'for-2.6.38' into for-2.6.39 2011-02-11 11:14:20 +00:00
Mark Brown
b4d06f456d ASoC: Use explicit sequence for WM8903 bias off
This makes no real difference compared to the write sequencer sequence
that was previously used but can run without a clock being provided.
Also remove the write sequencer support code as this was the last use
of it.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-11 11:14:05 +00:00
Mark Brown
22f226dd14 ASoC: Don't use write sequencer to power up WM8903
The write sequencer sequencer sequence takes longer than is desirable
as it brings up a full playback path which is not required at this
point. Open coding the sequence cuts the startup time by two thirds.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-11 11:13:56 +00:00
Mark Brown
66daaa59d5 ASoC: Convert WM8903 bias management to use snd_soc_update_bits()
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-11 11:13:48 +00:00
Janusz Krzysztofik
8e6bfb9b1f ASoC: CX20442: fix wrong reg_cache_default content
Content of the CX20442's snd_soc_codec_driver.reg_cache_default pointed
area, introduced with my recent NULL pointer dereferece fix (commit
f019ee5feb), occured wrong after further
testing, more thorough than just booting successfully. There are two
problems with it:

1) It should read
	(1 << CX20442_TELOUT) | (1 << CX20442_MIC),
   not
	CX20442_TELOUT | CX20442_MIC.

2) While correctly matching actual codec hardware state on boot when
   fixed per 1), a few more code modifications would still be required
   to reflect that state not only into register cache, but also force
   them into DAPM pins state, otherwise an inconsitency occures which
   may prevent further codec state changes from being applied correctly.
   As a result, the phone stops ringing after reboot, until someone
   picks up the handset for the first time.

Revert that reg_cache_default content to a working, previous de facto
default value of 0, in hope this change can still be accepted as an rc
cycle fix.

Created and tested against linux-2.6.38-rc4

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-11 11:00:30 +00:00
Mark Brown
c5b6a9feae ASoC: Actively manage WM8903 DC servo configuration
Explicitly cache the DC servo offsets for digital paths in the driver,
allowing them to be preserved over suspend and resume, and ensure that
we recalibrate analogue outputs paths when they are in use so that we
cover any changes in the input offset.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-10 10:45:05 +00:00
Vinod Koul
fa9879edeb ASoC: add support for multiple jack types
This patch adds soc-jack support for adding voltage zones and for
detecting jack type

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-09 23:02:43 +00:00
Mark Brown
866fd9366a Merge branch 'for-2.6.38' into for-2.6.39 2011-02-09 22:52:08 +00:00
Mark Brown
b66a70d5e9 ASoC: Sync initial widget state with hardware
ASoC generally uses the register defaults for everything, but in some
cases the hardware will default to enabling some of the DAPM widgets
(clocks for example). Ensure that DAPM knows about the actual widget
state at initialisation by reading the enable bits after instantiating
the widgets so they don't get left enabled needlessly.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-09 22:51:12 +00:00
Mark Brown
e12adab002 ASoC: Fix WM8903 DAC mute default
The WM8903 register map does not mute the DAC by default at startup
so we need to explicitly do so.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-09 22:50:16 +00:00
Mark Brown
2c8be5a26e ASoC: Dynamically manage CLK_SYS in WM8903
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-09 22:50:03 +00:00
Mark Brown
13a9983eb1 ASoC: Convert WM8903 to use PGA_S for output stage enables
This simplfies the code and slightly reduces the startup time.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-09 22:49:52 +00:00
Mark Brown
1e113bf9e0 ASoC: Add support for AIF channel muxing on WM8903
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-09 22:48:26 +00:00
Mark Brown
1d8d62d637 ASoC: Display WM8903 chip revision alphabetically
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-09 22:48:17 +00:00
Mark Brown
4b592c919c ASoC: Remove redundant -codec from WM8903 driver name
It causes noisy -codecs to appear in things like .codec_name.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
2011-02-09 22:47:56 +00:00
Vaibhav Bedia
4f82f02852 ASoC: Davinci: Replace usage of IO_ADDRESS with ioremap()
This patch modifies the Davinci i2s and mcasp drivers to make use of
ioremap() instead of IO_ADDRESS()

Signed-off-by: Vaibhav Bedia <vaibhav.bedia@ti.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-09 22:33:32 +00:00
Vaibhav Bedia
eef6d7b8c2 ASoC: Davinci: Call clk_disable() and clk_put() in case of error
In case of any error in probe() function, clk_disable() and clk_put()
should be called if clk_enable() and clk_get() went through.

Signed-off-by: Vaibhav Bedia <vaibhav.bedia@ti.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-09 22:33:16 +00:00
Vaibhav Bedia
d852f446b7 ASoC: Davinci: Use resource_size() helper function
This patch modifies the Davinci i2s and mcasp drivers
to make use of the resource_size() helper function for readability.

Signed-off-by: Vaibhav Bedia <vaibhav.bedia@ti.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-09 22:33:03 +00:00
Vinod Koul
36633237be ASoC: sn95031: Add support for reading mic bias
This patch adds support to read the mic bias voltage
when a jack is inserted. It uses ADC to measure.

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-09 22:32:53 +00:00
Vinod Koul
42aee9b43e ASoC: mfld_machine: Add support for jack detection
This patch adds support for registering jack interupt
and registering jack with core

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-09 22:32:39 +00:00
Vinod Koul
1e2f5932e4 ASoC: sn95031: Add jack support in the codec
This patch adds support for jack detection and reporting in the codec
It however is not fully functional as it doesn't measure adc to figure
out what got inserted which will be added later

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-02-09 22:32:26 +00:00