summaryrefslogtreecommitdiffstats
path: root/sound/pci (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ALSA: fix hda AZX_DCAPS_NO_TCSEL quirk check in driver_capsLinus Torvalds2011-05-281-1/+1
| | | | | | | | | | | | | | | | Commit 9477c58e3308 ("ALSA: hda - Reorganize controller quriks with bit flags") changed the driver type compares into various quirk bits. However, the check for AZX_DCAPS_NO_TCSEL got reverted: instead of clearing TCSEL for chipsets that have that standard capability, it cleared then when the NO_TCSEL bit was set. This can lead to noise and repeated sounds - a weird "echo" behavior. As the comment just above says: "Ensuring these bits are 0 clears playback static on some HD Audio codecs". Which is definitely true at least on my Core i5 Westmere system. Cc: Takashi Iwai <tiwai@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* ALSA: hda - Reorganize controller quriks with bit flagsTakashi Iwai2011-05-261-81/+125
| | | | | | | | | | | | | Introduce bit-flags indicating the necessary controller quirks, and set them in pci driver_data field. This simplifies the checks in the driver code and avoids the pci-id lookup in different places. Also, this patch adds the PCI ID entry for AMD Hudson. AMD Hudson requires a similar workaround like ATI SB while other generic ATI and AMD controllers don't need but some ATI-HDMI quirks. So, we need a different entry for Hudson. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Use snd_printd() in snd_hda_parse_pin_def_config()Takashi Iwai2011-05-261-1/+1
| | | | | | | Fixed the wrong usage of snd_printdd() for debug prints of input entries. It should be snd_printd() like others. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Increase MAX_HDMI_PINSStephen Warren2011-05-261-2/+3
| | | | | | | | | The recently introduced NVIDIA GeForce GT 520 has 4 pins within a single codec. Bump MAX_HDMI_PINS to accomodate this. Also bump MAX_HDMI_CVTS to match it; this might be needed later too. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Use model=auto for Lenovo G555Takashi Iwai2011-05-251-0/+1
| | | | | | The new auto-parser fixes problems on Lenovo G555. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Unify HDMI hotplug handling.Stephen Warren2011-05-252-87/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change unifies the initial handling of a pin's state with the code to update a pin's state after a hotplug (unsolicited response) event. The initial probing, and all updates, are now routed through hdmi_present_sense. The stored PD and ELDV status is now always derived from GetPinSense verb execution, and not from the data in the unsolicited response. This means: a) The WAR for NVIDIA codec's UR.PD values ("old_pin_detect") can be removed, since this only affected the no-longer-used unsolicited response payload. b) In turn, this means that most NVIDIA codecs can simply use patch_generic_hdmi instead of having a custom variant just to set old_pin_detect. c) When PD && ELDV becomes true, no extra verbs are executed, because the GetPinSense that was previously executed by snd_hdmi_get_eld (really, hdmi_eld_valid) has simply moved into hdmi_present_sense. d) When PD && ELDV becomes false, there is a single extra GetPinSense verb executed for codecs where old_pin_detect wasn't set, i.e. some NVIDIA, and all ATI/AMD and Intel codecs. I doubt this will be a performance issue. The new unified code in hdmi_present_sense also ensures that eld->eld_valid is not set unless eld->monitor_present is also set. This protects against potential invalid combinations of PD and ELDV received from HW, and transitively from a graphics driver. Also, print the derived PD/ELDV bits from hdmi_present_sense so the kernel log always displays the actual state stored, which will differ from the values in the unsolicited response for NVIDIA HW where old_pin_detect was previously set. Finally, a couple of small tweaks originally by Takashi: * Clear the ELD content to zero before reading it, so that if it's not read (i.e. when !(PD && ELDV)) it's in a known state. * Don't show ELD fields in /proc ELD files when the ELD isn't valid. The only possibility I can see for regression here is a codec where the GetPinSense verb returns incorrect data. However, we're already exposed to that, since that data is used (a) from hdmi_add_pin to set up the initial pin state, and (b) within snd_hda_input_jack_report to query a pin's presence value. As such, I don't believe any HW has bugs here. Includes-changes-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Force AD1988_6STACK_DIG for Asus M3N-HT DeluxeTony Vroon2011-05-251-0/+1
| | | | | | | | | | | | | | The microphone input on the back panel (pink connector) stopped operating correctly after an upgrade from 2.6.35 to 2.6.38; the actual problem manifests itself as a lack of microphone bias voltage (VREF_HIZ) on node 0x17. With AD1988_6STACK_DIG the maximum bias voltage (VREF_80) is applied and the headset operates correctly. Signed-off-by: Tony Vroon <tony@linx.net> Tested-by: Doug Redlich <pbrigade@nxltech.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix speaker auto-mute in Cxt auto-parserTakashi Iwai2011-05-241-12/+21
| | | | | | | Fix some logic failures in auto-mute handling in Conexant auto-parser. Also, modify codes to be a bit more understandable. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix initial capture-source with auto-mic for Cxt auto-parserTakashi Iwai2011-05-231-2/+3
| | | | | | | Fix the initialization of capture-source route when auto-mic is enabled for Conexant auto-parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix auto-mic detection in Conexant codec-parserTakashi Iwai2011-05-231-1/+1
| | | | | | | Fix the auto-mic detection for Cxt auto-parser due to off-by-one missing initialization. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Add quirk for Lenovo U350David Henningsson2011-05-231-0/+1
| | | | | | | | | | | Add model=asus quirk for Lenovo Ideapad U350 to make internal mic work correctly. Cc: stable@kernel.org (2.6.38+) BugLink: http://bugs.launchpad.net/bugs/751681 Reported-by: Kent Baxley <kent.baxley@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'topic/hda' into for-linusTakashi Iwai2011-05-2214-3275/+4106
|\
| * ALSA: hda - Use LPIB for ATI/AMD chipsets as defaultTakashi Iwai2011-05-201-1/+8
| | | | | | | | | | | | | | | | | | | | ATI and AMD chipsets seem not providing the proper position-buffer information, and it also doesn't provide FIFO register required by VIACOMBO fix. It's better to use LPIB for these. Reported-by: David Henningsson <david.henningsson@canonical.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * Revert "ALSA: hda - Use position_fix=3 as default for AMD chipsets"Takashi Iwai2011-05-201-5/+0
| | | | | | | | | | | | | | | | | | | | This reverts commit 447ee6a7cbbfb5ae7ab8f9b8b058b4a04fe398bf. The workaround introduced by this commit seems bogus. The AMD chipsets don't provide proper position-buffer nor FIFO value required by VIACOMBO fix. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - add Intel Panther Point HDMI codec idWu Fengguang2011-05-201-0/+2
| | | | | | | | | | Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Remove PCM mixer elements from Virtual Master of realtekRaymond Yau2011-05-201-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | Afer commit aa202455eec51699e44f658530728162cefa1307 , none of realtek codec has hardware volume control "PCM Playback Volume" and "PCM Playback Switch". As Virtual Master require all slave controls must have same number of step and dB range. Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix input-src parse in patch_analog.cAdrian Wilkins2011-05-201-1/+2
| | | | | | | | | | | | | | | | | | Compare pin type enum to the pin type and not the array index. Fixes bug#0005368. Signed-off-by: Adrian Wilkins <adrian.wilkins@nhs.net> Cc: <stable@kernel.org> (2.6.37 and later) Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Enable Realtek ALC269 codec input layer beepMadis Janson2011-05-191-0/+1
| | | | | | | | | | | | | | | | | | This fixes the input layer beep not working on some EeePC 1000 models by adding the subsystem id into whitelist. Otherwise the corresponding ALSA mixer is not enabled and stays muted, resulting in no console beep. Signed-off-by: Madis Janson <madis@cyber.ee> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: HDA: Add jack detection for HDMIDavid Henningsson2011-05-192-0/+13
| | | | | | | | | | | | | | | | Just as for headphones and microphone jacks, this patch adds reporting of HDMI jack status through the input layer. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix no sound after Windows boot with ALC269Kailang Yang2011-05-181-2/+9
| | | | | | | | | | | | | | Change power control register to default. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add support of ALC221 / ALC276 codecsKailang Yang2011-05-181-0/+2
| | | | | | | | | | | | | | Compatible with ALC269. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add support of ALC898/899 codecKailang Yang2011-05-181-0/+10
| | | | | | | | | | | | | | These are compatible with ALC882 codec. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Enable snoop bit for AMD controllersTakashi Iwai2011-05-171-1/+14
| | | | | | | | | | | | | | | | | | | | | | AMD Hudson controllers give noisy outputs when the buffer data is rewritten on the fly as PulseAudio does. This seems fixed by the snoop bit enabled just like ATI chipset. Also, disable 64bit DMA as now, to be sure. We can revisit this later. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Handle dock line-in as auto-detecable for Cxt auto-parserTakashi Iwai2011-05-171-5/+7
| | | | | | | | | | | | Similar process like in patch_realtek.c and patch_sigmatel.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Handle dock line-in as auto-detectable for IDT codecsTakashi Iwai2011-05-171-4/+8
| | | | | | | | | | | | | | | | When a docking-station has a line-in jack, we can handle it also as a detectable jack just like mic-in. This will improve the usability of HP laptops with a docking-station. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add dock-mic detection support to Realtek auto-parserTakashi Iwai2011-05-171-17/+65
| | | | | | | | | | | | | | In addition to the normal mic jack, the mic (or line-in) jack on the docking-station is checked also as a candidate for auto-selection. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Check unsol-cap in is_jack_detectalbe()Takashi Iwai2011-05-174-10/+8
| | | | | | | | | | | | Also replace more open-codes with this function. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add support of dock-mic detection to Conexant auto-parserTakashi Iwai2011-05-171-39/+59
| | | | | | | | | | | | | | | | | | In addition to the normal external mic jack, check also the mic jack on a docking-station as well, and select the input source appropriately. The similar functionality was already implemented in patch_sigmatel.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix initialization of spec->automute_lines in patch_realtek.cTakashi Iwai2011-05-171-1/+1
| | | | | | | | | | | | | | spec->automute_lines shouldn't be set unless the line-detection is available. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Use get_wcaps_type()Takashi Iwai2011-05-171-2/+1
| | | | | | | | | | | | Replace the open-code with get_wcaps_type() macro. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Use is_jack_detectable() helperTakashi Iwai2011-05-172-11/+7
| | | | | | | | | | | | Replaced the open-code with the new helper function. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add automute-mode enum to Conexant auto-parserTakashi Iwai2011-05-172-49/+215
| | | | | | | | | | | | | | | | Implement the same functionality as Realtek's auto-mute mode control. Now Conexant auto-parser can also mutes line-out and provide the enum control for different automute behavior. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add missing Front/Surround/CLFE as slaves for Cxt auto-parserTakashi Iwai2011-05-171-0/+6
| | | | | | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Code refactoring in patch_conexant.cTakashi Iwai2011-05-171-30/+34
| | | | | | | | | | | | | | Use a struct instead of each array for managing input-source info for auto-parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: HDA: Use one dmic only for Dell Studio 1558David Henningsson2011-05-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | There are no signs of a dmic at node 0x0b, so the user is left with an additional internal mic which does not exist. This commit removes that non-existing mic. Cc: stable@kernel.org (2.6.32+) BugLink: http://bugs.launchpad.net/bugs/731706 Reported-by: James Page <james.page@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add support of auto-parser to cxt5066 codecsTakashi Iwai2011-05-161-2/+11
| | | | | | | | | | | | | | Still experimental. Not enabled as default unless model=auto is passed. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Don't create multiple same volume/boost controls in Cxt auto-parserTakashi Iwai2011-05-161-2/+13
| | | | | | | | | | | | | | Check the routing more exactly for avoiding the duplicated controls for the very same effect for multiple capture routes in Conexant auto-parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Build boost controls from selector widget in Cxt auto-parserTakashi Iwai2011-05-161-18/+61
| | | | | | | | | | | | | | When the intermediate selector widget in the capture path provides the boost volume, create the corresponding volume control. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Don't use auto-parser for cxt5045 / 5051 as defaultTakashi Iwai2011-05-151-0/+4
| | | | | | | | | | | | | | Just for safety reason (for avoiding any possible regressions), don't enable auto-parser as default for cxt5045 and 5051, as well as 5047. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Enable codec->pin_amp_workaround always for Conexant auto-parserTakashi Iwai2011-05-151-11/+1
| | | | | | | | | | | | It can (must for some) be used for all Conexnat codecs safely. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Search ADC NIDs dynamically in Conexant auto-parserTakashi Iwai2011-05-151-14/+26
| | | | | | | | | | | | | | Instead of giving fixed arrays, look for ADC nids dynamically in the tree in Conexant auto-parser code. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add support of auto-parser to cxt5047 / CX20551 WaikikiTakashi Iwai2011-05-131-3/+18
| | | | | | | | | | | | | | | | | | | | | | Similarly like other Conexant codecs, now model=auto is supported for cxt5047. But the auto-parser mode isn't activated as default yet, since BIOS pin-configs seem often broken on machines with this codec. User need to pass model=auto explicitly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Parse more deep input-source routes in Conexant auto-parserTakashi Iwai2011-05-131-21/+52
| | | | | | | | | | | | | | Handle not only a single-depth input-route but two-level depth routes (PIN->MUX->ADC), too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Clean up input-mux handling in Conexant auto-parserTakashi Iwai2011-05-131-9/+10
| | | | | | | | | | | | | | Keep the registered input-pins in imux_pins[], and fix the inconsistent use of sepc->auto_mic_ext. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add auto-parser support to cxt5045 / CX20549 VeniceTakashi Iwai2011-05-131-19/+65
| | | | | | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add auto-parser support to cxt5051 / CX20561 HermosaTakashi Iwai2011-05-131-62/+217
| | | | | | | | | | | | | | Extend the existing auto-parser for CX2064x for cxt5051 codec. Now the auto-parser supports ADC-switching for this codec. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Check AMP CAP at initialization of Conexant auto-parserTakashi Iwai2011-05-131-8/+20
| | | | | | | | | | | | Some codecs have no mute caps in audio I/O widgets. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Turn on EAPD dynamically per jack plug in Conexant auto modeTakashi Iwai2011-05-131-8/+17
| | | | | | | | | | | | | | Instead of keeping always EAPD on, turn on/off appropriately at jack plugging in Conexant auto-parser mode. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix auto-mic for CX2064x codecsTakashi Iwai2011-05-131-4/+4
| | | | | | | | | | | | | | The wrong id is assigned for external/internal mics in the auto-mic selection parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Use position_fix=3 as default for AMD chipsetsTakashi Iwai2011-05-041-0/+5
| | | | | | | | | | | | | | | | | | AMD chipsets often behave pretty badly regarding the DMA position reporting. It results in the bad quality audio recording. Using position_fix=3 works well in general for them, so let's enable it as default for AMD. Signed-off-by: Takashi Iwai <tiwai@suse.de>