Commit Graph

6638 Commits

Author SHA1 Message Date
Mike Dyer
85fa532b6e ASoC: wm8960: Fix PLL register writes
Bit 9 of PLL2,3 and 4 is reserved as '0'. The 24bit fractional part
should be split across each register in 8bit chunks.

Signed-off-by: Mike Dyer <mike.dyer@md-soft.co.uk>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
2013-08-18 16:30:26 +01:00
Mark Brown
ac0b82b178 ASoC: si476x: Add DAPM support
This ensures the driver continues to work with DAPM mandatory and makes
it easier to connect the device up to other components in the subsystem.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Andrey Smirnov <andrew.smirnov@gmail.com>
2013-08-18 16:27:48 +01:00
Mark Brown
4a11bc2fdd ASoC: tlv320aic26: Add basic DAPM support
Provide external widgets for the CODEC to ensure the device continues to
function with DAPM mandatory and to make it easier to hook the device up
to other components.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-16 12:32:44 +01:00
Mark Brown
c21bb9b1b7 ASoC: tlv320aic26: Remove noisy print
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-16 12:32:43 +01:00
Mark Brown
12201398fc ASoC: tlv320aic26: Remove direct use of internal I/O functions
Use the core to do I/O rather than directly calling the driver operations
in order to support further refactoring.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-16 12:32:43 +01:00
Mark Brown
f6938bb360 Merge remote-tracking branch 'asoc/fix/sgtl5000' into asoc-linus 2013-08-15 11:37:53 +01:00
Mark Brown
b9281f99e3 ASoC: pcm1681: Add DAPM support
Provide DAPM for the device, ensuring operation with DAPM required by the
core and making it easier to hook up external hardware to it.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-15 11:35:09 +01:00
Mark Brown
e7a5cb4223 ASoC: pcm1792a: Add DAPM support
Provide DAPM for the device, ensuring operation with DAPM required by the
core and making it easier to hook up external hardware to it.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-15 11:33:15 +01:00
Mark Brown
5332e1d26f ASoC: pcm1792a: Remove empty capture DAI stub
These intialisations are just what will be done for static data anyway so
remove them.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-15 11:33:14 +01:00
Ma Haijun
c324aac01b ASoC: wm8960: Fix ADC volume bits
Signed-off-by: Ma Haijun <mahaijuns@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-14 19:16:29 +01:00
Mark Brown
5cf9da8aac ASoC: max9877: Add basic DAPM support
This does not fully map the power control available within the device
but it provides the hooks for routing signals through the device and
allows automatic management of the device low power mode.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-13 13:40:35 +01:00
Mark Brown
d76a96174b ASoC: max9877: Convert to standard CODEC driver
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-13 13:40:34 +01:00
Mark Brown
997288e382 ASoC: max9877: Convert to use regmap API
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-13 13:40:33 +01:00
Mark Brown
4601736a6f ASoC: ak4554: Add DAPM support
This makes it possible to hook the device into a more complex board and
ensures it will continue to work with non-DAPM support removed from the
core.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-13 13:38:36 +01:00
Charles Keepax
40843aea5a ASoC: wm8997: Initial CODEC driver
The wm8997 is a compact, high-performance audio hub CODEC with SLIMbus
interfacing, for smartphones, tablets and other portable audio devices
based on the Arizona platform.

This patch adds the wm8997 CODEC driver.

[Fixed some interface churn from bitrot due to the patch not going via
the MFD tree as expected -- broonie]

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-13 11:31:56 +01:00
Mark Brown
4bd9334312 Merge tag 'v3.11-rc5' into asoc-dapm
Linux 3.11-rc5
2013-08-13 10:19:23 +01:00
Charles Keepax
e7edb2731b ASoC: arizona: Add widget<->mux route into mux route macro
The routes linking the widget and the input mux were being added
manually, rather than by the ARIZONA_MUX_ROUTES macro. This patchs adds
the routes to the macro.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-12 11:56:13 +01:00
Mark Brown
dcf1439a49 ASoC: ak5386: Add DAPM support
This makes it possible to hook the device into a more complex board and
ensures it will continue to work with non-DAPM support removed from the
core.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-12 11:23:38 +01:00
Mark Brown
a5db4d50fa ASoC: ak4104: Manage TXE using DAPM
Saves some code. We should also be able to manage the power up and reset
registers using DAPM but it's probably more trouble than it's worth in
mains powered systems.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-12 11:22:39 +01:00
Mark Brown
2e61926cb4 ASoC: ak4104: Add stub DAPM support
This makes it easer to integrate the device with other on-board components
and ensures correct operation following removal of support for non-DAPM
CODECs.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-12 11:22:39 +01:00
Mark Brown
9190aeb4ec ASoC: adau1701: Use gpio_set_value_cansleep()
The GPIO manipulation done by this driver is never in atomic context so
we can use gpio_set_value_cansleep() and support GPIOs that can't be set
from atomic context.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
2013-08-12 11:07:47 +01:00
Mark Brown
2e7fb942a3 ASoC: cs4271: Add DAPM support
This makes it possible to hook the device into a more complex board and
ensures it will continue to work with non-DAPM support removed from the
core.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Alexander Sverdlin <subaparts@yandex.ru>
2013-08-11 18:40:53 +01:00
Mark Brown
bad268f350 ASoC: cs4271: Convert to table based control init
Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Alexander Sverdlin <subaparts@yandex.ru>
2013-08-11 14:04:19 +01:00
Mark Brown
439fe8a7bb ASoC: max9768: Add DAPM support
This makes it possible to hook the device into a more complex board and
ensures it will continue to work with non-DAPM support removed from the
core.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-11 13:30:17 +01:00
Mark Brown
827d22f136 ASoC: ad73311: Add DAPM support
This makes it possible to hook up other devices in boards and is required
by removal of support for non-DAPM CODECs in the core.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
2013-08-08 14:24:30 +01:00
Mark Brown
16695971be ASoC: pcm1681: Staticise DAI driver
It is not exported so doesn't need to be in the global namespace and
sparse warns on this.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-08 12:35:23 +01:00
Mark Brown
45a14a8b50 ASoC: ads711x: Add DAPM support
This makes it easier to hook into boards and ensures the driver continues
to work with support for non-DAPM CODECs removed.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-07 19:18:08 +01:00
Mark Brown
9e7e474c09 ASoC: ad1980: Provide stub DAPM support
Since non-DAPM devices are not going to be supported provide DAPM input
and output widgets and hook them up to the DAIs.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
2013-08-07 10:14:23 +01:00
Brian Austin
8806d96db7 ASoC: cs42l52: Add new TLV for Beep Volume
CS42L52 Beep control uses 2dB scale from -56dB

Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-06 19:38:57 +01:00
Brian Austin
e2c98a8bba ASoC: cs42l52: Reorder Min/Max and update to SX_TLV for Beep Volume
Beep Volume Min/Max was backwards.
Change to SOC_SONGLE_SX_TLV for correct volume representation

Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@kernel.org
2013-08-06 19:38:19 +01:00
Charles Keepax
c7f3843575 ASoC: wm5110: Correct input OSR bits for wm5110
The input OSR bits are specified differently for wm5110 than for current
revs of wm5102. This patch corrects support for this on wm5110.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-06 17:41:33 +01:00
Lars-Peter Clausen
0d59ff3a24 ASoC: twl4030: Remove embedded snd_soc_codec structs from private data structs
It is unused and a leftover of the pre multi-component era.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-06 17:08:24 +01:00
Lars-Peter Clausen
95ad868289 ASoC: mc13783: Remove embedded snd_soc_codec structs from private data structs
It is unused and a leftover of the pre multi-component era.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-06 12:43:54 +01:00
Lars-Peter Clausen
f8f11795b9 ASoC: tlv320aic26: Fix keyclick feature
The tlv320aic26 contains a embedded snd_soc_codec struct which is referenced in
the keyclick code. That struct is never initialized though, replace the embedded
struct with a pointer and use that in the keyclick code.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-06 12:43:05 +01:00
Mark Brown
ed6a277239 ASoC: wm8994: Fix class W controls
Commit 6e0650 (ASoC: wm8994: Use SOC_SINGLE_EXT() instead of open-coding
it) went too far and converted a DAPM control to use SOC_SINGLE_EXT()
which crashes.  Revert that portion of the patch.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-06 10:52:01 +01:00
Mark Brown
55af2d23c6 ASoC: pcm1792a: Fix build with !OF
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-05 18:20:53 +01:00
Mark Brown
6c3137fd01 Merge remote-tracking branch 'asoc/topic/pcm1681' into asoc-new-pcm
Trivial add/add conflicts:
	sound/soc/codecs/Kconfig
	sound/soc/codecs/Makefile
2013-08-05 18:12:39 +01:00
Michael Trimarchi
13b02fa0db ASoC: Add PCM1792A spi mode codec support
Add PCM1792A spi mode codec support. This version implements only
a subset of functionalities. Tested connect to a pandaboard ES
device and based on recently pcm1681 codec.

Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-05 18:01:29 +01:00
Oskar Schirmer
e06e4c2d53 ASoC: sgtl5000: fix codec clock source transition to avoid clockless moment
Powering down PLL before switching to a mode that does not use it
is a bad idea. It would cause the SGTL5000 be without internal
clock supply, especially on the I2C interface, which would make
subsequent access to it fail.

Thus, in case of not using PLL any longer, first set the mode
control, then power down PLL.

Signed-off-by: Oskar Schirmer <oskar@scara.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-05 17:03:42 +01:00
Russell King
6ad709482e ASoC: spdif_transceiver: add output pin widget
CODECs without any outputs now remain powered down, which means any
paths to these codecs also remain powered down.

Add an always-enabled output pin widget to the spdif transceiver codec.
This enables DAPM to correctly identify that the spdif transceiver is
in use when playback is enabled, which will then allow DAPM to power up
any links from the CPU DAI to the S/PDIF transceiver.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-05 12:32:40 +01:00
Lothar Waßmann
65f2b22676 ASoC: sgtl5000: fix buggy 'Capture Attenuate Switch' control
The SGTL5000 Capture Attenuate Switch (or "ADC Volume Range Reduction"
as it is called in the manual) is single bit only.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-01 14:48:20 +01:00
Lothar Waßmann
f091f3f073 ASoC: sgtl5000: prevent playback to be muted when terminating concurrent capture
When a sound capture/playback is terminated while a playback/capture
is running, power_vag_event() will clear SGTL5000_CHIP_ANA_POWER in
the SND_SOC_DAPM_PRE_PMD event, thus muting the respective other
channel.

Don't clear SGTL5000_CHIP_ANA_POWER when both DAC and ADC are active
to prevent this.

Signed-off-by: Lothar Waßmann <LW@KARO-electronics.de>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-01 14:48:17 +01:00
Bard Liao
868ead653e ASoC: rt5640: remove unused mux
Remove unused "INL Mux" and "INR Mux".

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-01 14:45:22 +01:00
Dimitris Papastamos
92bb4c3270 ASoC: wm_adsp: Sanitize parameter passing
No need to hold on to the `codec' pointer.  We can use the `dsp'
pointer and grab all the information we need from there.  This
makes the parameters for the functions a bit more sane and idiomatic.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-01 11:58:46 +01:00
Marek Belisko
95169d080f ASoC: Add PCM1681 codec driver.
PCM1681 can be controlled via I2C, SPI or in bootstrap mode (no control mode). This code add
support only for I2C mode.

Signed-off-by: Marek Belisko <marek.belisko@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-01 10:40:02 +01:00
Dimitris Papastamos
d4780eec77 ASoC: wm0010: Use DMA-safe memory for SPI transfers
We should be allocating our buffers for the SPI transfers
from the DMA zone.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-08-01 10:01:42 +01:00
Dimitris Papastamos
4f8b19143d ASoC: wm0010: Fix resource leak
If kzalloc() fails for `img' then we are going to leak the memory
for `out'.  We are freeing the memory of all the tx/rx transfers
but the tx/rx buf pointers will be NULL if we drop out earlier.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-31 14:50:34 +01:00
Nicolin Chen
db5ff9541b ASoC: spdif: Add S20_3LE and S24_LE support for dummy codec drivers
Generally, S/PDIF supports 20bit and optional 24bit samples. Thus add these
two formats for the dummy codec drivers.

If one S/PDIF controller has its own limitation, its CPU DAI driver should
set the supported format by its own circumstance, since the soc-pcm driver
will use the intersection of cpu_dai's formats and codec_dai's formats.

Signed-off-by: Nicolin Chen <b42378@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-31 14:27:48 +01:00
Richard Genoud
0890c2b7be ASoC: wm8731: add rates constraints
Depending on the mclk (or crystal) selected, the wm8731 codec have some
constraints on its data sampling rates:
e.g. with a 12.288MHz or 18.432MHz crystal, the authorized rates are
8KHz, 32KHz, 48KHz and 96KHz.

Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-30 12:28:01 +01:00
Russell King
113591e477 ASoC: uda134x: fix codec driver by converting to DAPM
For some reason, the DAC/ADCs are not being powered up when I try and
use the UDA1341 driver; this used to work.  Looking back in the git
history, I don't see anything obvious which would cause this
regression.

However, from dumping the register writes, it seems that the codec is
powered down, and nothing calls set_bias_level to wake the codec up.

Moreover, this driver hasn't had DAPM support added to it, which
prevents platform drivers from taking advantage of DAPMs facilities.
So, let's add DAPM support to the driver.

As we move the power control for the DAC/ADC into DAPM, we no longer
need it in set_bias_level() - this function just becomes a way to
manipulate the power control and sync the register cache with the
hardware at the appropriate point.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-30 12:04:02 +01:00