summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
Commit message (Collapse)AuthorAgeFilesLines
...
* | ALSA: hda/realtek - Change EAPD to verb controlKailang Yang2014-11-121-30/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will fix no sound in Linux system after reboot from windows. Change log: - alc662_fill_coef() is replaced with alc_fill_eapd_coef_idx() and move into alc_auto_init_amp(). - For ALC262, ALC267, ALC268, ALC269, ALC233, ALC255, ALC280, ALC282, ALC283, ALC284, ALC285, ALC286, ALC288, ALC290, ALC292, ALC293, ALC294, ALC668, ALC888VC, ALC888VD, ALC891, ALC892, ALC898 and ALC1150, add update COEF control for EAPD setting. - Remove alc269_fill_coef() for update EAPD control line. ADDITIONAL NOTE: Many Realtek cdoecs have a COEF bit to switch the master amp control between COEF and EAPD. Windows drivers seem using COEF while we use EAPD, which is more standard. As a result, some system suffer from the silent output when booting after Windows. This patch sets the COEF bits on the relevant codecs properly to switch to EAPD control. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=87771 Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Restore default value for ALC668Kailang Yang2014-11-061-2/+38
|/ | | | | | | | | Restore the registers to prevent the abnormal digital power supply rising ratio/sequence to the codec and causing the incorrect default codec register restoration during initialization. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - fix mute led problem for three HP laptopsHui Wang2014-11-051-3/+0
| | | | | | | | | | | | | | | | | | | Without the fix, the mute led can't work on these three machines. After apply this fix, these three machines will fall back on the led control quirk as below, and through testing, the mute led works very well. PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED, ALC282_STANDARD_PINS, {0x12, 0x90a60140}, ... BugLink: https://bugs.launchpad.net/bugs/1389497 Tested-by: TieFu Chen <tienfu.chen@canonical.com> Cc: Kailang Yang <kailang@realtek.com> Cc: stable@vger.kernel.org Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda/realtek - Update Initial AMP for EAPD controlKailang Yang2014-10-301-24/+10
| | | | | | | | | | | | | | | | | | | | | | | | The default EAPD control uses verb command to control EAPD. Some codec does not have verb command for EAPD. It needs to control by hidden register. This update will avoid wrong behavior for some codec. This patch will fix double setup for EAPD. It just needs to turn on by one site for verb command or hidden register controlled. Detailed changes: - alc889_coef_init() is replaced with alc_update_coef_idx() with a correct COEF value. - for ALC262, ALC887 and ALC900, the EAPD setup via the hidden register is removed because this rather conflicts with the EAPD verb setup. - For ALC888-VC, also the hidden register access is removed in alc888_coef_init(). - Remove the dead #if 0 code for ALC267/ALC268. Signed-off-by: Kailang Yang <kailang@realtek.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - change three SSID quirks to one pin quirkDavid Henningsson2014-10-301-3/+13
| | | | | | | | These three HP machines all have the same pin config, so we can change it to a pin quirk. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Set GPIO 4 low for a few HP machinesDavid Henningsson2014-10-301-4/+29
| | | | | | | | | | | These HP machines needs GPIO 4 low to enable the headphone amplifier. In addition, we still need to control LEDs via vref and GPIO. Cc: stable@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1387128 Tested-by: TienFu Chen <tienfu.chen@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add ultra dock support for Thinkpad X240.Lukas Bossard2014-10-301-1/+1
| | | | | | | | | Adding ultra doch support for Lenovo Thinkpad X240 (17aa:2214). [Actually replaced the entry with ALC292_FIXUP_TPT440_DOCK -- tiwai] Signed-off-by: Lukas Bossard <mr.bobukas@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda/realtek - New SSID for Headset quirkKailang Yang2014-10-271-0/+1
| | | | | | | | | It is lite version of AIO machine(0x0626). The audio layout of this machine was similar with SSID 0x0626. The audio was same as commit ad8ff99e6beb8708b0bdefd9d5658324e90200f0. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda/realtek - Update restore default value for ALC283Kailang Yang2014-10-241-1/+2
| | | | | | | | | | | Update two records for ALC283 for restore default value. [The update doesn't seem to have high impact on the existing machines, but it fixes possible issues, especially expected in BIOS changes on new machines, according to Realtek -- tiwai] Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda/realtek - Update restore default value for ALC282Kailang Yang2014-10-241-1/+1
| | | | | | | | | | | Update default value for ALC282 for COEF. [The update doesn't seem to have high impact on the existing machines, but it fixes possible issues, especially expected in BIOS changes on new machines, according to Realtek -- tiwai] Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix inverted LED gpio setup for Lenovo IdeapadTakashi Iwai2014-10-201-2/+2
| | | | | | | | | | We implemented in a wrong way for mute LED on Lenovo Ideapad; the bit must be flipped. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16373 Fixes: 3e887f379d8a ('ALSA: hda - Add mute LED support to Lenovo Ideapad') Cc: <stable@vger.kernel.org> # 3.15+ Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: ALC283 codec - Avoid pop noise on headphones during suspend/resumeHarsha Priya2014-10-201-0/+3
| | | | | | | | | This patch sets the headphones mode to default before suspending which helps avoid the pop noise on headphones Signed-off-by: Harsha Priya <harshapriya.n@intel.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add dock port support to Thinkpad L440 (71aa:501e)Takashi Iwai2014-10-081-0/+1
| | | | | | | Yet another Thinkpad model that has a dock port. Reported-by: Sascha Wilde <wilde@intevation.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add dock support for Thinkpad T440 (17aa:2212)Takashi Iwai2014-10-071-1/+1
| | | | | | | | There is another Thinkpad T440 with SSID 17aa:2212 that has a dock port. Reported-by: Siwei Luo <sluo@smartbeans.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Make the inv dmic handling for Realtek use generic parserDavid Henningsson2014-10-071-150/+8
| | | | | | | | | From what I can see, the generic parser is now good enough to handle Realtek's inverted dmic handling, so let's remove the special handling and use the generic parser instead. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add Inverted Internal mic for Samsung Ativ book 9 (NP900X3G)David Henningsson2014-10-071-0/+1
| | | | | | | | | | | | In this case, it looks like the right channel records noise rather than the inverted signal, but the simplest way is to just call it "Inverted Internal Mic", which will cause it to be muted by default. Alsa-info at http://www.alsa-project.org/db/?f=064f0b536a1b068efd30d58c2641b5ec2348f059 BugLink: https://bugs.launchpad.net/bugs/1316518 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Allow multiple callbacks for jackTakashi Iwai2014-09-161-5/+7
| | | | | | | | | | | | | | | | | | | So far, hda_jack infrastructure allows only one callback per jack, and this makes things slightly complicated when a driver wants to assign multiple tasks to a jack, e.g. the standard auto-mute with a power up/down sequence. This can be simplified if the hda_jack accepts multiple callbacks. This patch is such an extension: the callback-specific part (the function and private_data) is split to another struct from hda_jack_tbl, and multiple such objects can be assigned to a single hda_jack_tbl entry. The new struct hda_jack_callback is passed to each callback function now, thus the patch became bigger than expected. But these changes are mostly trivial. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Get rid of action field from struct hda_jack_tblTakashi Iwai2014-09-111-6/+3
| | | | | | | | | | | | | | | The action value assigned to each hda_jack_tbl entry is mostly superfluous. The actually used values are either the widget NID or a value specific to the callback. The former case can be simply replaced by a reference to widget NID itself. The only place doing the latter is STAC/IDT codec driver for the powermap handling. But, the code doesn't need to check the action field at all -- the function jack_update_power() is called either with a specific pin or with NULL. So the check of jack->action can be removed completely there, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'for-linus' into for-nextTakashi Iwai2014-09-111-0/+20
|\ | | | | | | | | Merging for-linus branch for syncing the latest STAC/IDT codec changes to be affected by the upcoming hda-jack rewrites.
| * ALSA: hda - Fix COEF setups for ALC1150 codecTakashi Iwai2014-09-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | ALC1150 codec seems to need the COEF- and PLL-setups just like its compatible ALC882 codec. Some machines (e.g. SunMicro X10SAT) show the problem like too low output volumes unless the COEF setup is applied. Reported-and-tested-by: Dana Goyette <danagoyette@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Set up initial pins for Acer Aspire V5Takashi Iwai2014-08-271-0/+18
| | | | | | | | | | | | | | | | | | Acer Aspire V5 doesn't set up the pins correctly at the cold boot while the pins are corrected after the warm reboot. This patch gives the proper pin configs statically in the driver as a workaround. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81561 Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Make the ALC269 pin quirk table shorterDavid Henningsson2014-09-031-171/+40
| | | | | | | | | | | | | | ...by factoring out common parts to the just added pin macros. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add common pin macros for ALC269 familyDavid Henningsson2014-09-031-0/+31
| | | | | | | | | | | | | | This will be used in a later patch to make the pin quirk table shorter. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - move HP_GPIO_MIC1_LED quirk for alc280Hui Wang2014-09-031-8/+13
| | | | | | | | | | | | Cc: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - move HP_LINE1_MIC1_LED quirk for alc282Hui Wang2014-09-031-9/+11
| | | | | | | | | | | | Cc: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - move HP_MUTE_LED_MIC1 quirk for alc290Hui Wang2014-09-031-13/+91
| | | | | | | | | | | | Cc: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - move HP_MUTE_LED_MIC1 quirk for alc282Hui Wang2014-09-031-24/+55
| | | | | | | | | | | | Cc: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - move DELL2_MIC_NO_PRESENCE quirk for alc255Hui Wang2014-09-031-2/+11
| | | | | | | | | | | | Cc: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - move DELL1_MIC_NO_PRESENCE quirk for alc255Hui Wang2014-09-031-1/+0
| | | | | | | | | | | | Cc: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - move DELL1_MIC_NO_PRESENCE quirk for alc283Hui Wang2014-09-031-21/+11
| | | | | | | | | | | | Cc: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - move DELL2_MIC_NO_PRESENCE quirk for alc292Hui Wang2014-09-031-11/+24
| | | | | | | | | | | | Cc: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Use tables for batch COEF writes/updtesTakashi Iwai2014-08-191-245/+314
| | | | | | | | | | | | | | There are many codes doing writes or updates COEF verbs sequentially in a batch. Rewrite such open codes with tables for optimization. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Add alc_update_coef*_idx() helperTakashi Iwai2014-08-191-195/+82
| | | | | | | | | | | | ... and rewrite a few open codes with them. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Use alc_write_coef_idx() in alc269_quanta_automake()Takashi Iwai2014-08-191-9/+2
| | | | | | | | | | | | Just a refactoring. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Optimize alc888_coef_init()Takashi Iwai2014-08-191-51/+40
|/ | | | | | Just a refactoring using the existing helper functions. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - restore the gpio led after resumeHui Wang2014-08-191-0/+9
| | | | | | | | | | | | | | | | | | | | | | | On some HP laptops, the mute led is controlled by codec gpio. When some machine resume from s3/s4, the codec gpio data will be cleared to 0 by BIOS: Before suspend: IO[3]: enable=1, dir=1, wake=0, sticky=0, data=1, unsol=0 After resume: IO[3]: enable=1, dir=1, wake=0, sticky=0, data=0, unsol=0 To skip the AFG node to enter D3 can't fix this problem. A workaround is to restore the gpio data when the system resume back from s3/s4. It is safe even on the machines without this problem. BugLink: https://bugs.launchpad.net/bugs/1358116 Tested-by: Franz Hsieh <franz.hsieh@canonical.com> Cc: stable@vger.kernel.org Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda/realtek - Avoid setting wrong COEF on ALC269 & coTakashi Iwai2014-08-161-5/+12
| | | | | | | | | | | | | | | | | | ALC269 & co have many vendor-specific setups with COEF verbs. However, some verbs seem specific to some codec versions and they result in the codec stalling. Typically, such a case can be avoided by checking the return value from reading a COEF. If the return value is -1, it implies that the COEF is invalid, thus it shouldn't be written. This patch adds the invalid COEF checks in appropriate places accessing ALC269 and its variants. The patch actually fixes the resume problem on Acer AO725 laptop. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=52181 Tested-by: Francesco Muzio <muziofg@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix pop noises on reboot for Dell XPS 13 9333Gabriele Mazzotta2014-08-101-1/+1
| | | | | | | | | | If nid 0x15 (Headphone Playback Switch) is in D3 and headphones are plugged in when the laptop reboots, a pop noise is generated. Prevent this by keeping nid 0x15 in D0 when headphones are plugged in. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=76611 Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Set internal mic as default input source on Dell XPS 13 9333Gabriele Mazzotta2014-08-101-0/+11
| | | | | | | | | | | | | | If the laptop is powered on with a jack plugged in, independently on what is plugged, the jack is treated as a microphone jack. Initialize the capture source so that by default jacks are treated as headphones jacks. This will also prevent pop noises on boot in case headphones are plugged in since setting/unsetting mic-in as input source causes a pop noise. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=76611 Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda/realtek - Fixed ALC286/ALC288 recording delay for Headset MicKailang Yang2014-08-071-0/+22
| | | | | | | | | | | It will be recording voice delay for resume back recording for Headset Mic. This alc286 will quickly open Headset Mic, to prevent avoid recording files are missing. The issue was fixed. This is follow ALC286 programing guide. [fix build error, add static and renamed the function by tiwai] Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - add mic mute led hook for dell machinesHui Wang2014-07-311-0/+13
| | | | | | | | | | The mic mute led on dell laptops is controlled by the wmi driver. Followed this part being merged to the kernel, we add the mic mute led hook in the hda driver. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix loopback noise on Dell XPS 15Takashi Iwai2014-07-221-0/+1
| | | | | | | | | | | Dell XPS 15 (1028:05fe) gives the bad feedback noise from analog loopback line even if the channels are muted. The similar problem has been seen on XPS 13, and it was fixed by simply disabling loopback. The same fixup was confirmed to be applicable and fix the problem on XPS 15, too. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=80821 Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Make vendor quirks lowest prio for ALC2xxDavid Henningsson2014-07-221-4/+10
| | | | | | | | Add a new quirk table to make sure that pin quirks have a higher priority than quirks that apply to an entire vendor. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add mic fixup for Gigabyte BXBT-2807Daniel Drake2014-07-221-0/+9
| | | | | | | | | | | | | | | | | | | | The Gigabyte BRIX BXBT-2707 is a mini-PC with Realtek ALC283 HDA, exposing a single headset jack. However, the default pin config information only suggests that one pin is connected: a HP out jack (pin 0x21, default config 0x04211010). The microphone input is behind pin 0x19, which has default config 0x411111f0 (i.e. unused), so it does not show up in userspace, and no microphone input is possible via the headset. Override the pin config so that the headset mic can be used. [rearranged the fixup entry position by tiwai] Signed-off-by: Daniel Drake <drake@endlessm.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add mute LED pin quirk for HP 15 touchsmartDavid Henningsson2014-07-221-0/+11
| | | | | | | | This makes the mute LED work on a HP 15 touchsmart machine. BugLink: https://bugs.launchpad.net/bugs/1334950 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - add capture mute led support in led_power_filterHui Wang2014-07-081-1/+3
| | | | | | | | | | | | | Now the led_power_filter() needs to handle 3 situations: - only mute_led_nid is set - only cap_mute_led_nid is set - both mute_led_ind and cap_mute_led_nid are set BugLink: https://bugs.launchpad.net/bugs/1329580 Cc: David Henningsson <david.henningsson@canonical.com> Cc: Kailang Yang <kailang@realtek.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - fix a typo by changing mute_led_nid to cap_mute_led_nidHui Wang2014-07-081-1/+1
| | | | | | | | BugLink: https://bugs.launchpad.net/bugs/1329580 Cc: David Henningsson <david.henningsson@canonical.com> Cc: Kailang Yang <kailang@realtek.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add several entries for enabling HP mute ledHui Wang2014-07-071-0/+4
| | | | | | BugLink: https://bugs.launchpad.net/bugs/1329580 Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'for-linus' into for-nextTakashi Iwai2014-07-041-0/+13
|\ | | | | | | | | Conflicts: sound/pci/hda/hda_intel.c
| * ALSA: hda - Add a fixup for Thinkpad T540pTakashi Iwai2014-06-271-0/+1
| | | | | | | | | | | | | | | | The similar fixup as T440 is needed for supporting the dock on T540. Reported-by: Jim Minter <jminter@redhat.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
OpenPOWER on IntegriCloud