summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda
Commit message (Collapse)AuthorAgeFilesLines
* 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>
| * | | ALSA: hda - add support for HD-Audio CODECes of VIA HDMI GFX CardsAnnie Liu2012-06-111-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is patch supporting the CODECes of HD-Audio function of VIA GFX cards which support HDMI. For CODECes 0x9f80/0x9f81, which belong to VX900, since the hardware is not fully compliant to HD-Audio 1.3, simple_i*() is adopted temporarily. Signed-off-by: Annie Liu <annieliu@viatech.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - add support for HD-Audio of VIA HDMI GFX CardsAnnie Liu2012-06-111-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is patch supporting HD-Audio function of VIA GFX cards which support HDMI. Those are integrated graphics of chipsets VX900 and VX11 separately. Signed-off-by: Annie Liu <annieliu@viatech.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - power setting error checkWang Xingchao2012-06-081-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | codec may reject power state transition requests(reporting PS-ERROR set), in that case we re-issue a power state setting and check error bit again. Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - check proper return valueWang Xingchao2012-06-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | snd_hda_param_read() return value -1 means error, others are responses Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - reduce msleep time if EPSS power states supportedWang Xingchao2012-06-071-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if EPSS supported, transition from D3 state to D0 state in less than 10ms Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - check supported power statesWang Xingchao2012-06-071-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add function to check whether power states supported by specific codec node. Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Show D3cold state in proc filesTakashi Iwai2012-06-061-3/+3
| | | | | | | | | | | | | | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - add power states information in procWang Xingchao2012-06-062-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add more power states information: - reset status - clock stop ok - power states error Output like: Power: setting=D0, actual=D0, Error, Clock-stop-OK, Setting-reset Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | | ALSA: hda - Fix no sound from ALC662 after Windows rebootKailang Yang2012-06-291-0/+28
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | Windows use hidden register to control EAPD. Linux use verb to control EAPD. If windows reboot to Linux, it must change the EAPD control to verb control. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: hda - Fix power-map regression for HP dv6 & coTakashi Iwai2012-06-261-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The recent fix for power-map controls (commit b0791dda813) caused regressions on some other HP laptops. They have fixed pins but these pins are exposed as jack-detectable. Thus the driver tries to control the power-map dynamically per jack detection where it never gets on. This patch adds the check of connection and it assumes the no jack detection is available for fixed pins no matter what pin capability says. BugLink: http://bugs.launchpad.net/bugs/1013183 Reported-by: Luis Henriques <luis.henriques@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
OpenPOWER on IntegriCloud