summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_conexant.c
Commit message (Collapse)AuthorAgeFilesLines
* ALSA: hda - Fix GPIO for Acer Aspire 3830TGTakashi Iwai2013-09-301-0/+11
| | | | | | | | | | | | Acer Aspire 3830TG seems requiring GPIO bit 0 as the primary mute control. When a machine is booted after Windows 8, the GPIO pin is turned off and it results in the silent output. This patch adds the manual fixup of GPIO bit 0 for this model. Reported-by: Christopher <DIDI2002@web.de> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Headphone mic support for an Asus/Conexant deviceDavid Henningsson2013-07-161-1/+78
| | | | | | | | | | | | | | This Conexant codec has a single jack that can be used as either headphone or mic (but not headset). The existing hp_mic functionality does not apply here, because the mic and the HP are on separate pins. Hence make a lighter version of what has been earlier done for Realtek codecs. BugLink: https://bugs.launchpad.net/bugs/1198030 Tested-by: Franz Hsieh <franz.hsieh@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Make Thinkpad X220-tablet use generic parserDavid Henningsson2013-06-201-1/+1
| | | | | | | | | | | | Like the X220, this quirk was added to support docking station, so enable the fixup instead. According to Jan, the generic parser works equal or better than the current parser. This was tested under a 3.9 kernel. Reported-by: Jan Alexander Steffens <jan.steffens@gmail.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix 3.9 regression of EAPD init on Conexant codecsTakashi Iwai2013-05-041-3/+14
| | | | | | | | | | | | | | The older Conexant codecs have up to two EAPDs and these are supposed to be rather statically turned on. The new generic parser code assumes the dynamic on/off per path usage, thus it resulted in the silent output on some machines. This patch fixes the problem by simply assuming the static EAPD on for such old Conexant codecs as we did until 3.8 kernel. Reported-and-tested-by: Christopher K. <c.krooss@gmail.com> Cc: <stable@vger.kernel.org> [v3.9] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Move Thinkpad X220 to use auto parserDavid Henningsson2013-04-291-1/+1
| | | | | | | | | | This enables better volume controls than the current model parser. Also, because the original quirk for X220 was added to fix docking station support, add the TP410 fixup instead. Reported-by: Willian Jon McCann <william.jon.mccann@gmail.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Move beep attach/detach calls in hda_generic.cTakashi Iwai2013-03-181-11/+7
| | | | | | | | | Instead of calling snd_hda_attach_beep_device() and snd_hda_detach_beep_device() in each codec driver, move them to the generic parser. The codec driver just needs to set spec->beep_nid for activating the digital beep. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'for-linus' into for-nextTakashi Iwai2013-03-181-5/+11
|\ | | | | | | Back-merged for refactoring beep stuff.
| * ALSA: hda/cirrus - Fix the digital beep registrationTakashi Iwai2013-03-181-4/+4
| | | | | | | | | | | | | | | | The argument passed to snd_hda_attach_beep_device() is a widget NID while spec->beep_amp holds the composed value for amp controls. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix missing beep detach in patch_conexant.cTakashi Iwai2013-03-181-1/+7
| | | | | | | | | | | | | | | | This leaks the beep input device after module unload, which leads to Oops. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=55321 Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Don't apply EAPD power filter as defaultTakashi Iwai2013-03-131-1/+0
|/ | | | | | | | | | | | | | | | | | | | | So far, the driver doesn't power down the widget at going down to D3 when the widget node has an EAPD capability and EAPD is actually set on all codecs unless codec->power_filter is set explicitly. This caused a problem on some Conexant codecs, leading to click noises, and we set it as NULL there. But it is very unlikely that the problem hits only these codecs. Looking back at the development history, this workaround for EAPD was introduced just for some laptops with STAC9200 codec, then we applied it blindly for all. Now, since it's revealed to have an ill effect, we should disable this workaround per default and apply only for the known requiring systems. The EAPD workaround is implemented now as snd_hda_codec_eapd_power_filter(), and this has to be set explicitly by the codec driver when needed. As of now, only patch_stac9200() sets this one. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Remove speaker clicks on CX20549David Henningsson2013-02-141-0/+1
| | | | | | | | | | | | | | | This chip needs the speaker pin to go to D3 to avoid clicks, so default_power_filter does not work here. This was found on Thinkpad R61i/T61i but I guess it applies to the entire chip. If not, quirks should be set for at least PCI SSID 17aa:20ac. Thanks to c4pp4 for testing. BugLink: https://bugs.launchpad.net/bugs/886975 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add power state filteringTakashi Iwai2013-01-241-1/+1
| | | | | | | | | | | | Add a hook to struct hda_codec for filtering the target power state of each widget when powering up/down. The current hackish EAPD check is implemented as the default hook pointer, too. This allows codec drivers to implement own power filter. In the upcoming changes, the generic parser will have the better power filter based on the active paths. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'topic/hda-gen-parser' into for-nextTakashi Iwai2013-01-231-1275/+100
|\ | | | | | | | | | | | | | | | | | | This is a merge of really big changes: the generic parser is heavily enhanced for handling all cases, based on the former Realtek codec driver code. And all codec drivers except for a few ones (CA0132, HDMI and modem) have been converted to use the new generic driver. Conflicts: sound/pci/hda/patch_realtek.c
| * ALSA: hda/conexant - Set mixer NID 0x19 for CX20551 codecTakashi Iwai2013-01-181-0/+7
| | | | | | | | | | | | | | Conexant CX20551 codec has a mixer in NID 0x19 and a few outputs have to take the input through this widget. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Rearrange for dropping static quirk codes in Coexant driverTakashi Iwai2013-01-121-43/+57
| | | | | | | | | | | | | | | | | | | | Just shuffle the codes and add ifdefs for testing to drop the static quirk codes from patch_conexant.c. By commenting out ENABLE_CXT_STATIC_QUIRKS define at the beginning of the file, you can disable the whole static codes. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Use generic parser in Conexant codec driverTakashi Iwai2013-01-121-1253/+61
| | | | | | | | | | | | | | | | ... and drop most of own parser code. It doesn't replace any present static quirks, though. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Move fixup code into struct hda_codecTakashi Iwai2013-01-121-5/+1
| | | | | | | | | | | | | | Since the fixup code is used commonly, it's worth to move it to the common place, struct hda_codec, instead of keeping in hda_gen_spec. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add Conexant CX20755/20756/20757 codec IDsTakashi Iwai2013-01-211-0/+9
|/ | | | | | | These are just compatible with other CX2075x codecs. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Revert "ALSA: hda - Shut up pins at power-saving mode with Conexnat codecs"David Henningsson2013-01-091-16/+0
| | | | | | | | | | | | | | This reverts commit 697c373e34613609cb5450f98b91fefb6e910588. The original patch was meant to remove clicking, but in fact caused even more clicking instead. Thanks to c4pp4 for doing most of the work with this bug. BugLink: https://bugs.launchpad.net/bugs/886975 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add stereo-dmic fixup for Acer Aspire One 522Takashi Iwai2012-12-121-0/+1
| | | | | | | | | | Acer Aspire One 522 has the infamous digital mic unit that needs the phase inversion fixup for stereo. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=715737 Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add a helper function for simple enum kcontrolsTakashi Iwai2012-11-301-18/+3
| | | | | | | The same type of code is being used in multiple places in various codec drivers, so put it as a core library. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Apply a proper chmap for built-in 2.1 speakersTakashi Iwai2012-11-081-0/+5
| | | | | | | When 2.1 speakers are detected, use the corresponding channel map instead of the standard map with front+rear surrounds. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Give standard "Bass Speaker" mixer for 2.1 speakersTakashi Iwai2012-11-081-3/+25
| | | | | | | | When two built-in speakers are found on the machine, we can suppose it's rather a 2.1 speaker system with a bass output instead of front/surround channels. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Make hda sound card usable for LoongsonHuacai Chen2012-10-151-0/+44
| | | | | | | | | | | | | | Lemote A1004(Laptop) and A1205(All-In-One) use Conexant's hda codec, this patch modify patch_conexant.c to add Lemote specific code. Both A1004 and A1205 use the same pin configurations, but A1004 need to increase the default boost of internal mic. Signed-off-by: Jie Chen <chenj@lemote.com> Signed-off-by: Huacai Chen <chenhc@lemote.com> Signed-off-by: Hongliang Tao <taohl@lemote.com> Signed-off-by: Hua Yan <yanh@lemote.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - fix indices on boost volume on ConexantDavid Henningsson2012-10-061-1/+1
| | | | | | | | | | | | After the recent patch "ALSA: hda - use both input paths on Conexant auto parser" suddenly we can have more than one "Mic Boost", this happened on Acer Aspire One 722. Therefore we must add the possibility to put an index on this "Mic Boost" just as we do for the other "Mic Boost" earlier in the same function. BugLink: https://bugs.launchpad.net/bugs/1059523 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310Felix Kaechele2012-10-061-0/+1
| | | | | | | | | The Lenovo IdeaPad U310 has an internal mic where the right channel is phase inverted. Signed-off-by: Felix Kaechele <felix@fetzig.org> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - make Realtek/Sigmatel/Conexant use the generic unsol eventDavid Henningsson2012-10-061-29/+15
| | | | | | | | For less duplication of code between codecs, and to make it easier in the future to improve code for all codecs simultaneously. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - use both input paths on Conexant auto parserDavid Henningsson2012-09-201-4/+16
| | | | | | | | | | | | | | | | | On the Thinkpad W520 - and probably several other machines with Conexant 506x chips - the Dock Mic and Mic are connected to the same two selector nodes. This patch will make Dock Mic take one selector node and Mic take the other, when possible. Without the patch, both paths would take the first selector, leading to the normal Mic's volume being controlled by "Dock Mic Boost". (On other machines, this could instead fixup similar problems between Mic and Line In, for example.) BugLink: https://bugs.launchpad.net/bugs/1037642 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - avoid non-standard "Docking" name in mixersDavid Henningsson2012-09-191-2/+2
| | | | | | | | The standard name (and what PulseAudio picks up) is "Dock Mic", not "Docking Mic" or "Docking-Station". Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVETakashi Iwai2012-08-301-3/+3
| | | | | | | | CONFIG_SND_HDA_POWER_SAVE is no longer an experimental feature and its behavior can be well controlled via the default value and module parameter. Let's just replace it with the standard CONFIG_PM. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Call snd_hda_jack_report_sync() generically in hda_codec.cTakashi Iwai2012-08-221-1/+0
| | | | | | | | | Instead of calling the jack sync in the init callback of each codec, call it generically at initialization and resume. By calling it at the last of resume sequence, a possible race between the jack sync and the unsol event enablement in the current code will be closed, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - remove redundant auto quirks for conexant 506xDavid Henningsson2012-08-071-5/+0
| | | | | | | | Now that the auto model is the default, these quirks are redundant and can be removed. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - remove quirk for Dell Vostro 1015David Henningsson2012-08-071-1/+0
| | | | | | | | | This computer is confirmed working with model=auto on kernel 3.2. Also, parsing fails with hda-emu with the current model. Cc: stable@kernel.org (3.2+) Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: Convert to new pm_ops for PCI driversTakashi Iwai2012-07-031-1/+1
| | | | | | | | | | Straightforward conversion to the new pm_ops from the legacy suspend/resume ops. Since we change vx222, vx_core and vxpocket have to be converted, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix memory leaks in Realtek & Conexant codec parsersTakashi Iwai2012-06-261-1/+4
| | | | | | When moved to the helper code, forgot to release the verb arrays. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA: Add inverted internal mic quirk for Lenovo S205David Henningsson2012-06-211-0/+1
| | | | | | | | | The Lenovo Ideapad S205 has an internal mic where the right channel is phase inverted. BugLink: https://bugs.launchpad.net/bugs/884652 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Don't forget to call init verbs added by fixup listTakashi Iwai2012-06-131-1/+1
| | | | | | | | | During the split to the auto-parser helper functions, the actual call of init verbs was lost. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43366 Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda/conexant - Correct vendor IDs for new codecsTakashi Iwai2012-05-121-6/+9
| | | | | | Never trust datasheet... Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add Conexant CX20751/2/3/4 codec supportTakashi Iwai2012-05-101-0/+6
| | | | | | These are almost compatible with the older Conexant codecs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Move up the fixup helper functions to the library moduleTakashi Iwai2012-05-081-37/+25
| | | | | | | 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>
* ALSA: hda - Add snd_hda_get_default_vref() helper functionTakashi Iwai2012-04-201-5/+4
| | | | | | | | 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>
* ALSA: hda - Introduce snd_hda_set_pin_ctl*() helper functionsTakashi Iwai2012-04-201-29/+15
| | | | | | | | | | | | | | | 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>
* Merge branch 'fix/hda' into topic/hdaTakashi Iwai2012-04-191-5/+30
|\ | | | | | | | | | | | | Conflicts: sound/pci/hda/patch_conexant.c Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * Merge branch 'fix/cxt-stable' into fix/hdaTakashi Iwai2012-04-191-5/+30
| |\ | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * ALSA: hda/conexant - Set up the missing docking-station pinsTakashi Iwai2012-04-191-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| | * ALSA: hda/conexant - Don't set HP pin-control bit unconditionallyTakashi Iwai2012-04-191-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Merge tag 'asoc-3.4' of ↵Takashi Iwai2012-04-071-1/+1
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: fixes for 3.4 A bunch of driver-specific fixes and one generic fix for the new support for platform DAPM contexts - we were picking the wrong default for the idle_bias_off setting which was meaning we weren't actually achieving any useful runtime PM on platform devices.
* | | | ALSA: hda - Fix oops caused by recent commit "Fix internal mic for Lenovo ↵David Henningsson2012-04-101-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ideapad U300s" Make sure we don't dereference the "quirk" pointer when it is null. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2012-04-071-67/+41
|\ \ \ \ | |/ / / | | | | | | | | | | | | Conflicts: sound/pci/hda/patch_conexant.c
| * | | ALSA: hda - clean up CX20549 test mixer setupMichael Karcher2012-04-071-21/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | name pins consistently (MIC1/LINE1/HP-OUT/CD) on all controls affecting those pins. remove duplicate SET_AMP_GAIN_MUTE to 0x17/index 0 and 0x17/index 1 really select MIC1, not Mixer out for recording "Mixer out" for recording is not a "pin", adjust comment Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
OpenPOWER on IntegriCloud