summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda
Commit message (Collapse)AuthorAgeFilesLines
* ALSA: hda - Fix regression of HDMI codec probingTakashi Iwai2012-08-061-3/+9
| | | | | | | | | | The commit c4bfe94a causes a regression on some codecs at probing. Since this was just a workaround to shut up a kernel warning, it'd be better to revert and fix properly. So we ended up with re-adding the cleanup callback. Tested-and-reported-by: Matt Horan <matt@matthoran.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - add dock support for Thinkpad T430sPhilipp A. Mohrenweiser2012-08-061-0/+1
| | | | | | | | | | | Add a model/fixup string "lenovo-dock", for Thinkpad T430s, to allow sound in docking station. Tested on Lenovo T430s with ThinkPad Mini Dock Plus Series 3 Cc: stable@kernel.org Signed-off-by: Philipp A. Mohrenweiser <phiamo@googlemail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Support dock on Lenovo Thinkpad T530 with ALC269VCTakashi Iwai2012-08-021-0/+1
| | | | | | | | | | Lenovo Thinkpad T530 with ALC269VC codec has a dock port but BIOS doesn't set up the pins properly. Enable the pins as well as on Thinkpad X230 Tablet. Reported-and-tested-by: Mario <anyc@hadiko.de> Cc: <stable@vger.kernel.org> [v3.2+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix mute-LED GPIO initialization for IDT codecsTakashi Iwai2012-07-311-1/+6
| | | | | | | | | | | | | | The IDT codecs initializes the GPIO setup for mute LEDs via snd_hda_sync_vmaster_hook(). This works in most cases except for the very first call, which is called before PCM and control creations. Thus before Master switch is set manually via alsactl, the mute LED may show the wrong state, depending on the polarity. Now it's fixed by calling the LED-status update function manually when no vmaster is set yet. Cc: <stable@vger.kernel.org> [v3.4+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix polarity of mute LED on HP Mini 210Takashi Iwai2012-07-311-0/+5
| | | | | | | | | | | The commit a3e199732b made the LED working again on HP Mini 210 but with a wrong polarity. This patch fixes the polarity for this machine, and also introduce a new model string "hp-inv-led". Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=772923 Cc: <stable@vger.kernel.org> [v3.3+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Workaround for silent output on VAIO Z with ALC889Takashi Iwai2012-07-291-1/+21
| | | | | | | | | | | | | | | | | On recent kernels, Realtek codec parser tries to optimize the routing aggressively and take the headphone output as primary at first. This caused a regression on VAIO Z with ALC889, the silent output from the speaker. The problem seems that the speaker pin must be connected to the first DAC (0x02) on this machine by some reason although the codec itself advertises the flexible routing with any DACs. This patch adds a fix-up for choosing the speaker pin as the primary so that the right DAC is assigned on this device. Reported-and-tested-by: Adam Williamson <awilliam@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix WARNING from HDMI/DP parserTakashi Iwai2012-07-271-0/+3
| | | | | | | | The recent fix to converter detaching timing in patch_hdmi.c leads to a kernel WARNING due to a sanity check when the debug option is set. Add a workaround by setting a dummy hinfo->nid. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Detach from converter at closing in patch_hdmi.cTakashi Iwai2012-07-261-7/+4
| | | | | | | | The generic HDMI code detaches the converter from the stream when unused, but it must be done rather in the close callback instead of the cleanup callback. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix mute-LED GPIO setup for HP Mini 210Takashi Iwai2012-07-261-1/+9
| | | | | | | | | | | | | | | BIOS on HP Mini 210 doesn't provide the proper "HP_Mute_LED" DMI string, thus the driver doesn't initialize the GPIO, too. In the earlier kernel, the driver falls back to GPIO1, but since 3.3 we've stopped this due to other wrongly advertised machines. For fixing this particular case, add a new model type to specify the default polarity explicitly so that the fallback to GPIO1 is handled. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=772923 Cc: <stable@vger.kernel.org> [v3.3+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix invalid D3 of headphone DAC on VT202x codecsTakashi Iwai2012-07-251-2/+5
| | | | | | | | | | | | | | We've got a bug report about the silent output from the headphone on a mobo with VT2021, and spotted out that this was because of the wrong D3 state on the DAC for the headphone output. The bug is triggered by the incomplete check for this DAC in set_widgets_power_state_vt1718S(). It checks only the connectivity of the primary output (0x27) but doesn't consider the path from the headphone pin (0x28). Now this patch fixes the problem by checking both pins for DAC 0x0b. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - add dock support for Thinkpad X230 TabletDavid Henningsson2012-07-201-0/+27
| | | | | | | | | | | | Also add a model/fixup string "lenovo-dock", so that other Thinkpad users will be able to test this fixup easily, to see if it enables dock I/O for them as well. Cc: stable@kernel.org BugLink: https://bugs.launchpad.net/bugs/1026953 Tested-by: John McCarron <john.mccarron@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Turn on PIN_OUT from hdmi playback prepare.Dylan Reid2012-07-201-6/+6
| | | | | | | | | | | | Turn on the pin widget's PIN_OUT bit from playback prepare. The pin is enabled in open, but is disabled in hdmi_init_pin which is called during system resume. This causes a system suspend/resume during playback to mute HDMI/DP. Enabling the pin in prepare instead of open allows calling snd_pcm_prepare after a system resume to restore audio. Signed-off-by: Dylan Reid <dgreid@chromium.org> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'topic/pm-convert' into for-nextTakashi Iwai2012-07-199-19/+26
|\ | | | | | | | | | | | | This merges the changes for converting to new PM ops for platform and some other drivers. Also move some header files to local places from the public include/sound.
| * ALSA: Convert to new pm_ops for PCI driversTakashi Iwai2012-07-039-19/+26
| | | | | | | | | | | | | | | | | | | | 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 - make sure alc268 does not OOPS on codec parseDavid Henningsson2012-07-181-2/+2
| | | | | | | | | | | | | | | | A recent commit made patch_alc268 call snd_hda_pick_fixup with NULL quirk pointer. Make sure we do not reference that NULL pointer. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'topic/hda' into for-nextTakashi Iwai2012-07-1812-308/+587
|\ \ | | | | | | | | | This is a large chunk merge for 3.6 HD-audio things
| * | ALSA: hda - Add support for Realtek ALC282David Henningsson2012-07-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This codec has a separate dmic path (separate dmic only ADC), and thus it looks mostly like ALC275. Cc: stable@kernel.org BugLink: https://bugs.launchpad.net/bugs/1025377 Tested-by: Ray Chen <ray.chen@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix index number conflicts of phantom jacksTakashi Iwai2012-07-171-15/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since some jack controls may be renamed as phantom jacks, the existing check for index conflicts doesn't work because it simply compares the name with the last used name, assuming that the controls with the same name continue. Thus, it would result in the duplicated controls when two or more phantom jacks with the very same type exist, and the driver gives up with an error. This patch fixes the problem by checking the index number conflicts more intensively (but dumbly). Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Add new GPU codec ID to snd-hdaAaron Plattner2012-07-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Vendor ID 0x10de0051 is used by a yet-to-be-named GPU chip. Signed-off-by: Aaron Plattner <aplattner@nvidia.com> Acked-by: Andy Ritger <aritger@nvidia.com> Reviewed-by: Daniel Dadap <ddadap@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix driver type of Haswell controller to AZX_DRIVER_SCHTakashi Iwai2012-07-161-1/+1
| | | | | | | | | | | | | | | | | | | | | According to Xingchao, This works for HDMI audio, otherwise there's blocking issue. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - add Haswell HDMI codec idWang Xingchao2012-07-161-0/+2
| | | | | | | | | | | | | | | | | | | | | 0x80862807 is HDMI id for Haswell HDA. Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Add DeviceID for Haswell HDAWang Xingchao2012-07-161-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this patch add proper id for Haswell HDA Controller. [Added AZX_DCAPS_POSFIX_COMBO flag by tiwai] Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Acked-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Always call standard unsolicited event for Realtek codecsDavid Henningsson2012-07-051-18/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the model parsers out of the way, we have no custom unsol events to worry about, we can therefore simplify the code. In addition, this fixes a bug on the ASUS TC710, which has only a headphone jack and a mic jack, but no internal mic or speakers. Therefore the unsol_event pointer was not set, and as a result, the jack kcontrols were not correctly updated. BugLink: https://bugs.launchpad.net/bugs/1021192 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | Merge branch 'topic/hda-beep' into topic/hdaTakashi Iwai2012-07-046-77/+46
| |\ \
| | * | ALSA: hda - Avoid possible race of beep on/offTakashi Iwai2012-07-031-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Call cancel_work_sync() when turning off the beep switch so that the mute call is executed in a proper order. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: hda - Get rid of superfluous beep->mode fieldTakashi Iwai2012-07-032-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It's no longer necessary since beep_mode=2 option was dropped. It can be checked simply via codec->beep != NULL. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: hda - Move beep helper functions to hda_beep.cTakashi Iwai2012-07-033-20/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move snd_hda_mixer_amp_switch_put_beep() to hda_beep.c as a clean up to remove one more ifdef. Also add the corresponding get callback to return consistently the digital beep state independently from the mixer amp value. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: hda - Remove beep_mode=2Takashi Iwai2012-07-034-47/+7
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The beep_mode=2 option was introduced to make the beep mixer controlling the beep input allocation/deallocation dynamically, so that a user can switch between HD-audio codec digital beep and the system beep only via mixer API. This was necessary because the keyboard driver took only the first input beep instance at that time. However, the recent keyboard driver already processes the multiple input instances, thus there is no point to keep this mode. Let's remove it. Acked-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - give 3-pin jack the name "Headphone Mic Jack"David Henningsson2012-06-271-2/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This 3-pin jack was labeled "Headphone Jack", but it could also be used as a mic jack just by switching "Input Source". Therefore we need to call the jack something else, to make sure PulseAudio can use the speaker together with the external mic. (PulseAudio might mute the speaker if it detects a headphone being plugged in.) Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: HDA: Support single 3-pin jack without VREF on the actual pinDavid Henningsson2012-06-271-15/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some ASUS device has a single 3-pin jack that can either be a mic or a headphone, but the pin does not have VREF capabilities. We've been told by Realtek to instead enable VREF on pin 0x18 in that case. BugLink: https://bugs.launchpad.net/bugs/1018262 Tested-by: Chih-Hsyuan Ho <chih.ho@canonical.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-06-267-22/+34
| |\ \ | | |/
| * | ALSA: hda - Remove suprefluous EAPD init verbs for ALC660vdTakashi Iwai2012-06-251-11/+0
| | | | | | | | | | | | | | | | | | The EAPD on nodes 0x14 and 0x15 are initialized in alc_auto_setup_eapd(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Add inv-dmic model to possible Realtek codecsTakashi Iwai2012-06-251-12/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For convenience, add "inv-dmic" model string for enabling the inverted internal mic workaround to possible Realtek codecs, so far, ALC882-variants, ALC262, ALC268, ALC269-variants, and ALC662-variants. Also, the model strings for hardware inv-dmic workarounds, "alc269-dmic" and "alc271-dmic", are added for ALC269(VA) and ALC271 codecs as well. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Add inverted mic quirks for Asus U41SV, Acer 1810TZ and AOD260David Henningsson2012-06-251-6/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These machines have inverted phase on right channel for their internal mics. BugLink: https://bugs.launchpad.net/bugs/997227 BugLink: https://bugs.launchpad.net/bugs/996611 BugLink: https://bugs.launchpad.net/bugs/1006089 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Add the inverted digital mic workaround to Realtek codecsTakashi Iwai2012-06-251-2/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some laptops are equipped with ForteMedia digital mics that give the differential input. With such devices, summing stereo streams into a mono (like PulseAudio does) results in almost silence. This patch provides a workaround for this bug by adding a new mixer switch to turn on/off the right channel of digital mic, just like a similar fix for Conexant codecs. When the new switch "Inverted Internal Mic Capture Switch" is off and the current input source is the digital mic, the right channel of the recording stream is muted. When another input source is selected, the right channel is restored. Tested-by: Eliot Blennerhassett <eliot@blennerhassett.gen.nz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Don't power up when not powered down.Dylan Reid2012-06-221-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | After cancel_delayed_work_sync returns, the power down work either never started (power_on == 1) or finished (power_on == 0). In the former case there is no need to power up again. Signed-off-by: Dylan Reid <dgreid@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Correct info print in HDMI non-intrinsic unsol eventTakashi Iwai2012-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | In the recent code, the value shown there is a tag number, and it's no longer same as the pin nid. Correct the message to avoid confusion. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Don't rely on event tag for simple_hdmiTakashi Iwai2012-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VIA codecs seem not returning the event tag in the unsolicited events, thus the current code relying on the tag value doesn't work. Since simple_hdmi stuff has only a single pin, we can use simply snd_hda_jack_set_dirty_all() to activate the pin-detection independently from the tag value. Tested-by: Annie Liu <AnnieLiu@viatech.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Remove loop from simple_hdmi*()Takashi Iwai2012-06-211-42/+27
| | | | | | | | | | | | | | | | | | | | | | | | The simple_hdmi stuff is designed only for a single pin and a single converter (thus a single PCM stream), and no need for loops. Let's flatten the code. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Move one-time init codes from generic_hdmi_init()Takashi Iwai2012-06-201-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | The codes to initialize work struct or create a proc interface should be called only once and never although it's called many times through the init callback. Move that stuff into patch_generic_hdmi() so that it's called only once. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2012-06-205-18/+61
| |\ \ | | | | | | | | | | | | The fix for power sequence needs to be merged back to topic branch.
| * | | ALSA: hda - Add missing snd_hda_jack_detect_enable() for simple_hdmi*()Takashi Iwai2012-06-201-3/+5
| | | | | | | | | | | | | | | | | | | | Reported-by: Annie Liu <annieliu@viatech.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Fix the pin nid assignment in patch_hdmi.cTakashi Iwai2012-06-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the regression introduced by the commit d0b1252d for refactoring simple_hdmi*(). The pin NID wasn't assigned correctly. Reported-by: Annie Liu <annieliu@viatech.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Enable unsol event for ATI and Nvidia HDMI codecs tooTakashi Iwai2012-06-151-10/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ATI and Nvidia HDMI codecs have also the pin-detection capability, so let's enable the jack-detecion for them, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Remove invalid init verbs for Nvidia 2ch codecsTakashi Iwai2012-06-151-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | Nvidia 2ch codecs have no NIDs greather than 0x05. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Use common codes for ATI, Nvidia and VIA simple codecsTakashi Iwai2012-06-151-126/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code refactoring using the same helper functions for sharing the codes among ATI, Nvidia and VIA simple_hdmi* stuff. Except for that spec->pcm_playback is no longer pointer, the functionality doesn't change. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Merge ATI/VIA HDMI simple init functionsTakashi Iwai2012-06-151-34/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Just a minor code cleanup to use the same function for both AMD and VIA simple_hdmi*(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Add the support for VIA HDMI pin detectionTakashi Iwai2012-06-151-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the hotplug unsol event handling to simple_hdmi*(). It works on VIA VX900. If AMD or Nvidia chips support the pin-detection similarly, it can be added easily, too. Reported-by: Annie Liu <annieliu@viatech.com.cn> Tested-by: Annie Liu <annieliu@viatech.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda_intel: activate COMBO mode for Intel client chipsetsSeth Heasley2012-06-151-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch activates the COMBO position_fix for recent Intel client chipsets. COMBO mode is the recommended setting for Intel chipsets and eliminates HD audio warnings in dmesg. This patch has been tested on Lynx Point, Panther Point, and Cougar Pont. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: HDA: Create phantom jacks for fixed inputs and outputsDavid Henningsson2012-06-142-18/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PulseAudio sometimes have difficulties knowing that there is a "Speaker" or "Internal Mic", if they have no individual volume controls or selectors. As a result, only e g "Headphone" might be created for a laptop, but no "Speaker". To help out, create phantom jacks (that are always present, at least for now) for "Speaker", "Internal Mic" etc, in case we detect them. The naming convention is e g "Speaker Phantom Jack". In order not to pollute the /dev/input namespace with even more devices, these are added to the kcontrols only, not the input devices. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
OpenPOWER on IntegriCloud