summaryrefslogtreecommitdiff
path: root/sound/pci
AgeCommit message (Collapse)Author
2012-05-21Merge branch 'topic/hda' into for-linusTakashi Iwai
2012-05-21Merge branch 'topic/asoc' into for-linusTakashi Iwai
2012-05-21ALSA: hda/realtek - Fix unused variable compile warningTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-19ALSA: hda - Fix possible races of accesses to connection list arrayTakashi Iwai
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 Iwai
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 Iwai
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 Iwai
2012-05-15ALSA: hda - Evaluate gpio_led hints at the right momentTakashi Iwai
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 Iwai
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 Iwai
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 Iwai
Never trust datasheet... Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-05-10Merge tag 'sound-3.4' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Slightly more than expected as rc7, but all are reasonablly small fixes. A few additions of HD-audio fixup entries, a couple of other regression fixes including a revert, and a few other trivial oneliners." * tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ASoC: sh: fix migor.c compilation ALSA: HDA: Lessen CPU usage when waiting for chip to respond Revert "ALSA: hda - Set codec to D3 forcibly even if not used" ALSA: hda/realtek - Call alc_auto_parse_customize_define() always after fixup ALSA: hdsp - Provide ioctl_compat ALSA: hda/realtek - Add missing CD-input pin for MSI-7350 mobo ALSA: hda/realtek - Add a fixup for Acer Aspire 5739G ALSA: echoaudio: Remove incorrect part of assertion
2012-05-10ALSA: hda - Fix concurrent hash accessesTakashi Iwai
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 Iwai
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 Iwai
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 Iwai
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-09ALSA: hda - More robustify the power-up/down sequenceTakashi Iwai
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 Iwai
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 Henningsson
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 Iwai
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 Iwai
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 Iwai
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 Iwai
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 Iwai
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 Iwai
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 Iwai
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 Iwai
2012-05-08Revert "ALSA: hda - Set codec to D3 forcibly even if not used"Takashi Iwai
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 Iwai
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 Schramm
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 Iwai
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 Iwai
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 Hills
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-04-26Merge tag 'sound-3.4' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "A workaround for an ASUS laptop and a few ASoC changes; most of the commits are tagged for stable, too." * tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ASoC: wm8994: Improve sequencing of AIF channel enables ALSA: HDA: Add external mic quirk for Asus Zenbook UX31E ASoC: fsi: update for dmaengine prep_slave_sg fallout. ASoC: core: Fix card RTD count for deferred probe. ASoC: cs42l73: don't use negative array index ASoC: dapm: Ensure power gets managed for line widgets
2012-04-20Merge tag 'sound-3.4' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Fixes for a few regressions of HD-audio, originated partly from 3.4 and partly 3.3. The fixes for ThinkPad docking-station are for 3.3 kernels, thus they are based on 3.3 then merged back to 3.4, so that they can be merged to stable tree cleanly. The non-trivial merge conflicts are because of this action. In addition, a couple of trivial fixes for documentation and a long- standing issue in the listing of built-in sound driver at boot time." * tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/conexant - Set up the missing docking-station pins ALSA: hda/conexant - Don't set HP pin-control bit unconditionally ALSA: workaround: change the timing of alsa_sound_last_init() ALSA: hda/sigmatel - Fix inverted mute LED ALSA: hda/realtek - Fix regression on Quanta/Gericom KN1 ALSA: fix core/vmaster.c kernel-doc warning
2012-04-20ALSA: hda - Skip pin capability sanity check for bogus valuesTakashi Iwai
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 Iwai
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 Iwai
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 Henningsson
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 Iwai
Conflicts: sound/pci/hda/patch_conexant.c Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-19Merge branch 'fix/cxt-stable' into fix/hdaTakashi Iwai
Merge fixes for Thinkpad docking-station regressions for 3.3 kernels back to 3.4. These were committed in that branch to make the stable merging easier. Conflicts: sound/pci/hda/patch_conexant.c
2012-04-19ALSA: hda/conexant - Set up the missing docking-station pinsTakashi Iwai
ThinkPad 410,420,510,520 and X201 with cx50585 & co chips have the docking-station ports, but BIOS doesn't initialize for these pins. Thus, like the former X200, we need to set up the pins manually in the driver. The odd part is that the same PCI SSID is used for X200 and T400, thus we need to prepare individual fixup tables for cx5051 and others. Bugzilla entries: https://bugzilla.redhat.com/show_bug.cgi?id=808559 https://bugzilla.redhat.com/show_bug.cgi?id=806217 https://bugzilla.redhat.com/show_bug.cgi?id=810697 Reported-by: Josh Boyer <jwboyer@redhat.com> Reported-by: Jens Taprogge <jens.taprogge@taprogge.org> Tested-by: Jens Taprogge <jens.taprogge@taprogge.org> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-19ALSA: hda/conexant - Don't set HP pin-control bit unconditionallyTakashi Iwai
Some output pins on Conexant chips have no HP control bit, but the auto-parser initializes these pins unconditionally with PIN_HP. Check the pin-capability and avoid the HP bit if not supported. Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-19ALSA: hda/sigmatel - Fix inverted mute LEDTakashi Iwai
While refactoring the mute-LED handling for HP laptops, I messed up the polarity check in a wrong way. The red (or the mute-LED if any) should appear in the muted state, corresponding to GPIO on. Reported-by: Mikko Vinni <mmvinni@yahoo.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-19ALSA: hda/realtek - Fix regression on Quanta/Gericom KN1Takashi Iwai
Through the transition to the auto-parser, the support for Quanta/Gericom KN1 got broken. There are two problems behind it: - This machine doesn't like the default COEF setup for ALC260 we take now as default - BIOS doesn't set the pins correctly at all; especially the machine uses only the pin 0x0f for both headphone and speaker This patch adds the fixup as a workaround for these issues. Reported-and-tested-by: Uros Vampl <mobile.leecher@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-15Merge tag 'sound-3.4' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull another round of sound fixes from Takashi Iwai: "A few regression fixes for Realtek HD-audio codecs, mainly specific to some laptop models." * tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/realtek - Fix mem leak (and rid us of trailing whitespace). ALSA: hda/realtek - Add quirk for Mac Pro 5,1 machines ALSA: hda/realtek - Add a fixup entry for Acer Aspire 8940G ALSA: hda/realtek - Fix GPIO1 setup for Acer Aspire 4930 & co ALSA: hda/realtek - Add a few ALC882 model strings back
2012-04-13ALSA: hda/realtek - Fix mem leak (and rid us of trailing whitespace).Jesper Juhl
In sound/pci/hda/patch_realtek.c::alc_auto_fill_dac_nids(), in the 'for (;;)' loop, if the 'badness' value returned from fill_and_eval_dacs() is negative, then we'll return from the function without freeing the memory we allocated for 'best_cfg', thus leaking. Fix the leak by kfree()'ing the memory when badness is negative. While I was there I also noticed some trailing whitespace in the function that I removed (along with all other trailing whitespace in the file) - it didn't seem worth-while to do that as two patches, so I hope it's OK that I just did it all as one patch. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-12ALSA: hda/realtek - Add quirk for Mac Pro 5,1 machinesJosh Boyer
A user reported that setting model=imac24 used to allow sound to work on their Mac Pro 5,1 machine. Commit 5671087ffa "Move ALC885 macpro and imac24 models to auto-parser" removed this model option. All Mac machines are now explicitly handled with a quirk and the auto-parser. This adds a quirk for the device found on the Mac Pro 5,1 machines. This (partially) fixes https://bugzilla.redhat.com/show_bug.cgi?id=808559 [sorted the new entry in the ID number order by tiwai] Reported-by: Gabriel Somlo <somlo@cmu.edu> Signed-off-by: Josh Boyer <jwboyer@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-12ALSA: hda/realtek - Add a fixup entry for Acer Aspire 8940GTakashi Iwai
It's compatible with 8930G. Using the same fixup gives the proper 5.1 sound back. Reported-and-tested-by: Dany Martineau <dany.luc.martineau@gmail.com> Cc: <stable@kernel.org> [v3.3+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-04-12ALSA: hda/realtek - Fix GPIO1 setup for Acer Aspire 4930 & coTakashi Iwai
Add GPIO1 setup explicitly for Acer Aspire 493x & co. This could be set by alc_auto_init_amp(), but it's safer to set it more explicitly in the fixup table. Signed-off-by: Takashi Iwai <tiwai@suse.de>