aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_conexant.c
Commit message (Collapse)AuthorAgeFilesLines
* ALSA: hda/conexant - Don't set HP pin-control bit unconditionallyTakashi Iwai2012-04-271-2/+7
| | | | | | | | | | | | | commit ca3649de026ff95c6f2847e8d096cf2f411c02b3 upstream. 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. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* ALSA: hda - Add a fake mute featureTakashi Iwai2012-03-121-1/+21
| | | | | | | | | | | | | | | | | | | | | | commit 3868137ea41866773e75d9ac4b9988dcc361ff1d upstream. Some codecs don't supply the mute amp-capabilities although the lowest volume gives the mute. It'd be handy if the parser provides the mute mixers in such a case. This patch adds an extension amp-cap bit (which is used only in the driver) to represent the min volume = mute state. Also modified the amp cache code to support the fake mute feature when this bit is set but the real mute bit is unset. In addition, conexant cx5051 parser uses this new feature to implement the missing mute controls. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42825 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* ALSA: hda - Fix redundant jack creations for cx5051Takashi Iwai2012-02-291-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | [Note that since the patch isn't applicable (and unnecessary) to 3.3-rc, there is no corresponding upstream fix.] The cx5051 parser calls snd_hda_input_jack_add() in the init callback to create and initialize the jack detection instances. Since the init callback is called at each time when the device gets woken up after suspend or power-saving mode, the duplicated instances are accumulated at each call. This ends up with the kernel warnings with the too large array size. The fix is simply to move the calls of snd_hda_input_jack_add() into the parser section instead of the init callback. The fix is needed only up to 3.2 kernel, since the HD-audio jack layer was redesigned in the 3.3 kernel. Reported-by: Russell King <rmk+kernel@arm.linux.org.uk> Tested-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* ALSA: hda - Fix ADC input-amp handling for Cx20549 codecTakashi Iwai2011-11-111-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | commit 6b45214277bec2193ad3ccb8d7aa6100b5a0f1a9 upstream. It seems that Conexant CX20549 chip handle only a single input-amp even though the audio-input widget has multiple sources. This has been never clear, and I implemented in the current way based on the debug information I got at the early time -- the device reacts individual input-amp values for different sources. This is true for another Conexant codec, but it's not applied to CX20549 actually. This patch changes the auto-parser code to handle a single input-amp per audio-in widget for CX20549. After applying this, you'll see only a single "Capture" volume control instead of separate "Mic" or "Line" captures when the device is set up to use a single ADC. We haven't tested 20551 and 20561 codecs yet. If these show the similar behavior like 20549, they need to set spec->single_adc_amp=1, too. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* ALSA: HDA: conexant support for Lenovo T520/W520Daniel Suchy2011-10-251-0/+1
| | | | | | | | | | | | | | | | | | commit ca201c096269ee2d40037fea96a59fd0695888c4 upstream. This is patch for Conexant codec of Intel HDA driver, adding new quirk for Lenovo Thinkpad T520 and W520. Conexant autodetection works fine for T520 (similar subsystem ID is used also in W520 model) and detects more mixer features compared to generic (fallback) Lenovo quirk with hardcoded options in Conexant codec. Patch was activelly tested with Linux 3.0.4, 3.0.6 and 3.0.7 without any problems. Signed-off-by: Daniel Suchy <danny@danysek.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* ALSA: HDA: Add model=auto quirk for Acer Aspire 3830TGDavid Henningsson2011-06-281-0/+1
| | | | | | | | Since we're not using the new auto parser as a fallback yet, add it manually as a quirk. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Add a new Conexant codec ID (506c)David Henningsson2011-06-281-0/+3
| | | | | | | | | | | Conexant ID 506c was found on Acer Aspire 3830TG. As users report no playback, sending to stable should be safe. Cc: stable@kernel.org BugLink: https://bugs.launchpad.net/bugs/783582 Reported-by: andROOM Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda: Fix inaudible internal speakers on CyberpowerPC Gamer Xplorer ↵Daniel T Chen2011-06-101-0/+1
| | | | | | | | | | | | | | | | | | | N57001 laptop BugLink: https://launchpad.net/bugs/761171 The original reporter needs the model=auto quirk for his internal speakers to be audible in the latest daily snapshot, so add an entry in the quirk table for his PCI SSID. A trivially different version of this patch using the model=asus quirk should be applied to the 2.6.38 and 2.6.39 stable kernels. We don't use the asus quirk in 3.0-rc2, because 3.0-rc2's autoparser is much improved. Reported-and-tested-by: tomdeering7 Signed-off-by: Daniel T Chen <crimsun@ubuntu.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 - 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>
* 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 - 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 - Add automute-mode enum to Conexant auto-parserTakashi Iwai2011-05-171-49/+210
| | | | | | | | 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 - 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 - Constify fixup and other array data in patch_conexant.cTakashi Iwai2011-05-021-95/+95
| | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Fix dock mic for Lenovo X220-tabletDavid Henningsson2011-04-051-0/+1
| | | | | | | | | | | Without the "thinkpad" quirk, the dock mic in Lenovo X220 tablet edition won't work. BugLink: http://bugs.launchpad.net/bugs/751033 Cc: stable@kernel.org Tested-by: James Ferguson <james.ferguson@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Add dock mic quirk for Lenovo Thinkpad X220David Henningsson2011-03-311-0/+1
| | | | | | | | | | | This quirk is needed for the docking station mic of Lenovo Thinkpad X220 to function correctly. BugLink: http://bugs.launchpad.net/bugs/746259 Cc: stable@kernel.org Tested-by: James Ferguson <james.ferguson@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Make common input-jack helper functionsTakashi Iwai2011-03-031-110/+14
| | | | | | | Since multiple codec drivers already use the input-jack stuff, let's make common helper functions to reduce the duplicated codes. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Add ideapad quirk for two Dell machinesDavid Henningsson2011-02-231-0/+2
| | | | | | | | | | | These two Dell machines have been reported working well with the ideapad model. BugLink: http://bugs.launchpad.net/bugs/723676 Cc: stable@kernel.org Tested-by: David Chen <david.chen@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Add a new Conexant codec 506e (20590)David Henningsson2011-02-231-0/+3
| | | | | | | | | | Conexant 506e/20590 has the same graph as the rest of the 5066 family. BugLink: http://bugs.launchpad.net/bugs/723672 Cc: stable@kernel.org Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Do not announce false surround in Conexant autoDavid Henningsson2011-02-191-1/+1
| | | | | | | | | | | Without this patch, one line-out and one speaker and Conexant's auto parser would announce (non-working) surround capabilities. BugLink: http://bugs.launchpad.net/bugs/721126 Cc: stable@kernel.org Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Conexant auto: Handle multiple connections to ADC nodeDavid Henningsson2011-02-191-13/+48
| | | | | | | | | | | | | Conexant 20641 has several inputs to its ADC node, with one selector and individual amps for all inputs. This patch adds support in the Conexant auto parser to handle that case. It also means that the pin node's volume is being renamed to "Boost" to avoid name clash with the new volume controls on the ADC node. BugLink: http://bugs.launchpad.net/bugs/719524 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix memory leaks in conexant jack arraysTakashi Iwai2011-02-021-1/+7
| | | | | | | | | | | | | | | The Conexant codec driver adds the jack arrays in init callback which may be called also in each PM resume. This results in the addition of new jack element at each time. The fix is to check whether the requested jack is already present in the array. Reference: Novell bug 668929 https://bugzilla.novell.com/show_bug.cgi?id=668929 Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Fix microphone(s) on Lenovo Edge 13David Henningsson2011-01-281-0/+1
| | | | | | | | | | BugLink: http://bugs.launchpad.net/bugs/708521 This Edge 13 model has an internal mic at 0x1a and should therefore use the asus quirk. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: cxt5066 - Use asus model for Asus U50F, select correct SPDIF outputAndy Robinson2011-01-241-4/+31
| | | | | | | | | | | | | | Changed the Asus A52J quirk to use the asus model instead of the hp_laptop model, which fixes the external mic input. Added an Asus U50F quirk to use the asus model. For the cxt5066 codecs, added checking of the digital output pins to determine which digital output nodes to use instead of always using node 0x21, since some systems have node 0x12 connected to a SPDIF out jack. [A slight modification for better readability by tiwai] Signed-off-by: Andy Robinson <ajr55555@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Add a new model "asus" for Conexant 5066/205xxDavid Henningsson2011-01-221-1/+23
| | | | | | | | | | | BugLink: http://bugs.launchpad.net/bugs/701271 This new model, named "asus", is identical to the "hp_laptop" model, except for the location of the internal mic, which is at pin 0x1a. It is used for Asus K52JU and Lenovo G560. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Refactor some redundant code for Conexant 5066/205xxDavid Henningsson2011-01-221-58/+23
| | | | | | | | | Four very similar procedures - one for each model - now refactored into one. This isn't all duplicated code, but a step in the right direction. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - consitify string arraysTakashi Iwai2011-01-181-7/+7
| | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda: Use vostro model quirk for Dell Vostro 1014Daniel T Chen2011-01-101-0/+1
| | | | | | | | | | | | | BugLink: https://bugtrack.alsa-project.org/alsa-bug/view.php?id=5184 A user reported on the alsa-devel mailing list that he needs to use the vostro model quirk to have audible playback, so apply it for his PCI SSID. Reported-and-tested-by: Fernando Lemos <fernandotcl@gmail.com> Cc: <stable@kernel.org> Signed-off-by: Daniel T Chen <crimsun@ubuntu.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Add Lenovo vendor quirk for Conexant 205xxDavid Henningsson2011-01-101-8/+1
| | | | | | | | | | | BugLink: http://bugs.launchpad.net/bugs/689036 Many new Lenovos need the ideapad quirk. Also, since the auto parser for this chip is far from optimal, the regression risk is low (although not zero). Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Rename "Mic Boost" to "Mic Boost Volume"David Henningsson2011-01-101-1/+1
| | | | | | | | | | | | | | BugLink: http://bugs.launchpad.net/bugs/697240 If the "Volume" suffix is not given, alsa-lib gets confused and loses the dB information at the simple element level. Boosts generally affects both playback and capture, as they are applied early in the chain. Hence no "Playback" or "Capture" in the suffix. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Rename "Ext Mic" and "External Mic" to "Mic"David Henningsson2010-12-201-14/+14
| | | | | | | | Usually external microphones are just labelled "Mic", so rename "Ext Mic" and "External Mic" to "Mic" to clear up the namespace. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>