aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-07-07Merge branch 'for-3.0' into for-3.1Mark Brown1-1/+1
2011-07-07ASoC: pxa2xx-pcm: remove unused variable 'dai'Axel Lin1-1/+0
Remove unused variable 'dai' to eliminate below warning. CC sound/soc/pxa/pxa2xx-pcm.o sound/soc/pxa/pxa2xx-pcm.c: In function 'pxa2xx_soc_pcm_new': sound/soc/pxa/pxa2xx-pcm.c:91: warning: unused variable 'dai' Signed-off-by: Axel Lin <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-07ASoC: ak4642: fixup snd_soc_update_bits mask for PW_MGMT2Kuninori Morimoto1-1/+1
mask didn't cover update-data Signed-off-by: Kuninori Morimoto <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2011-07-07ALSA: hda - Split quirk codes from patch_realtek.cTakashi Iwai13-13921/+14124
Put the all static quirk codes out of patch_realtek.c, split into the file for each codec model. For controlling the build of quirk codes, a new Kconfig, CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS is introduced. By setting this off, all quirk codes won't be built, thus you can save lots of memory. The codes in patch_realtek.c are also shuffled and more comments are given, but the contents aren't changed. This is just a refactoring. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Use common paser for digital I/O for ALC260Takashi Iwai1-2/+2
Avoid open-codes. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - More flexible dynamic-ADC switching for Realtek codecsTakashi Iwai1-486/+429
This patch changes the auto-parser and the auto-mic handling codes to allow more flexible dynamic ADC-switching with Realtek codecs. In the new code, the following strategy is taken: - When a cap-src can't handle all input-sources, either skip it, or switch to the ADC-switching mode. In ADC-switching mode, like the former dual-ADC mode for ALC275, it changes ADC on the fly according to the current input source. - When auto-mic is possible, always assign imux. If the mic pins are set statically via a quirk, rebuild imux according to the pins. In the auto-mic mode, the driver always changes the imux (although the imux isn't exposed as a mixer element). Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Fix warning with ALC882 digital-out detectionTakashi Iwai1-1/+3
The digital out pin on ALC882 may have multiple connections. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Clean-up PCM assignments in patch_realtek.cTakashi Iwai1-171/+58
Instead of assigning each default hda_pcm_stream pointers, do NULL-checks and assign default values in alc_build_pcms(). Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Unify alc*_auto_init_input_src() in patch_realtek.cTakashi Iwai1-45/+17
The only different implmentation was alc880_auto_init_input_src(), and now it covers this variant, and we can use the single function for all codecs. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Parse ADCs and CAPSRCs dynamically for Realtek auto-parserTakashi Iwai1-192/+131
Now with the new code for looking for ADCs and MUXs, we can replace the whole ADC assignment with the parsed results. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Unify alc_auto_init_analog_input() callsTakashi Iwai1-23/+11
All alc*_auto_init_analog_input() calls are identical, so let's use the same function more clearly without aliases. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Parse ADCs in alc_auto_create_input_ctls()Takashi Iwai1-74/+67
Parse ADCs and cap-srcs in alc_auto_create_input_ctls() by itself instead of passing explicitly from the caller. By this change, all alc*_auto_create_input_ctls() can be unified to the same calls. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Code consolidation for ALC88x and ALC662 auto-parsersTakashi Iwai1-353/+75
Use the same common code for auto-parsing the output paths and their initializations, based on the existing ALC662 code, which is smarter than the old ALC880/2 code. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Create bind-mutes appropriately for ALC662 auto-parserTakashi Iwai1-24/+34
When multiple inputs are present on the mixer widget (typically a DAC and a loopback), mute/unmute both inputs with the corresponding mixer element. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Initialize DACs in ALC662 auto-parser modeTakashi Iwai1-12/+24
The initialization of DACs was missing in ALC662 parser code. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07ALSA: hda - Parse HP and speaker DACs even for multi connections for ALC662Takashi Iwai1-0/+7
In alc662_auto_fill_dac_nids(), the HP and speaker DACs aren't parsed when the corresponding pins aren't fixed with single DACs. Now check these DACs even for non-fixed pins. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-07Merge branch 'fix/hda' into topic/hdaTakashi Iwai8-21/+41
2011-07-07ALSA: hda - Change all ADCs for dual-adc switching mode for RealtekTakashi Iwai1-10/+23
When the dual-adc switching mode is active in Realtek auto-parser, we need to couple all ADCs as a single capture-volume. Currently, the volume control changes only the first ADC, thus others may remain silent. This patch fixes the problem. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-06ALSA: hda - Add Realtek ALC269VC codec supportKailang Yang1-14/+20
Add the support of ALC269VC codec. Also delete the unnecessary codec_variant type enum list: now only three variants (ALC269VA ALC269VB ALC269VC) are needed. In addition, added some aliases: - Add ALC269VB alias name ALC277 - Add ALC269VC alias name ALC259 ALC281X - Add ALC269VC for Lenovo device 0x21f3 name ALC3202 Signed-off-by: Kailang Yang <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-07-05ASoC: Tegra: Implement SPDIF CPU DAIStephen Warren4-0/+855
This is a minimal driver for the Tegra SPDIF controller. In hardware, the SPDIF output signal is always routed to any active HDMI display controllers, and may also be routed to external pins on Tegra using the pinmux. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-05ASoC: core - Add platform IO tracingLiam Girdwood2-0/+47
Trace platform IO just like CODEC IO. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-05ASoC: core - Add convenience register for platform kcontrol and DAPMLiam Girdwood2-0/+19
Allow platform probe to register platform kcontrols and DAPM just like the CODEC probe(). Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-05ASoC: core - Add platform widget IOLiam Girdwood4-2/+19
Allow platform driver widgets to perform any IO required for DAPM. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-05ASoC: core - Add API call to register platform kcontrols.Liam Girdwood2-0/+32
In preparation for Dynamic PCM (AKA DSP) support. Allow platform drivers to register kcontrols. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-05ASoC: Manage WM8731 ACTIVE bit as a supply widgetMark Brown1-26/+3
Now we have supply widgets there's no need to open code the handling of the ACTIVE bit. Signed-off-by: Mark Brown <[email protected]> Tested-by: Nicolas Ferre <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-07-05ASoC: Manage WM8731 ACTIVE bit as a supply widgetMark Brown1-26/+3
Now we have supply widgets there's no need to open code the handling of the ACTIVE bit. Signed-off-by: Mark Brown <[email protected]> Tested-by: Nicolas Ferre <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-07-05ASoC: Don't set invalid name string to snd_card->driver fieldTakashi Iwai1-2/+3
The snd_card->driver field contains a driver name string, and in general it shouldn't contain space or special letters. The commit 2b39535b9e54888649923beaab443af212b6c0fd changed the string copy from card->name, but the long name string may contain such letters, thus it may still lead to a segfault. A temporary fix is not to copy the long name string but just keep it empty as the earlier version did. Reported-by: Kuninori Morimoto <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-07-05Merge branch 'for-3.1' of ↵Takashi Iwai21-136/+1622
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into topic/asoc
2011-07-05Merge branch 'for-3.0' of ↵Takashi Iwai3-2/+19
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into fix/asoc
2011-07-05Merge branch 'for-3.1' of ↵Takashi Iwai7-15/+361
git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc-2.6 into topic/asoc
2011-07-05Merge branch 'for-3.0' of ↵Takashi Iwai2-4/+19
git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc-2.6 into fix/asoc
2011-07-04ASoC: core - Add platform read and write.Liam Girdwood2-0/+38
In preparation for ASoC Dynamic PCM (AKA DSP) support. Allow platform driver to perform IO. Intended for platform DAPM. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-04ASoC: tlv320aic3x: Add correct hw registers to Line1 cross connect muxesJarkko Nikula1-13/+21
Commit af46800 ("ASoC: Implement mux control sharing") revealed that "Left Line1[L | R] Mux" and "Right Line1[L | R] Mux" widgets were pointing to the same kcontrols and codec registers and thus soc-core falsely detected them as shared controls. This is actually wrong since there are separate registers in hardware that configure Line1L to RADC and Line1R to LADC cross connects so these muxes should not be shared. Signed-off-by: Jarkko Nikula <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Liam Girdwood <[email protected]>
2011-07-04Merge branch 'for-3.0' into for-3.1Mark Brown2-0/+8
2011-07-04ASoC: Ensure we delay long enough for WM8994 FLL to lock when startingMark Brown1-0/+2
This delay is very conservative. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]> Cc: [email protected]
2011-07-04ASoC: Tegra: I2S: s/clk_get_sys/clk_get/Stephen Warren1-3/+1
The clock needed by the I2S driver is associated with the I2S device name in the standard fashion. Hence, use clk_get(dev) instead of clk_get_sys(clk_name). Signed-off-by: Stephen Warren <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-04ASoC: Tegra: I2S: Ensure clock is enabled when writing regsStephen Warren1-0/+6
The I2S controller needs a clock to respond to register writes. Without this, register writes will at worst hang the CPU. In practice, I've only observed writes being dropped. Luckily, the dropped register writes historically had no effect: TEGRA_I2S_TIMING: The value we wrote was the reset default. TEGRA_I2S_FIFO_SCR: The default was for the FIFOs to request more data when one slot was empty. The requested value was for the FIFOs to request when four slots were empty. The DMA controller in the mainline kernel is configured to burst a single entry at a time into the FIFO, hence there was no issue. The only negative effect was on bus efficiency losses due to an increased number of arbitration attempts. However, in various non-upstream changes, the DMA controller now bursts four entries at a time into the FIFO. If there is only space for one entry, the data is simply dropped. In practice, this resulted in 3/4 of samples being dropped, and playback at 4x the expected rate and pitch. By fixing the clocking issue, this is solved. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-04ALSA: hda - Don't add aa-mix for VIA surroundsTakashi Iwai1-7/+16
Since we now route the front DAC via aa-mix widget, adding the aa-mix to surrounds will result in a mix-up of both front and surround PCM signals. For avoiding this, the aa-mix routes have to be disabled for surround paths. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-04ALSA: hda - Create HP-vol control properly for VIA codecsTakashi Iwai1-3/+7
When the individual DAC is available for the headphone output, the driver should create the DAC for its volume control. Signed-off-by: Takashi Iwai <[email protected]>
2011-07-04ALSA: hda - Define some constants in patch_via.cTakashi Iwai1-4/+6
Signed-off-by: Takashi Iwai <[email protected]>
2011-07-04ALSA: hda - Fix invalid multi-channel amplifiers for VT1718SLydia Wang1-5/+20
For VT1718S, the multi-channel path should be like following: DAC 0-->Mixer 9(index 5)-->Mixer 0(index 1)-->Front Pin; DAC 1-->Mixer 1(index 0)-->Surround Pin; DAC 2-->C/LFE Pin; DAC 3-->Mixer 2(index 0)-->Side Pin; But current code built Surround and Side path through index 1 of Mixer 1 and 2. So Adjusting Surround and Side channel amplifier is invalid. This patch fixes the issue. Signed-off-by: Lydia Wang <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-07-04ALSA: hda - Fix issue that front can't output sound for VT1718SLydia Wang1-0/+4
For VT1718S, Mixer 9 doesn't expose the connection to DAC 0. So when building up a 'PCM Playback' amplifier control, it will fail since getting DAC 0 index of Mixer 9 returned -1. So I added a dac_mixer_idx to indicated the actual index of DAC 0 to Mixer 9. Following is the patch and next mail is another. Signed-off-by: Lydia Wang <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-07-02ASoC: core - Make platform probe more like codec probe.Liam Girdwood1-15/+36
In preparation for ASoC dynamic PCM support (AKA ASoC DSP) Platform will also support DAPM so separate out the probe function to simplify the code (just like the codec probe). Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-01ALSA: hda - Fix the silent front with independent-HP for VIA codecsLydia Wang1-0/+3
Unmute DAC on front speaker path when Independent HP is enabled. When to enable Independent HP, the front speaker won't output any sound for VT1708, VT1708B, VT1708S and VT1702. I find the via_independent_hp_put() routine will mute DAC 0 path in Mixer 0. For these codecs, when using Independent HP, there could have two independent streams, one is from DAC0-->Mixer0-->Front Pin, the other is from DAC3-->GainSW3-->Side Pin. So I added a check for DAC-->Mixer path in activate_output_path(). If current path is DAC-->Mixer, no need to mute DAC index in Mixer. In fact, to change connection of Headphone pin or Mux connected with HP is enough. Signed-off-by: Lydia Wang <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-06-30ASoC: Improve error reporting in Speyside WM8962 driverMark Brown1-4/+8
Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-30ALSA: hda - Fix missing initialization in alc662 auto-parserTakashi Iwai1-1/+1
A missing initialization resulted in wrong DAC assignments in ALC662 (and other) auto-parsers. Signed-off-by: Takashi Iwai <[email protected]>
2011-06-30ALSA: hda - Re-implementation of VIA Independent-HP sharing with side streamTakashi Iwai1-6/+37
This patch adds the re-implementation of Independent-HP mode in the case where the DAC is shared between HP and side-channel streams. Now the driver tries to parse the output-path using the pre-parsed side-channel DAC for the independent HP output, too. When a playback PCM stream is opened with this shared mode, the Independent-HP mixer switch can't be changed for avoiding the conflict, thus it returns -EBUSY error. One remaining unintuitive issue is that the DAC volume is still controlled as "Side" volume although it's shared by both independent-HP and side streams. Signed-off-by: Takashi Iwai <[email protected]>
2011-06-30ALSA: sb16 - Fix build errors on MIPS and others with 13bit ioctl sizeTakashi Iwai1-1/+8
One of ioctl definition in sound/sb16_csp.h contains the data size over 8kB, and this causes build errors on architectures like MIPS, which define _IOC_SIZEBITS=13. For avoiding this build errors but keeping the compatibility, manually expand with _IOC() instead of using _IOW() for the problematic ioctl. Signed-off-by: Takashi Iwai <[email protected]>
2011-06-30ALSA: hdspm - Fix compile warnings with PPCTakashi Iwai1-4/+4
The char can be unsigned on some architectures. Since the code checks the negative values, they should be declared as signed char explicitly. sound/pci/rme9652/hdspm.c:5449: warning: comparison is always false due to limited range of data type sound/pci/rme9652/hdspm.c:5462: warning: comparison is always false due to limited range of data type Signed-off-by: Takashi Iwai <[email protected]>
2011-06-30ALSA: cs5535 - Fix invalid big-endian conversionsTakashi Iwai1-2/+2
Fix the wrongly converted short values: sound/pci/cs5535audio/cs5535audio_pcm.c:152: warning: large integer implicitly truncated to unsigned type sound/pci/cs5535audio/cs5535audio_pcm.c:160: warning: large integer implicitly truncated to unsigned type Signed-off-by: Takashi Iwai <[email protected]>