summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'topic/asoc' of ↵Mark Brown2010-12-132-28/+2
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 into for-2.6.38
| * ASoC: Fix merge errors with flush_scheduled_work() removalTakashi Iwai2010-12-132-2/+2
| | | | | | | | | | | | | | | | delayed_work was moved to dapm in the commit ce6120cca2589ede530200c7cfe11ac9f144333c ASoC: Decouple DAPM from CODECs Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * Merge branch 'topic/workq-update' into topic/asocTakashi Iwai2010-12-132-28/+2
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: sound/soc/codecs/wm8350.c sound/soc/codecs/wm8753.c sound/soc/sh/fsi.c sound/soc/soc-core.c
| | * sound: don't use flush_scheduled_work()Tejun Heo2010-12-132-28/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | flush_scheduled_work() is deprecated and scheduled to be removed. * cancel[_delayed]_work() + flush_scheduled_work() -> cancel[_delayed]_work_sync(). * wm8350, wm8753 and soc-core use custom code to cancel a delayed work, execute it immediately if it was pending and wait for its completion. This is equivalent to flush_delayed_work_sync(). Use it instead. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ASoC: Fix widgets for WM8994/58 AIF2 source controlMark Brown2010-12-131-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | The compiler really ought to have been warning about unreferenced variables... Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | | ASoC: Automatically manage WM8903 deemphasis rateMark Brown2010-12-111-8/+74
| | | | | | | | | | | | | | | | | | | | | | | | Provide the user with a boolean control then automatically select the deemphasis filter most closely matching the sample rate. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | | ASoC: Remove open coded symmetry implementation from WM8903Mark Brown2010-12-111-78/+1
| | | | | | | | | | | | | | | | | | | | | | | | We're already flagged as using symmetric rates so we don't need to have a custom implementation. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | | ASoC: Implement WM8903 oversampling rate controlsMark Brown2010-12-111-0/+12
| | | | | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | | ASoC: Implement WM8903 high pass filter supportMark Brown2010-12-111-0/+9
| | | | | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | | ASoC: Implement WM8994/58 DAC and ADC oversampling controlMark Brown2010-12-101-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | The oversampling rate of the DAC and ADC can be controlled to optimise for either low power consumption or maximum performance. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | | ASoC: Optimise WM9081 FLL performanceMario Becroft2010-12-101-0/+4
|/ / | | | | | | | | | | | | | | | | Tune the FLL gain for optimal performance according to evaluation results. Signed-off-by: Mario Becroft <mb@gem.win.co.nz> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | Merge branch 'for-2.6.37' into for-2.6.38Mark Brown2010-12-094-4/+7
|\ \
| * | ASoC: WM8580: Fix R8 initial valueSeungwhan Youn2010-12-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Acc to WM8580 manual, the default value for R8 is 0x10, not 0x1c. Signed-off-by: Seungwhan Youn <sw.youn@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
| * | ASoC: fix deemphasis control in wm8904/55/60 codecsDmitry Artamonow2010-12-093-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Deemphasis control's .get callback should update control's value instead of returning it - return value of callback function is used for indicating error or success of operation. Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
* | | ASoC: Add ADC high pass filter support to WM8994Uk Kim2010-12-081-0/+22
| | | | | | | | | | | | | | | | | | Signed-off-by: Uk Kim <w0806.kim@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | ASoC: Support WM8994 mono AIF configurationsMark Brown2010-12-081-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | The WM8994 supports mono signals - enable this in the driver. With DSP mode an automatic data channel selector is available, activate this when in mono mode. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | | Merge branch 'for-2.6.37' into for-2.6.38Mark Brown2010-12-082-5/+5
|\| | | | | | | | | | | | | | | | | | | | Conflicts: sound/soc/soc-core.c Axel's fix on two different branches.
| * | ASoC: Correct WM8962 interrupt mask register readMark Brown2010-12-071-1/+1
| | | | | | | | | | | | | | | | | | Fix mismerge from the out of tree BSP where this support was developed. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: WM8580: Debug BCLK and sample sizeJassi Brar2010-12-071-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case of SNDRV_PCM_FORMAT_S32_LE, we need to set WM8580_AIF_LENGTH_32, rather than WM8580_AIF_LENGTH_24. Also, the BCLK has to be 64fs, for sample size of 20, 24 and 32 bits. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | Merge branch 'for-2.6.37' into for-2.6.38Mark Brown2010-12-061-1/+1
|\| | | | | | | | | | | | | | Conflicts: include/linux/mfd/wm8994/pdata.h
| * | ASoC: Fix swap of left and right channels for WM8993/4 speaker boost gainUk Kim2010-12-061-1/+1
| |/ | | | | | | | | | | | | | | | | SPKOUTL_BOOST start from third bit, SPKOUTLR_BOOST start from 0 bit. Signed-off-by: Uk Kim <w0806.kim@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
* | ASoC: When disabling WM8994 FLL force a source selectionMark Brown2010-12-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we disable the WM8994 FLL code path sharing means that we end up writing out a configuration. Currently this is the currently active input and output frequency (which causes snd_soc_update_bits() to suppress actual writes both immediately and in the common case where we reenable the same configuration later) but we allow machine drivers to pass through a source of zero. Since the register values written are one less than the source constants this causes corruption of other bitfields in the register. Fix this by using the most recently configured FLL source when none is provided. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Cc: stable@kernel.org
* | ASoC: WM8580: Debug interface indexJassi Brar2010-12-031-4/+4
| | | | | | | | | | | | | | | | We want the index of DAI's driver here. Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Fix inconsistent meaning of default case while checking alc5623->idAxel Lin2010-12-031-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In alc5623_i2c_probe(), the default case for checking alc5623->id behaves the same as case 0x23. However, In alc5623_probe() the default case for checking alc5623->id becomes to be the same as case 0x21. This makes the meaning of default case inconsistent. Since we have checked codec id in alc5623_i2c_probe() by comparing vid2 with id->driver_data, it is not possible to run into the default case now. In case we may add more supported devices to alc5623_i2c_table in the future, this patch changes the default case return -EINVAL to let people know that they should not run into this case. They should also add a new case accordingly for the new id. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Arnaud Patard <arnaud.patard@rtp-net.org> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Tune performance of WM8958 revision AMark Brown2010-12-021-9/+27
| | | | | | | | | | | | | | | | Update some of the default configuration for the device to improve the performance. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Automatically manage WM8731 deemphasisMark Brown2010-12-021-5/+71
| | | | | | | | | | | | | | | | The deemphasis filter should be selected based on sample rate for optimal performance. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Split WM8731 enumeration array into individual enumsMark Brown2010-12-021-6/+9
| | | | | | | | | | | | | | This is much more maintainable than the array. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Provide WM8731 microphone boost TLV informationMark Brown2010-12-021-1/+2
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: ak4535: Improve readability for setting muteAxel Lin2010-12-011-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | The mute/unmute is controled by SMUTE (Soft Mute Control bit): 0: Normal Operation (Default) 1: DAC outputs soft-muted I think this change improves readability. 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>
* | ASoC: Allow user-specified WM8958 multiband compressor configurationsMark Brown2010-12-011-2/+82
| | | | | | | | | | | | | | | | | | | | The paramters of the WM8958 multiband compressor can be tuned by the user for their system using a graphical configuration tool on the host. Allow the user to specify a set of such paramters in platform data and select between them at runtime. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Correct event flags for WM8958 AIF DACsMark Brown2010-12-011-4/+4
| | | | | | | | | | | | | | | | We need a post notification as we need to shut down the MBC after the data stops flowing rather than before. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | Merge branch 'for-2.6.37' into for-2.6.38Mark Brown2010-12-011-1/+1
|\|
| * ASoC: WM8731: Fix incorrect mask for bypass path disableDimitris Papastamos2010-12-011-1/+1
| | | | | | | | | | | | | | | | | | According to the datasheet the bypass path enable/disable is bit 3 therefore we need 0x8 and not 0x4. 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>
* | ASoC: Simplify pm860x_probe error handlingAxel Lin2010-11-301-7/+5
| | | | | | | | | | | | | | | | Simplify pm860x_probe error handling and return actual error code we got. 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>
* | ASoC: Implement runtime PM for WM8994/58Mark Brown2010-11-271-0/+10
| | | | | | | | | | | | | | | | | | This allows us to communicate our power management state back to the parent device, allowing it to do a full power down when the device is idle. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Enable rbtree compression for WM8994/58 register cacheMark Brown2010-11-271-0/+1
| | | | | | | | | | | | | | | | | | The WM8994 and WM8958 register map is relatively sparse so benefits from compression. The rbtree compression gives better results than LZO for both memory and CPU consumption on a map as sparse as this. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Convert WM8994 to use soc-cache.c cache functionsMark Brown2010-11-273-48/+1620
| | | | | | | | | | | | | | | | | | | | | | In the process we convert the driver to read registers one at a time when initialising the cache. This has the effect of working around limitations in the sizes of I2C transactions which can be done by some CPUs. Due to the sparseness of the register map the overhead from this should be minimual unless I2C transactions are very expensive to start. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Add WM8958 microphone detection supportMark Brown2010-11-272-0/+154
| | | | | | | | | | | | | | | | | | | | | | | | The WM8958 contains an advanced accessory detection feature which allows detection of up to seven different impedence levels on the microphone bias output, including detection of video outputs. Since some of the more involved accessory interfaces may involve noticable interactions with external components a simple detection scheme is provided by default with the option to provide custom handling of accessory detect. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Add WM8958 Multi-band compressor supportMark Brown2010-11-271-12/+186
| | | | | | | | | | | | | | | | | | | | | | The WM8958 features a multi-band compressor which can be enabled on any of the AIF inputs. The MBC allows different gains to be applied to differnt audio bands, providing an improvement in perceived loudness of the signal by avoiding overdriving the output transducers. This patch enables support for the MBC. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Implement support for enhanced AIF3 on WM8958Mark Brown2010-11-271-9/+157
| | | | | | | | | | | | | | | | Additional audio routing options are available on the WM8958 audio interface 3. Add support for these. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Initial WM8958 audio configurationMark Brown2010-11-271-34/+76
| | | | | | | | | | | | | | | | | | | | The WM8958 is a WM8994 derivative. This patch merely ensures that some revision specific configuration for WM8994 is not enabled on WM8994, additional patches will add support for the new features introduced on the WM8958. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Use DC servo startup mode when not doing DCS correctionMark Brown2010-11-271-6/+14
| | | | | | | | | | | | | | | | | | Devices which do not have a DCS correction applied can use the explicit DC servo startup mode for optimal startup performance. This most immediately affects the WM8958. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | ASoC: Remove redundant hw_write initialisation in WM8737Mark Brown2010-11-261-1/+0
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | Merge branch 'for-2.6.37' into for-2.6.38Mark Brown2010-11-251-3/+3
|\|
| * ASoC: tlv320aic3x - fix variable may be used uninitialized warningAxel Lin2010-11-251-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If aic3x_read failed , val is used uninitialized. Fix it by initializing val to 0. This patch fixes below compile warning: sound/soc/codecs/tlv320aic3x.c: In function 'aic3x_get_gpio': sound/soc/codecs/tlv320aic3x.c:1183: warning: 'val' may be used uninitialized in this function sound/soc/codecs/tlv320aic3x.c: In function 'aic3x_headset_detected': sound/soc/codecs/tlv320aic3x.c:1211: warning: 'val' may be used uninitialized in this function sound/soc/codecs/tlv320aic3x.c: In function 'aic3x_button_pressed': sound/soc/codecs/tlv320aic3x.c:1219: warning: 'val' may be used uninitialized in this function 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>
* | ASoC: Add WM8737 ALC supportMark Brown2010-11-251-0/+42
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
* | Merge branch 'for-2.6.37' into for-2.6.38Mark Brown2010-11-241-2/+2
|\|
| * ASoC: wm8961 - clear WM8961_MCLKDIV bit for freq <= 16500000Axel Lin2010-11-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | MCLKDIV bit of Register 04h Clocking1: 0 : Divide by 1 1 : Divide by 2 Thus in the case of freq <= 16500000, we should clear MCLKDIV bit. 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> Cc: stable@kernel.org
| * ASoC: wm8961 - clear WM8961_DACSLOPE bit for normal modeAxel Lin2010-11-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | DACSLOPE bit of Register 06h ADC and DAC Control 2: 0: Normal mode 1: Sloping stop-band mode Thus in the case of normal mode, we should clear DACSLOPE bit. 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> Cc: stable@kernel.org
* | ASoC: Add initial WM8737 driverMark Brown2010-11-244-0/+1041
| | | | | | | | | | | | | | | | The WM8737 is a low power, flexible stereo ADC designed for portable applications. This driver supports most of the functionality of the WM8737, though some features such as the ALC are not yet implemented. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>