summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-10-17ASoC: wm8580: Use snd_soc_update_bits for read-modify-writeAxel Lin
Use snd_soc_update_bits for read-modify-write register access instead of open-coding it using snd_soc_read and snd_soc_write Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-17ASoC: wm8900: Use snd_soc_update_bits for read-modify-writeAxel Lin
Use snd_soc_update_bits for read-modify-write register access instead of open-coding it using snd_soc_read and snd_soc_write Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-17ASoC: wm8900: Fix the mask definesAxel Lin
Now we have done bitwise NOT against the mask bits for the defines of WM8900_REG_CLOCKING1_BCLK_MASK, WM8900_REG_CLOCKING1_OPCLK_MASK and WM8900_LRC_MASK. But we don't have the bitwise NOT against the mask bits for the defines of WM8900_REG_CLOCKING2_DAC_CLKDIV, WM8900_REG_CLOCKING2_ADC_CLKDIV and WM8900_REG_DACCTRL_AIF_LRCLKRATE. It is error prone to mix the inconsistent meaning for different mask defines. So lets make the defines for each mask to be corresponding to the bits defines in datasheet. Don't add extra "bitwise NOT" to the defines. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-17ASoC: wm8900: Fix wrong mask for setting DAC_CLKDIV/ADC_CLKDIV/LRCLK_MODEAxel Lin
After checking the datasheet, I think what we want to do here is to clear the WM8900_REG_CLOCKING2_DAC_CLKDIV/WM8900_REG_CLOCKING2_ADC_CLKDIV/ WM8900_REG_DACCTRL_AIF_LRCLKRATE bits and then OR with div value. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-17ASoC: wm8741: Use snd_soc_cache_sync to sync reg_cache with the hardwareAxel Lin
Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-17ASoC: wm8741: Fix setting interface format for DSP modesAxel Lin
According to the datasheet: Format Control (05h) BITS[3:2] FMT[1:0] Audio data format selection 00 = right justified mode 01 = left justified mode 10 = I2S mode 11 = DSP mode BIT[4] LRP Polarity selec for LRCLK/DSP mode select 0 = normal LRCLK poalrity/DSP mode A 1 = inverted LRCLK poarity/DSP mode B For SND_SOC_DAIFMT_DSP_A, we should set 0x000C instead of 0x0003. For SND_SOC_DAIFMT_DSP_B, we should set 0x001C instead of 0x0013. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
2011-10-17MANITAINERS: Add Cragganmore reference platform to Wolfson supportMark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-17ASoC: da7210: Add support for High pass and Voice filters for ADC and DACAshish Chavan
This patch add controls for setting cut-off for high pass and voice filters of ADC and DAC. There are also switches to enable/disable these filters. Also removed hard coded, fixed values of these parameters used by previous version of driver. Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com> Signed-off-by: David Dajun Chen <dchen@diasemi.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-17ASoC: da7210: Add support for ADC & DAC equalizersAshish Chavan
This patch adds support for ADC and DAC five band equalizers available on DA7210 codec. Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com> Signed-off-by: David Dajun Chen <dchen@diasemi.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-17ASoC: Tegra: sparse cleanupOlof Johansson
Fixes the following sparse warnings: sound/soc/tegra/tegra_das.c:215:8: warning: Using plain integer as NULL pointer sound/soc/tegra/tegra_das.c:237:8: warning: Using plain integer as NULL pointer sound/soc/tegra/tegra_pcm.c:370:32: warning: symbol 'tegra_pcm_platform' was not declared. Should it be static? Signed-off-by: Olof Johansson <olof@lixom.net> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-17MAINTAINERS: Add maintainer for Analog Devices sound CODECsLars-Peter Clausen
The MAINTAINERS entry for the ADI sound CODEC drivers currently only lists the ADI devices-drivers-devel mailing-list. Add myself as additional contact, since I'm the person at ADI who is currently doing most of the work on these drivers. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-17ALSA: hda/realtek - Cache COEF 0 valueTakashi Iwai
The COEF #0 value represents a sort of device id, so it's supposedly constant while operation. Better to use the cached value instead of reading it at each time from the performance POV. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17ALSA: hda/realtek - Clean up codec renamesTakashi Iwai
Use a static table for detecting the codec renames. Also clean up the error paths in each patch_*() function. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17ALSA: hda/realtek - Use alc_codec_rename()Takashi Iwai
Replaced with alc_codec_rename() in all possible places. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17ALSA: hda - ALC888S-VC remark to ALC886Kailang Yang
Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17ALSA: hda/realtek - Check the error from alc_codec_rename()Takashi Iwai
Should be a rare case, but... Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-14ASoC: twl6040: Request core to inline the DAPM sequencePeter Ujfalusi
We need to have as less time between McPDM shutdown, and power down of the DAC on the twl6040 codec as possible. Request core to ignore the pmdown_time for the playback stream. Backround: with the McPDM protocol we are sendning not only the pure audio stream, but OMAP McPDM also transmits additional information (for example offset cancellation). If McPDM is stopped prior to the DAC this information will be not sent to the codec, which can result noise rendered by the twl6040 codec. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: core: Add flag to ignore pmdown_time at pcm_closePeter Ujfalusi
With this flag codec drivers can indicate that it is desired to ignore the pmdown_time for DAPM shutdown sequence when playback stream is stopped. The DAPM sequence will be executed without delay in this case. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: da7210: bugfix for head phone volume controlAshish Chavan
This patch takes care of reserved bits of headphone volume register by using correct volume range. Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com> Signed-off-by: David Dajun Chen <dchen@diasemi.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: ad193x: Fix define of AD193X_PLL_INPUT_MASKAxel Lin
Current code defines AD193X_PLL_INPUT_MASK as (~0x6) which is quite different from other MASK defines. To make it consistent with other mask defines, define AD193X_PLL_INPUT_MASK as 0x6 and change the code accordingly. I think this change improves the readability. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: wm8990: Use snd_soc_update_bits for read-modify-writeAxel Lin
Use snd_soc_update_bits for read-modify-write register access instead of open-coding it using snd_soc_read and snd_soc_write This patch also includes a comment fix in wm8990_set_dai_pll(), if freq_in and freq_out are 0, what we do is to clear WM8990_PLL_ENA bit. Thus the comment should be "Turn off PLL". Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: wm8990: Fix wrong bit setting for WM8990_POWER_MANAGEMENT_2Axel Lin
If (fakepower & ((1 << WM8990_INMIXR_PWR_BIT) | (1 << WM8990_AINRMUX_PWR_BIT))) is false, we should clear WM8990_AINR_ENA bits instead of WM8990_AINL_ENA. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: wm8400: Fix wrong bit setting for WM8400_POWER_MANAGEMENT_2Axel Lin
If (fakepower & ((1 << WM8400_INMIXR_PWR) | (1 << WM8400_AINRMUX_PWR))) is false, we should clear WM8400_AINR_ENA bits instead of WM8400_AINL_ENA. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: wm8991: Use snd_soc_update_bits for read-modify-writeAxel Lin
Use snd_soc_update_bits for read-modify-write register access instead of open-coding it using snd_soc_read and snd_soc_write Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: wm8991: Fix wrong bit setting for WM8991_POWER_MANAGEMENT_2Axel Lin
If (fakepower & ((1 << WM8991_INMIXR_PWR_BIT)|(1 << WM8991_AINRMUX_PWR_BIT)))) is false, we should clear WM8991_AINR_ENA bits instead of WM8991_AINL_ENA. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: wm8961: Convert codec->hw_read to snd_soc_readAxel Lin
codec->hw_read is broken now, let's covert to snd_soc_read. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: tlv320aic3x: Convert codec->hw_read to snd_soc_readAxel Lin
codec->hw_read is broken now, let's covert to snd_soc_read. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: alc5623: Convert codec->hw_read to snd_soc_readAxel Lin
codec->hw_read is broken now, let's covert to snd_soc_read. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: tlv320aic23: convert to soc-cacheAxel Lin
Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-14ASoC: Convert DA7210 to table based DAPM initMark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-13ASoC: tlv320aic32x4: Use snd_soc_update_bits for read-modify-writeAxel Lin
Use snd_soc_update_bits for read-modify-write register access instead of open-coding it using snd_soc_read and snd_soc_write. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-13ASoC: twl6040: Rename the Earphone Driver event handlerPeter Ujfalusi
Since the event handler is only used by the Earphone Driver, it is better to rename it from twl6040_power_mode_event to twl6040_ep_drv_event. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-13ASoC: twl6040: Change event ordering for Earphone driverPeter Ujfalusi
It is better to switch HS Power Mode (if it was in low power mode) before we enable the Earpiece driver. The switched off EP driver can filter out noise coming from the Low Power to High Performance transition on the HSL DAC. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-13ASoC: twl6040: Remove PLL usage restrictionsPeter Ujfalusi
There is no limitation dictated by outputs or inputs regarding to the selected PLL (LP/HP). Remove the checks for this, and allow all path with any PLL configuration. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-13ASoC: twl6040: Remove Capture restriction for 17.64MHz sysclkPeter Ujfalusi
Capture is supported in all PLL configuration. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-13ASoC: Update WM5100 accessory detection for revision AMark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-13ASoC: ak4535: fixup cache register tableAxel Lin
ak4535_reg should be 8bit, but cache table is defined as 16bit. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
2011-10-13ASoC: ak4642: fixup cache register tableKuninori Morimoto
ak4642 register was 8bit, but cache table was defined as 16bit. ak4642 doesn't work correctry without this patch. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
2011-10-13ASoC: sta32x: Write the register default value to cache for reserved registersAxel Lin
Chip documentation explicitly requires that the reset values of reserved register bits are left untouched. codec->hw_read is broken now. Here we use below trick to avoid writing to reserved registers while resume. Write the register default value to cache for reserved registers, so the write to the these registers are suppressed by the cache restore code when it skips writes of default registers. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-13ASoC: sta32x: Set reg_cache_default to sta32x_regsAxel Lin
Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-13ASoC: pxa: Remove redundant snd_soc_dapm_sync() calls from machine driversAxel Lin
The core will sync DAPM as part of the card initialization, there is no need for machine drivers to do so during their setup. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-13ALSA: usb-audio - Fix possible access over audio_feature_info[] arrayTakashi Iwai
The audio_feature_info[] array should contain all entries for UAC2_FU_*, but currently a few last entries are missing. Even though, the driver tries to probe these entries in parse_audio_feature_unit() and may access the range over the array. This patch fixes the bug by limiting the loop size properly using ARRAY_SIZE() instead of a hard-coded magic number. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-13ALSA: snd-usb-caiaq: Add support for MaschineWilliam Light
This adds partial support for the Maschine controller by Native Instruments. Supported now are the 1x1 MIDI interface and the 41 buttons, 11 endless rotary encoders, and 16 pressure-sensitive drum pads. Still to work on are the dimmable LEDs and the two monochrome screens. Signed-off-by: William Light <wrl@illest.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-13ALSA: snd-usb-caiaq: Fix NULL dereference in input.cWilliam Light
There was a case where a newly-registered input device could be opened before a necessary variable in the device structure was set. When code tried to use the variable in the URB reply callback, it would cause an Oops. This fix sets the aforementioned variable before calling input_register_device. Signed-off-by: William Light <wrl@illest.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-13ALSA: HDA: Fixup Realtek headphone pin initializationDavid Henningsson
This typo caused headphone pins not to be initialized correctly. BugLink: https://bugs.launchpad.net/bugs/871582 Reported-by: Effenberg Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-13ALSA: hda - Remove bad code for IDT 92HD83 family patchCharles Chin
The purpose of this patch is to remove a section of "bad" code that assigns the last DAC to ports E or F in order to support notebooks with docking in earlier days, around ALSA 1.0.19 - 21. This is not necessary now and actually breaks some configurations that use these ports as other devices. This have been tested on several different configurations to make sure that it is working for different combinations. Signed-off-by: Charles Chin <Charles.Chin@idt.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-12ASoC: Make SND_SOC_SAARB and SND_SOC_TAVOREVB3 select MFD_88PM860XAxel Lin
In saarb_pm860x_init() and evb3_pm860x_init(), we call pm860x_hs_jack_detect() and pm860x_mic_jack_detect() which in turn calls pm860x_set_bits(). Thus make SND_SOC_SAARB and SND_SOC_TAVOREVB3 select MFD_88PM860X. This patch fixes below build error if CONFIG_MFD_88PM860X is not configured. LD .tmp_vmlinux1 sound/built-in.o: In function `pm860x_write_reg_cache': last.c:(.text+0x29e9c): undefined reference to `pm860x_reg_write' sound/built-in.o: In function `pm860x_set_bias_level': last.c:(.text+0x29ecc): undefined reference to `pm860x_set_bits' last.c:(.text+0x29f00): undefined reference to `pm860x_reg_write' last.c:(.text+0x29f18): undefined reference to `pm860x_reg_write' sound/built-in.o: In function `pm860x_read_reg_cache': last.c:(.text+0x29f40): undefined reference to `pm860x_reg_read' sound/built-in.o: In function `pm860x_probe': last.c:(.text+0x2a034): undefined reference to `pm860x_bulk_read' sound/built-in.o: In function `pm860x_codec_handler': last.c:(.text+0x2a344): undefined reference to `pm860x_reg_read' last.c:(.text+0x2a354): undefined reference to `pm860x_reg_read' sound/built-in.o: In function `pm860x_mic_jack_detect': last.c:(.text+0x2a450): undefined reference to `pm860x_set_bits' sound/built-in.o: In function `pm860x_hs_jack_detect': last.c:(.text+0x2a4d0): undefined reference to `pm860x_set_bits' last.c:(.text+0x2a4f8): undefined reference to `pm860x_set_bits' last.c:(.text+0x2a510): undefined reference to `pm860x_set_bits' make: *** [.tmp_vmlinux1] Error 1 Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-12ASoC: da7210: Add support for other DAI word lengths, format and modeAshish Chavan
This patchs adds support for following, (1) DAI 20 and 32 bit word sizes (2) DAI left and right justified formats (3) DAI slave mode Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com> Signed-off-by: David Dajun Chen <dchen@diasemi.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-12ASoC: twl6040: Workaround for headset DC offset caused pop noisePeter Ujfalusi
Both Headset DAC need to be turned on/off at the same time before any of the output drivers are enabled (HS Left/Right, Earpiece). Move the HS DAC enable code to sequenced DAPM_SUPPLY, and attach it to the DACs. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-10-12ASoC: twl6040: Support for vibra output pathsPeter Ujfalusi
twl6040 have two vibra output drivers. They can be operated with audio stream coming through the PDM interface (fifth channel). The vibra outputs can be controlled via the input/FF driver as well. Selection between the two mode is implemented within the codec driver, the input/FF driver can only operate if the routing is set to "Input FF". Changing from "Input FF" to "Audio PDM" mode is protected as well: The switchin can only be done, if there is no running effect from the input/FF. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>