aboutsummaryrefslogtreecommitdiff
path: root/sound/pci/hda/patch_conexant.c
AgeCommit message (Collapse)Author
2012-04-27ALSA: hda/conexant - Don't set HP pin-control bit unconditionallyTakashi Iwai
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>
2012-03-12ALSA: hda - Add a fake mute featureTakashi Iwai
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>
2012-02-29ALSA: hda - Fix redundant jack creations for cx5051Takashi Iwai
[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>
2011-11-11ALSA: hda - Fix ADC input-amp handling for Cx20549 codecTakashi Iwai
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>
2011-10-25ALSA: HDA: conexant support for Lenovo T520/W520Daniel Suchy
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>
2011-06-28ALSA: HDA: Add model=auto quirk for Acer Aspire 3830TGDavid Henningsson
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>
2011-06-28ALSA: HDA: Add a new Conexant codec ID (506c)David Henningsson
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>
2011-06-10ALSA: hda: Fix inaudible internal speakers on CyberpowerPC Gamer Xplorer ↵Daniel T Chen
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>
2011-05-25ALSA: hda - Use model=auto for Lenovo G555Takashi Iwai
The new auto-parser fixes problems on Lenovo G555. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-24ALSA: hda - Fix speaker auto-mute in Cxt auto-parserTakashi Iwai
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>
2011-05-23ALSA: hda - Fix initial capture-source with auto-mic for Cxt auto-parserTakashi Iwai
Fix the initialization of capture-source route when auto-mic is enabled for Conexant auto-parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-23ALSA: hda - Fix auto-mic detection in Conexant codec-parserTakashi Iwai
Fix the auto-mic detection for Cxt auto-parser due to off-by-one missing initialization. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-23ALSA: HDA: Add quirk for Lenovo U350David Henningsson
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>
2011-05-17ALSA: hda - Handle dock line-in as auto-detecable for Cxt auto-parserTakashi Iwai
Similar process like in patch_realtek.c and patch_sigmatel.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-17ALSA: hda - Add support of dock-mic detection to Conexant auto-parserTakashi Iwai
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>
2011-05-17ALSA: hda - Add automute-mode enum to Conexant auto-parserTakashi Iwai
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>
2011-05-17ALSA: hda - Add missing Front/Surround/CLFE as slaves for Cxt auto-parserTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-17ALSA: hda - Code refactoring in patch_conexant.cTakashi Iwai
Use a struct instead of each array for managing input-source info for auto-parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-16ALSA: hda - Add support of auto-parser to cxt5066 codecsTakashi Iwai
Still experimental. Not enabled as default unless model=auto is passed. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-16ALSA: hda - Don't create multiple same volume/boost controls in Cxt auto-parserTakashi Iwai
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>
2011-05-16ALSA: hda - Build boost controls from selector widget in Cxt auto-parserTakashi Iwai
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>
2011-05-15ALSA: hda - Don't use auto-parser for cxt5045 / 5051 as defaultTakashi Iwai
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>
2011-05-15ALSA: hda - Enable codec->pin_amp_workaround always for Conexant auto-parserTakashi Iwai
It can (must for some) be used for all Conexnat codecs safely. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-15ALSA: hda - Search ADC NIDs dynamically in Conexant auto-parserTakashi Iwai
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>
2011-05-13ALSA: hda - Add support of auto-parser to cxt5047 / CX20551 WaikikiTakashi Iwai
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>
2011-05-13ALSA: hda - Parse more deep input-source routes in Conexant auto-parserTakashi Iwai
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>
2011-05-13ALSA: hda - Clean up input-mux handling in Conexant auto-parserTakashi Iwai
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>
2011-05-13ALSA: hda - Add auto-parser support to cxt5045 / CX20549 VeniceTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-13ALSA: hda - Add auto-parser support to cxt5051 / CX20561 HermosaTakashi Iwai
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>
2011-05-13ALSA: hda - Check AMP CAP at initialization of Conexant auto-parserTakashi Iwai
Some codecs have no mute caps in audio I/O widgets. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-13ALSA: hda - Turn on EAPD dynamically per jack plug in Conexant auto modeTakashi Iwai
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>
2011-05-13ALSA: hda - Fix auto-mic for CX2064x codecsTakashi Iwai
The wrong id is assigned for external/internal mics in the auto-mic selection parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-05-02ALSA: hda - Constify fixup and other array data in patch_conexant.cTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-04-05ALSA: HDA: Fix dock mic for Lenovo X220-tabletDavid Henningsson
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>
2011-03-31ALSA: HDA: Add dock mic quirk for Lenovo Thinkpad X220David Henningsson
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>
2011-03-03ALSA: hda - Make common input-jack helper functionsTakashi Iwai
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>
2011-02-23ALSA: HDA: Add ideapad quirk for two Dell machinesDavid Henningsson
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>
2011-02-23ALSA: HDA: Add a new Conexant codec 506e (20590)David Henningsson
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>
2011-02-19ALSA: HDA: Do not announce false surround in Conexant autoDavid Henningsson
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>
2011-02-19ALSA: HDA: Conexant auto: Handle multiple connections to ADC nodeDavid Henningsson
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>
2011-02-02ALSA: hda - Fix memory leaks in conexant jack arraysTakashi Iwai
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>
2011-01-28ALSA: HDA: Fix microphone(s) on Lenovo Edge 13David Henningsson
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>
2011-01-24ALSA: HDA: cxt5066 - Use asus model for Asus U50F, select correct SPDIF outputAndy Robinson
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>
2011-01-22ALSA: HDA: Add a new model "asus" for Conexant 5066/205xxDavid Henningsson
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>
2011-01-22ALSA: HDA: Refactor some redundant code for Conexant 5066/205xxDavid Henningsson
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>
2011-01-18ALSA: hda - consitify string arraysTakashi Iwai
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-01-10ALSA: hda: Use vostro model quirk for Dell Vostro 1014Daniel T Chen
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>
2011-01-10ALSA: HDA: Add Lenovo vendor quirk for Conexant 205xxDavid Henningsson
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>
2011-01-10ALSA: HDA: Rename "Mic Boost" to "Mic Boost Volume"David Henningsson
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>
2010-12-20ALSA: HDA: Rename "Ext Mic" and "External Mic" to "Mic"David Henningsson
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>