summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-05-21ALSA: hda/realtek - Fix unused variable compile warningTakashi Iwai1-1/+0
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-19ALSA: hda - Fix possible races of accesses to connection list arrayTakashi Iwai4-56/+52
Like the previous fixes for cache hash accesses, a protection over accesses to the widget connection list array must be provided. Together with this action, remove snd_hda_get_conn_list() which can be always race, and replace it with either snd_hda_get_num_conns() or snd_hda_get_connections() calls. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-15ALSA: hda/idt - Cache the power-map bitsTakashi Iwai1-3/+18
For avoiding unnecessary codec read/write verbs at each jack detection. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-15ALSA: hda/idt - Clean up power-map check codeTakashi Iwai1-10/+9
Turn off the power-map for unused ports and check the jack-detection capability in the first place. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-15Merge branch 'fix/hda' into topic/hdaTakashi Iwai3-6/+8
2012-05-15ALSA: hda - Evaluate gpio_led hints at the right momentTakashi Iwai1-7/+5
The hints regarding the mute-LED must be evaluated during the codec parsing. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-15ALSA: hda/idt - Fix power-map for speaker-pins with some HP laptopsTakashi Iwai1-3/+3
BIOS on some HP laptops don't set the speaker-pins as fixed but expose as jacks, and this confuses the driver as if these pins are jack-detectable. As a result, the machine doesn't get sounds from speakers because the driver prepares the power-map update via jack unsol events which never come up in reality. The bug was introduced in some time in 3.2 for enabling the power-mapping feature. This patch fixes the problem by replacing the check of the persistent power-map bits with a proper is_jack_detectable() call. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43240 Cc: <stable@vger.kernel.org> [v3.2+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-12ALSA: hda - Disable FLOAT format supportTakashi Iwai1-0/+2
It turned out that the FLOAT format on CS4206 results in simple noises, which implies that this is no right format as is. Since CS4206 is the only codec supporting the float, let's disable it until we find the correct format. Reported-and-tested-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-12ALSA: hda/conexant - Correct vendor IDs for new codecsTakashi Iwai1-6/+9
Never trust datasheet... Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-10ALSA: hda - Fix concurrent hash accessesTakashi Iwai2-81/+121
The amp and caps hashes aren't protected properly for concurrent accesses. Protect them via a new mutex now. But it can't be so simple as originally thought: since the update of a hash table entry itself might trigger the power-up sequence which again accesses the hash table, we can't cover the whole function simply via mutex. Thus the update part has to be split from the mutex and revalidated. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-10ALSA: hda - Protect SPDIF-related stuff via spdif_mutexTakashi Iwai2-12/+27
Add the missing mutex protection or move into the protected part for SPDIF access codes for codecs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-10ALSA: hda - Add Conexant CX20751/2/3/4 codec supportTakashi Iwai1-0/+6
These are almost compatible with the older Conexant codecs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-10ALSA: hda - Add the support for Creative SoundCore3DTakashi Iwai1-4/+22
The controller is compatible with HD-audio 1.0a with some specific restrictions. - The BDLE entries can't be over 4k boundary - No position-buffer and no MSI Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-09Merge tag 'asoc-3.4' of ↵Takashi Iwai1-1/+1
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Build fix for SH in 3.4 An API update which wasn't sufficiently thorough in updating the tree...
2012-05-09ASoC: sh: fix migor.c compilationGuennadi Liakhovetski1-1/+1
Fix a recent compilation breakage, caused by a change in SH clock API. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-05-09ALSA: hda - More robustify the power-up/down sequenceTakashi Iwai2-8/+16
Check the power_transition up/down state instead of boolean bit, so that the power-up sequence can cancel the pending power-down work properly. Also, by moving cancel_delayed_work_sync() before the actual power-up sequence, make sure that the delayed power-down is completed. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-09ALSA: hda - Remove pre_resume and post_suspend opsTakashi Iwai3-27/+0
Since the recent commit, the resume procedure is always performed at the resume time. This makes the pre_resume hack for VREF mute LED on some HP laptops superfluous. As this is the only user of pre_resume (and there is no user of post_suspend) ops, let's kill them again. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-09ALSA: HDA: Lessen CPU usage when waiting for chip to respondDavid Henningsson1-2/+4
When an IRQ for some reason gets lost, we wait up to a second using udelay, which is CPU intensive. This patch improves the situation by waiting about 30 ms in the CPU intensive mode, then stepping down to using msleep(2) instead. In essence, we trade some granularity in exchange for less CPU consumption when the waiting time is a bit longer. As a result, PulseAudio should no longer be killed by the kernel for taking up to much RT-prio CPU time. At least not for *this* reason. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Tested-by: Arun Raghavan <arun.raghavan@collabora.co.uk> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-08ALSA: hda - Move BIOS pin-parser code to hda_auto_parser.cTakashi Iwai13-675/+690
Just code shuffles. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-08ALSA: hda - Move up the fixup helper functions to the library moduleTakashi Iwai5-242/+309
Move the fixup helper functions in patch_realtek.c to hda_auto_parser.c so that they can be used in other codec drivers like patch_conexant.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-08ALSA: hda - Protect the power-saving count with spinlockTakashi Iwai2-2/+22
To avoid some races. Still not perfect, but now a bit safer. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-08ALSA: hda - Clear the power-saving states properly at resetTakashi Iwai1-0/+3
Some power-saving states have been left unchanged in snd_hda_codec_reset(), and this is a potential danger because the function may be called in various situations including the continuous operation after that call. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-08ALSA: hda - Always resume the codec immediatelyTakashi Iwai3-17/+8
This is a fix for the problem in commit 785f857d1c, the pop noise issue on some machines with ALC269. The problem was the uninitialized state after the resume due to the delayed resume of the codec chips. In that commit, we tried to fix by forcibly putting the codec to D3 at suspend. But, this still also leaves the uninitialized state after resume, and it _might_ be still problematic with some BIOS. Since the commit turned out to regress another issues, we reverted it in the end. Now, in this fix, try to fix by turning on the codec immediately at the resume path. We need to take care of the power-saving in this case. When the device is woken up at the power-saved state, it should go power-saving again after the resume. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-08ALSA: hda - Fix possible access to uninitialized work structTakashi Iwai1-7/+8
The work struct must be initialized before the possible call in the destructor. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-08ALSA: hda/realtek - Call a common helper for alc_spec initializationTakashi Iwai1-75/+61
Just a clean up by calling the same helper function. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-08Merge branch 'fix/hda' into topic/hdaTakashi Iwai17-87/+285
2012-05-08Revert "ALSA: hda - Set codec to D3 forcibly even if not used"Takashi Iwai2-5/+13
This reverts commit 785f857d1cb0856b612b46a0545b74aa2596e44a. The commit causes a problem with the wrong D3 state after suspend because the call of hda_set_power_state() involves with the power-up sequence, which changes the power_count, and this confuses the resume sequence that checks the power_count as well. Originally, this go-to-D3 sequence should be a simple task without the power-up sequence. But, it'd need some proper sanity checks in the case of power-saved state, so it's not too easy to write now in the 3.4-rc cycle. In short, the safest option now is to revert this affecting commit. Of course, we need to clean up and robustify the power-saving code better for 3.5 kernel. Reported-by: Konstantin Khlebnikov <khlebnikov@openvz.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-08ALSA: hda/realtek - Call alc_auto_parse_customize_define() always after fixupTakashi Iwai1-6/+7
The call for alc_auto_parse_customize_define() must be done after the fixup pre-probe initialization. Otherwise SKU_IGNORE fixup won't work properly (e.g. HP RP5800 with ALC662 codec). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-08ALSA: hdsp - Provide ioctl_compatAndre Schramm1-0/+1
snd_hdsp uses its own ioctls to acquire config- and status information. Expose the corresponding ioctl handler via ioctl_compat, so that 32bit applications can use it on 64bit kernels. Signed-off-by: Andre Schramm <andre.schramm@iosono-sound.com> Reviewed-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Adrian Knoth <adi@drcomp.erfurt.thur.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-07ALSA: hda/realtek - Add missing CD-input pin for MSI-7350 moboTakashi Iwai1-0/+1
Reported-by: Philipp Matthias Hahn <pmhahn@pmhahn.de> Cc: <stable@kernel.org> [v3.3+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-07ALSA: hda/realtek - Add a fixup for Acer Aspire 5739GTakashi Iwai1-0/+2
Acer Aspire 5739G requires the same fix-up for 4930G to support the surround / bass speakers. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43180 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-06ALSA: echoaudio: Remove incorrect part of assertionMark Hills1-1/+1
This assertion seems to imply that chip->dsp_code_to_load is a pointer. It's actually an integer handle on the actual firmware, and 0 has no special meaning. The assertion prevents initialisation of a Darla20 card, but would also affect other models. It seems it was introduced in commit dd7b254d. ALSA sound/pci/echoaudio/echoaudio.c:2061 Echoaudio driver starting... ALSA sound/pci/echoaudio/echoaudio.c:1969 chip=ebe4e000 ALSA sound/pci/echoaudio/echoaudio.c:2007 pci=ed568000 irq=19 subdev=0010 Init hardware... ALSA sound/pci/echoaudio/darla20_dsp.c:36 init_hw() - Darla20 ------------[ cut here ]------------ WARNING: at sound/pci/echoaudio/echoaudio_dsp.c:478 init_hw+0x1d1/0x86c [snd_darla20]() Hardware name: Dell DM051 BUG? (!chip->dsp_code_to_load || !chip->comm_page) Signed-off-by: Mark Hills <mark@pogo.org.uk> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-05Merge branch 'fix/asoc' into for-linusTakashi Iwai1-0/+4
2012-05-05Merge branch 'for-3.4' of ↵Takashi Iwai1-0/+4
git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc into fix/asoc
2012-05-05Merge tag 'asoc-3.4' of ↵Takashi Iwai7-17/+25
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Updates for 3.4 Nothing terribly exciting here, a bunch of small and simple fixes scattered around the place.
2012-05-04ASoC: omap-pcm: Free dma buffers in case of error.Oleg Matcovschi1-0/+4
Signed-off-by: Oleg Matcovschi <oleg.matcovschi@ti.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
2012-04-30ASoC: s3c2412-i2s: Fix dai registrationHeiko Stübner1-1/+1
As s3c2412-i2s is using the s3c_i2sv2 it should call the more specialised s3c_i2sv2_register_dai instead of simply calling snd_soc_register_dai. Without this call the snd_soc_dai_ops structure isn't initialised correctly. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-30ASoC: wm8350: Don't use locally allocated codec structMark Brown1-5/+6
The core allocates the live copies, we shouldn't try to duplicate it and were buggy trying to do so as we were using uninitialised data for the control data. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-30ASoC: tlv312aic23: unbreak resumeEric Bénard1-2/+2
* commit f9dfbf9 "ASoC: tlv320aic23: convert to soc-cache" leads to a bug preventing resumeof the codec as regmap expects a 9 bits data register but 0xFFFF is passed in tlv320aic23_set_bias_level and this values gets cached preventing any write to the TLV320AIC23_PWR register as the final value produced by regmap is (register << 9) | value * this patch solves the problem by only working on the 9 bits the register contains. Signed-off-by: Eric Bénard <eric@eukrea.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
2012-04-25ASoC: bf5xx-ssm2602: Set DAI formatLars-Peter Clausen1-0/+2
Commit 980b0bc69 ("ASoC: blackfin: Use dai_fmt") converted the blackfin ASoC machine drivers to use the dai_links dai_fmt field to setup their DAI format. For the bf5xx-ssm2602 the commit removed the manual call to snd_soc_dai_set_fmt, but missed to set the dai_links dai_fmt field. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-24ASoC: core: check of_property_count_strings failureRichard Zhao1-3/+3
Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
2012-04-24ASoC: dt: sgtl5000.txt: Add description for 'reg' fieldFabio Estevam1-0/+2
Add description for 'reg' field. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-23ASoC: wm_hubs: Make sure we don't disable differential line outputsMark Brown1-6/+9
While we need to clean up unused single ended line outputs we don't want to do this if the outputs are in differential mode. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-23Merge tag 'asoc-3.4' of ↵Takashi Iwai5-58/+230
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: updates for 3.4 Slightly larger than normal - the DAPM fix is a "this should always have worked" type of thing which is very clear and should have no impact on systems that don't need it. The WM8994 fix is driver specific but pretty important for that driver.
2012-04-23ASoC: wm8994: Improve sequencing of AIF channel enablesMark Brown1-54/+222
This ensures a clean startup of the channels, without this change some use cases could result in issues in a small proportion of cases. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org
2012-04-20ALSA: hda - Skip pin capability sanity check for bogus valuesTakashi Iwai1-2/+2
Some old codecs like ALC880 seem to give a bogus pin capability value 0 occasionally. This breaks the new sanity check in snd_hda_set_pin_ctl(). Skip the sanity checks in such a case. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-20ALSA: hda - Add snd_hda_get_default_vref() helper functionTakashi Iwai10-58/+56
Add a new helper function to guess the default VREF pin control bits for mic in. This can be used to set the pin control value safely matching with the actual pin capabilities. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-20ALSA: hda - Introduce snd_hda_set_pin_ctl*() helper functionsTakashi Iwai10-117/+125
For setting the pin-control values more safely to match with the actual pin capability bits, a copule of new helper functions, snd_hda_set_pin_ctl() and snd_hda_set_pin_ctl_cache(), are introduced. These are simple replacement of the codec verb write with AC_VERB_SET_PIN_WIDGET but do more sanity checks and filter out superfluous pin-control bits if they don't fit with the corresponding pin capabilities. Some codecs are screwed up or ignore the command when such a wrong bit is set. These helpers will avoid such secret errors. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-20ALSA: HDA: Add external mic quirk for Asus Zenbook UX31EDavid Henningsson1-0/+1
According to the reporter, external mic starts to work if the laptop-dmic model is used. According to BIOS pin config, all pins are consistent with the alc269vb_laptop_dmic fixup, except for the external mic, which is not present. Cc: stable@kernel.org BugLink: https://bugs.launchpad.net/bugs/950490 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-19Merge branch 'fix/hda' into topic/hdaTakashi Iwai19-53/+167
Conflicts: sound/pci/hda/patch_conexant.c Signed-off-by: Takashi Iwai <tiwai@suse.de>