summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-12-04ASoC: Remove unused -codec from Wolfson device driver namesMark Brown14-15/+15
Devices that aren't MFDs don't need to distinguish this. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-03ASoC: WM8903: Create default platform data structureStephen Warren1-2/+17
When no platform data is supplied, point pdata at a default platform structure. This enables two future changes: a) Defines the default platform data values in a single place. b) There is always a valid pdata pointer, so some conditional code can be simplified by a later patch. Based on work by John Bonesio, but significantly reworked since then. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-03Merge branch 'for-3.2' into for-3.3Mark Brown1-1/+2
2011-12-03ASoC: Move initial WM8903 identification and reset to I2C probeMark Brown1-18/+23
Get control of the device earlier and avoid trying to do an ASoC probe on a card that won't work. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Tested-by: Stephen Warren <swarren@nvidia.com>
2011-12-03ASoC: Convert WM8903 to direct regmap API usageMark Brown1-182/+196
Converting to an rbtree cache as regcache doesn't have a flat cache. Since the top of the register map is fairly sparse this should be an overall win. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Tested-by: Stephen Warren <swarren@nvidia.com>
2011-12-03ASoC: Don't resync WM8903 register cache on resetMark Brown1-2/+0
We only do this on initial power on so it's at best a waste of time as the core will have already defaulted to the same values. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Tested-by: Stephen Warren <swarren@nvidia.com>
2011-12-03ASoC: Use a normal cache sync for WM8903Mark Brown1-15/+3
The driver used to use a complicated method to sync the register cache after having brought the bias level up to standby in resume due to the use of the write sequencer to manage the initial power up. Now that we don't use the write sequencer there is no need for this and we can just use snd_soc_cache_sync() directly. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Tested-by: Stephen Warren <swarren@nvidia.com>
2011-12-03ASoC: WM8903 only supports I2C so don't ifdef itMark Brown1-6/+0
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Tested-by: Stephen Warren <swarren@nvidia.com>
2011-12-03ASoC: Use table based control init for WM8903Mark Brown1-3/+2
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Tested-by: Stephen Warren <swarren@nvidia.com>
2011-12-03ASoC: Convert WM8903 to devm_kzalloc()Mark Brown1-4/+3
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Tested-by: Stephen Warren <swarren@nvidia.com>
2011-12-03ASoC: kirkwood: Make SND_KIRKWOOD_SOC_OPENRD and SND_KIRKWOOD_SOC_T5325 ↵Axel Lin1-1/+2
depend on I2C SND_KIRKWOOD_SOC_T5325 selects SND_SOC_ALC5623, but SND_SOC_ALC5623 needs CONFIG_I2C. So we need to make SND_KIRKWOOD_SOC_T5325 depend on I2C, otherwise I got below build error if CONFIG_I2C is not selected. CC sound/soc/codecs/alc5623.o sound/soc/codecs/alc5623.c: In function 'alc5623_i2c_probe': sound/soc/codecs/alc5623.c:1002: error: implicit declaration of function 'i2c_smbus_read_word_data' sound/soc/codecs/alc5623.c:1009: error: implicit declaration of function 'i2c_smbus_read_byte_data' sound/soc/codecs/alc5623.c: In function 'alc5623_modinit': sound/soc/codecs/alc5623.c:1096: error: implicit declaration of function 'i2c_add_driver' sound/soc/codecs/alc5623.c: In function 'alc5623_modexit': sound/soc/codecs/alc5623.c:1108: error: implicit declaration of function 'i2c_del_driver' make[3]: *** [sound/soc/codecs/alc5623.o] Error 1 make[2]: *** [sound/soc/codecs] Error 2 make[1]: *** [sound/soc] Error 2 make: *** [sound] Error 2 Also fix the same issue for SND_KIRKWOOD_SOC_OPENRD. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-02Merge branch 'for-3.2' into for-3.3Mark Brown1-6/+6
2011-12-02ASoC: Mark WM8994 ADC muxes as virtualMark Brown1-6/+6
Since they don't actually have power bits but do have events associated with them it's important that we bootstrap their state properly which making them virtual does. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-02ASoC: Map microphones on LittlemillMark Brown1-0/+10
Littlemill has one analogue microphone on the board (connected to IN1LN) and an array of four DMICs connected to both DMICDAT lines. The biases can be selected by jumpers but pick the default jumper fit. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-02ASoC: Convert WM8994 MICBIASes to supply widgetsMark Brown1-2/+2
There are some in tree systems using the driver but none use the MICBIAS widgets. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-02ASoC: Add WM8958 based headset detection on LittlemillMark Brown1-0/+15
The board supports CODECs that won't work with this but the CODEC driver will check to see if it's running on the right chip for us. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-02ASoC: Add missing err labelMark Brown1-0/+1
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-02ASoC: fsl/powerpc: don't rely on the cell-index propertyTimur Tabi2-10/+16
Instead of using the 'cell-index' property in the I2C adapter node to determine the adapter number, just query the i2c_adapter object directly. Previously, the I2C nodes always appeared in cell-index order, so the dynamic numbering coincided with the cell-index property. With commit ab827d97 ("powerpc/85xx: Rework P1022DS device tree"), the I2C nodes are unintentionally reversed in the device tree, and so the machine driver guesses the wrong I2C adapter number. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-02ASoC: p1022ds: add support for fsl,P1022 and fsl,P1022DS model namesTimur Tabi1-8/+28
Commit ab827d97 ("powerpc/85xx: Rework P1022DS device tree") renamed the the /model property of the P1022DS device tree from "fsl,P1022" to "fsl,P1022DS". To support both old and new device trees, the ASoC machine driver for the P1022DS needs to query the /model property and update the platform driver object dynamically. Signed-off-by: Timur Tabi <timur@freescale.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-02ASoC: WM8903: Disallow all invalid gpio_cfg pdata valuesStephen Warren1-2/+2
The GPIO registers are 15 bits wide. Hence values, higher than 0x7fff are not legal GPIO register values. Modify the pdata.gpio_cfg handling code to reject all illegal values, not just WM8903_GPIO_NO_CONFIG (0x8000). This will allow the later use of 0xffffffff as an invalid value in future device tree bindings, meaning "don't touch this GPIO's configuration". Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-02ASoC: Drop unused state parameter from CODEC suspend callbackLars-Peter Clausen67-73/+67
The existence of this parameter is purely historical. None of the CODEC drivers uses it and we always pass in the same value anyway, so it should be safe to remove it. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-02ASoC: Make WM8962 beep a signal generatorMark Brown1-1/+1
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
2011-12-02ASoC: Make WM5100 tone generator widgets signal generatorsMark Brown1-1/+1
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
2011-12-02ASoC: Add signal generator widget typeMark Brown2-0/+11
A signal generator behaves as an input would but is not considered for any of the special behaviour associated with external input pins. This is especially useful when automatically working out not connected widgets. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
2011-12-01ASoC: Convert WM8994 to devm_kzalloc()Mark Brown1-7/+4
Still have a manual free in there for some realloc()ed memory as there's no devm version of that. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-01ASoC: Add platform data for WM8958/WM1811 microphone detection ratesMark Brown2-8/+24
Allow systems to override the default microphone detection rates using platform data in case the settings are not suitable (eg, due to an unusually noisy jack). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-01ASoC: Ensure we reconfigure WM8958 microphone detection on rate changesMark Brown1-4/+2
We don't need to rerun DAPM if the clock source is the same but we do need to adjust the microphone detection rate in case we are moving from an audio to a non-audio rate. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-01ASoC: Implement support for WM1811A jack detectionMark Brown3-19/+264
The WM1811A features an advanced low power accessory detection subsystem which allows the device to be maintained in a very low power state while the system is idle without sacrificing any accessory detection features. Implement software support for this, automatically managing the power configuration of the device depending on the detected accessory. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-01ASoC: Rename WM8994 detecting flag to mic_detectingMark Brown2-7/+7
More specific and avoids confusion with a following change. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-01ASoC: Allow more WM8958/WM1811 button levels with default handlerMark Brown3-8/+38
The WM8958 and WM1811 support detecting a range of buttons. Allow the user to provide platform data enabling more of these levels without having to write a custom detection handler. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-01ASoC: Tune down active mode detection rate for WM8958 mic detectionMark Brown1-2/+2
Saves a little power. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-01ASoC: Don't use control_data to get struct wm8994Mark Brown2-36/+41
This will support refactoring to make use of the regmap API more directly in the core. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-01ASoC: Provide debug log of accessory status on WM8958Mark Brown1-0/+2
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-01ASoC: Rename Speyside WM8962 to TobermoryMark Brown4-40/+40
All the other machine drivers for non-default configurations are named after the relevant audio module so do so for Tobermory also. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-30ASoC: Tegra I2S: Add device tree bindingStephen Warren2-5/+39
Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-30ASoC: Enhance default WM8958 microphone detectionMark Brown2-11/+111
Actively manage the detection rate for microphones with WM8958, providing improved power consumption and maximising the benefit from the hardware debounce. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-29ASoC: Put WM8958 and WM1811 MICBIAS into bypass mode when no audioMark Brown1-1/+39
When we don't have any active audio we can put the microphone biases into bypass mode to save power at the expense of performance. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-29ASoC: Fix __iomem annotation for IDMA registersMark Brown3-3/+3
We always store the register address as __iomem but pass it around as a plain void * which upsets sparse. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-29ASoC: Ensure SYSCLK is enabled for WM8958 accessory detectionMark Brown1-0/+3
Ensure SYSCLK is enabled while running accessory detection on WM8958. It is always required so there is no sense in requiring machine drivers to individually do this. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-29ASoC: SigmaDSP: Add regmap supportLars-Peter Clausen2-13/+67
Add support for loading the SigmaDSP firmware using regmap. This allows us to transparently use SPI or I2C as the transport protocol on devices which support them. For now we keep the old I2C support since we have one user of this which is not straight forward to convert to regmap, due to variable length registers. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-29ASoC: SigmaDSP: Move private structs and functions to C fileLars-Peter Clausen2-39/+36
Move the structs and functions only used by SigmaDSP firmware loader itself from the header to the C file. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-29ASoC: SigmaDSP: Provide diagnostic error messagesLars-Peter Clausen1-3/+10
Provide some error messages when loading the firmware fails, so it is possible to diagnose the reason for the failure. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-29ASoC: Move SigmaDSP firmware loader to ASoCLars-Peter Clausen8-16/+11
It has been pointed out previously, that the firmware subsystem is not the right place for the SigmaDSP firmware loader. Furthermore the SigmaDSP is currently only used in audio products and we are aiming for better integration into the ASoC framework in the future, with support for ALSA controls for firmware parameters and support dynamic power management as well. So the natural choice for the SigmaDSP firmware loader is the ASoC subsystem. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-29Merge branch 'for-3.2' into for-3.3Mark Brown2-32/+62
2011-11-29firmware: Sigma: Fix endianess issuesLars-Peter Clausen2-5/+5
Currently the SigmaDSP firmware loader only works correctly on little-endian systems. Fix this by using the proper endianess conversion functions. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
2011-11-29firmware: Sigma: Skip header during CRC generationLars-Peter Clausen1-1/+2
The firmware header is not part of the CRC, so skip it. Otherwise the firmware will be rejected due to non-matching CRCs. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
2011-11-29firmware: Sigma: Prevent out of bounds memory accessLars-Peter Clausen2-26/+55
The SigmaDSP firmware loader currently does not perform enough boundary size checks when processing the firmware. As a result it is possible that a malformed firmware can cause an out of bounds memory access. This patch adds checks which ensure that both the action header and the payload are completely inside the firmware data boundaries before processing them. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
2011-11-29ASoC: cs42l73: Fix clear wrong bits in cs42l73_set_dai_fmtAxel Lin1-1/+2
What we want is to clear BIT[5:4](PCM_MODE_MASK) and BIT[3](PCM_BIT_ORDER) bits, but current code clears BIT[2:0]. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Brian Austin <brian.austin@cirrus.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-29ASoC: Convert smdk_wm8994pcm to use module_platform_driver()Axel Lin1-13/+1
Use the module_platform_driver() macro which makes the code smaller and a bit simpler. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-29Merge branch 'for-3.2' into for-3.3Mark Brown1-0/+2