Commit Graph

3246 Commits

Author SHA1 Message Date
Kuninori Morimoto
5f17482a32 ASoC: wm8978: enable symmetric rates
wm8978 needs .symmetric_rates = 1.
The playback/capture will be strange without this patch
when it used asymmetric rate in same time

Tested-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-12 09:44:56 +01:00
Mark Brown
5464389755 Merge remote-tracking branch 'asoc/topic/wm8994' into asoc-next 2013-06-17 17:20:32 +01:00
Mark Brown
f57019aa0a Merge remote-tracking branch 'asoc/topic/wm8962' into asoc-next 2013-06-17 17:20:32 +01:00
Mark Brown
7daf390b8b Merge remote-tracking branch 'asoc/topic/wm0010' into asoc-next 2013-06-17 17:20:31 +01:00
Mark Brown
458bcee95d Merge remote-tracking branch 'asoc/topic/ux500' into asoc-next 2013-06-17 17:20:30 +01:00
Mark Brown
bfe617d33d Merge remote-tracking branch 'asoc/topic/ssm2518' into asoc-next 2013-06-17 17:20:29 +01:00
Mark Brown
d238ffabc5 Merge remote-tracking branch 'asoc/topic/spdif' into asoc-next 2013-06-17 17:20:28 +01:00
Mark Brown
0c5f45065c Merge remote-tracking branch 'asoc/topic/sn95031' into asoc-next 2013-06-17 17:20:27 +01:00
Mark Brown
14345a5898 Merge remote-tracking branch 'asoc/topic/sgtl5000' into asoc-next 2013-06-17 17:20:27 +01:00
Mark Brown
60790c5735 Merge remote-tracking branch 'asoc/topic/rt5640' into asoc-next 2013-06-17 17:20:25 +01:00
Mark Brown
ff868b2296 Merge remote-tracking branch 'asoc/topic/max98090' into asoc-next 2013-06-17 17:20:23 +01:00
Mark Brown
46dd30a893 Merge remote-tracking branch 'asoc/topic/jz4740' into asoc-next 2013-06-17 17:20:22 +01:00
Mark Brown
18923d7ec7 Merge remote-tracking branch 'asoc/topic/hdmi' into asoc-next 2013-06-17 17:20:21 +01:00
Mark Brown
c44ddeb837 Merge remote-tracking branch 'asoc/topic/dfmbcs320' into asoc-next 2013-06-17 17:20:18 +01:00
Mark Brown
9912b30f95 Merge remote-tracking branch 'asoc/topic/arizona' into asoc-next 2013-06-17 17:20:14 +01:00
Mark Brown
e768f4e12f Merge remote-tracking branch 'asoc/topic/adsp' into asoc-next 2013-06-17 17:20:14 +01:00
Mark Brown
0ee6f75016 Merge remote-tracking branch 'asoc/topic/adau1701' into asoc-next 2013-06-17 17:20:13 +01:00
Mark Brown
b27729344d Merge remote-tracking branch 'asoc/topic/88pm860x' into asoc-next 2013-06-17 17:20:13 +01:00
Mark Brown
c38a881ebb Merge remote-tracking branch 'asoc/fix/wm8962' into asoc-linus 2013-06-17 17:20:12 +01:00
Mark Brown
d48fb4232d Merge remote-tracking branch 'asoc/fix/adsp' into asoc-linus 2013-06-17 17:20:11 +01:00
Mark Brown
27e9a69759 Merge remote-tracking branch 'asoc/fix/adav80x' into asoc-linus 2013-06-17 17:20:10 +01:00
Charles Keepax
5be9c5b477 ASoC: wm5110: Correct rate control for DSP4
Reported-by: Dennis May <dennis.may@wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-14 15:59:55 +01:00
Nicolin Chen
f5055f9373 ASoC: wm8962: Enable start-up and normal bias after reset in runtime resume
This part of bias settings are essential for WM8962 to power up. Without it
"wm8962 0-001a: DC servo timed out" might be prompted due to power-up failure
that happens to FLL if being used.

The driver's also bringing the bias down in the suspend path so it needs to be
powered up in the resume path for symmetry.

According to dapm_pre_sequence_async(), DAPM would call pm_runtime_get_sync()
to let driver finish the bias settings in pm_runtime_resume() before the bias
level being set to STANDBY. So no need to worry about disordered settings for
VMID of WM8962.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-14 12:43:16 +01:00
Mark Brown
384b834558 Merge branch 'fix/wm8962' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-wm8962
Conflicts:
	sound/soc/codecs/wm8962.c
2013-06-14 10:16:06 +01:00
Nicolin Chen
2e7ee15ced ASoC: wm8962: Remove remaining direct register cache accesses
Also fix return values for headphone switch updates.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
2013-06-14 10:13:53 +01:00
Stephen Warren
9be94aeabf ASoC: rt5640: fix sparse warnings
This fixes:
975:9: sparse: Using plain integer as NULL pointer
1917:24: sparse: symbol 'rt5640_aif_dai_ops' was not declared. Should it be static?
1924:27: sparse: symbol 'rt5640_dai' was not declared. Should it be static?
2079:19: sparse: symbol 'rt5640_i2c_driver' was not declared. Should it be static?

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-13 10:26:57 +01:00
Stephen Warren
dcad9f0312 ASoC: rt5640: add device tree support
Modify the RT5640 driver to parse platform data from device tree. Write
a DT binding document to describe those properties.

Slight re-ordering of rt5640_i2c_probe() to better fit the DT parsing.

Since ldo1_en is optional, guard usage of it with gpio_is_valid(), rather
than open-coding an if (gpio) check.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12 19:25:22 +01:00
Charles Keepax
7c470373e0 ASoC: wm5102: Expose controls for DRE
Certain use cases may require specific DRE settings so expose control
of these.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12 18:06:49 +01:00
Bard Liao
997b05203b ASoC: add RT5640 CODEC driver
This patch adds the ALC5640 codec driver.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Bard Liao <bardliao@realtek.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12 17:46:54 +01:00
Axel Lin
4119c0c0c6 ASoC: adav80x: Select SND_SOC_ADAV80X if SND_SOC_I2C_AND_SPI
This driver is useless if both SPI and I2C are not configured.
Thus don't build this driver if both SPI and I2C are not configured.

This patch silences below build warning if both SPI and I2C are not configured.

  CC      sound/soc/codecs/adav80x.o
sound/soc/codecs/adav80x.c:842:12: warning: 'adav80x_bus_probe' defined but not used [-Wunused-function]
sound/soc/codecs/adav80x.c:863:12: warning: 'adav80x_bus_remove' defined but not used [-Wunused-function]

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12 16:23:40 +01:00
Daniel Mack
f724ba3b07 ASoC: codecs: adau1701: factor out firmware reset
Some runtime-determined constraints might need to be satisfied prior to
firmware loading, so the actual download and releasing the device from
reset has to be postponed. Factor it out first, so we have everything at
one place.

This also changes the behaviour in a way that adau1701_i2c_probe() will
assert the reset line, and wait for the codec probe to release it.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12 16:21:27 +01:00
Axel Lin
1aad4e574b ASoC: ssm2518: Fix trivial typo in checking tx_mask and rx_mask values
Otherwise, ssm2518_set_tdm_slot() always returns error if slots != 0.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12 16:20:44 +01:00
Fabio Estevam
7c647af43f ASoC: sgtl5000: Use i2c_get_clientdata()
We should use i2c_get_clientdata() to get the codec private structure.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-12 16:06:36 +01:00
Mark Brown
9c24b16722 ASoC: wm8962: Restore device state after reset in runtime resume
After the device has been reset we need to repeat the same
initialisation we do on probe to make sure that the device is in
a known state.

Tested-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-10 13:50:44 +01:00
Mark Brown
902a75cdc4 Merge remote-tracking branch 'asoc/fix/wm8994' into asoc-linus 2013-06-10 10:28:51 +01:00
Mark Brown
4351ac5b9f Merge remote-tracking branch 'asoc/fix/tlv320aic3x' into asoc-linus 2013-06-10 10:28:50 +01:00
Mark Brown
ed75019204 Merge remote-tracking branch 'asoc/fix/cs42l52' into asoc-linus 2013-06-10 10:28:49 +01:00
Fabio Estevam
9e13f34588 ASoC: sgtl5000: Let the codec acquire its clock
On a mx6qsabrelite board the following error happens on probe:

sgtl5000: probe of 0-000a failed with error -5
imx-sgtl5000 sound.13: ASoC: CODEC (null) not registered
imx-sgtl5000 sound.13: snd_soc_register_card failed (-517)
platform sound.13: Driver imx-sgtl5000 requests probe defer

Prior to reading the codec ID we need to turn the SYS_MCLK clock, so let's
enable the codec clock inside sgtl5000_i2c_probe().

Also remove the codec clock enable/disable functions from the machine driver.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-10 10:26:23 +01:00
Andreas Irestål
2894770ec1 ASoC: tlv320aic3x: Remove deadlock from snd_soc_dapm_put_volsw_aic3x()
When calling snd_soc_dapm_sync(), it eventually tries to lock the same mutex
already locked in snd_soc_dapm_put_volsw_aic3x() and a deadlock occurs. By
moving the mutex unlock to just before snd_soc_dapm_sync(), this deadlock is
prevented. This problem was introduced in Linux 3.5

Signed-off-by: Andreas Irestål <Andreas.Irestal@axis.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-07 17:57:16 +01:00
Nicolin Chen
d74e9e7090 ASoC: wm8962: Add device tree binding
Document the device tree binding for the WM8962 codec, and modify the
driver to extract platform data from the device tree, if present.

Based on work of WM8903 by Stephen Warren <swarren@nvidia.com>

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-07 10:35:17 +01:00
Nicolin Chen
e75a52c672 ASoC: WM8962: Create default platform data structure
Embed a copy of struct wm8962_pdata in stuct wm8962_priv
so that there's no need to check validity of pdata any more.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-06 14:26:29 +01:00
Mark Brown
3722dc8ebf ASoC: max98090: Guard runtime PM callbacks
Otherwise the functions will be defined but unreferenced when runtime PM
is disabled, generating warnings.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-06 09:59:13 +01:00
Mark Brown
2bdc1bb2b4 ASoC: sgtl5000: Make device cache only when powered off
When the regulators have been disabled mark the device as cache only so
that we don't try to interact with the hardware.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05 19:38:15 +01:00
Barry Song
bf7c6e6ccb ASoC: omap-hdmi-codec: make the driver common for other SoCs
to support HDMI on CSR SiRFprimaII and atlasVI, we need one more HDMI pseudo
codec, rather than add a new driver, we can make omap HDMI codec common for
other SoCs as well. then the omap-hdmi codec becomes a generic HDMI pseudo-
codec as HDMI audio features depend on HDMI specification not on SoCs.

Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05 16:54:55 +01:00
Charles Keepax
6dc6a3f81e ASoC: arizona: Hookup SYSCLK to inputs and noise generators
All sources and sinks should enable SYSCLK.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05 15:46:01 +01:00
Charles Keepax
ee4b7c7fe0 ASoC: arizona: Correct AEC loopback enable
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-05 15:45:42 +01:00
Marek Vasut
dd4d2d6dfb ASoC: sgtl5000: Fix VAG_POWER enabling/disabling order
The VAG_POWER must be enabled after all other bits in CHIP_ANA_POWER
and disabled before any other bit in CHIP_ANA_POWER. See the SGTL5000
datasheet (Table 31, BIT 7, page 42-43). Failing to follow this order
will result in ugly loud "POP" noise at the end of playback.

To achieve such order, use the _PRE and _POST DAPM widgets to trigger
the power_vag_event, where the event type check has to be fixed
accordingly as well.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-04 18:46:57 +01:00
Charles Keepax
fd8b965744 ASoC: wm0010: Clear IRQ as wake source and include missing header
Both clear the IRQ as being a wake source when we are finished with it
and include a missing header file that is required.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-03 16:38:06 +01:00
Mark Brown
2da1c4bf76 ASoC: wm8994: Allow debounce before MICDET identification
For systems which do not have a jack detection feature allow some debounce
to be specified before we perform accessory identification, improving
robustness without impacting button detection responsiveness.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-06-01 19:28:58 +01:00
Mark Brown
2d01e39b90 ASoC: wm8994: Remove unused variable
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-06-01 19:28:54 +01:00