summaryrefslogtreecommitdiff
path: root/sound/pci/hda
AgeCommit message (Collapse)AuthorFilesLines
2011-09-28ALSA: hda - Add snoop optionTakashi Iwai1-19/+129
Added a new option "snoop" for the traffic control of the HD-audio controller chip. When set to 0, the non-snooping mode is used with the traffic control bit is set in each stream control register. This may allow better operations in the low power mode, but the actual implementation is depending pretty much on the chipset. As already implemented, more or less each chipset has own snoop-control register bit. Now this setup refers to the snoop option, too. Also, a new VIA chipset may require the non-snooping mode when set so in BIOS. In such a case, the option value is overridden. As default, it's still set to snoop=1 for keeping the same behavior as before. In near future, it'll be set to 0 as default after checking it works in every system well. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-28ALSA: hda:via - Skip creations of empty PCM streamsTakashi Iwai1-28/+40
If no analog I/O is defined, skip creating the corresponding PCM stream. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-27ALSA: hda - Avoid unnecessary verbs to clear PCM formatsTakashi Iwai1-2/+5
Since really_cleanup_stream() is called from both purity_inactive_streams() and hda_cleanup_all_streams(), the verbs to clear the PCM channel and format may be called multiple times unnecessarily. This patch adds checks to skip these unneeded verbs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-26Merge branch 'fix/hda' into topic/hdaTakashi Iwai2-1/+8
2011-09-26ALSA: hda/realtek - Don't detect LO jack when identical with HPTakashi Iwai1-0/+4
The spec->autocfg.line_out_pins[] may contain the same pins as hp_pins[] depending on the configuration. When they are identical, detecting the line_jack_present flag screws up the auto-mute because alc_line_automute() is called unconditionally at initialization while it won't be triggered by unsol events, thus the old line_jack_present flag is kept for the whole run. For fixing this buggy behavior, the driver needs to check whether the line-outs are really individual, and skip if same as headphone jacks. Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-26ALSA: hda/realtek - Avoid bogus HP-pin assignmentTakashi Iwai1-1/+3
When the headphone pin is assigned as primary output to line_out_pins[], the automatic HP-pin assignment by ASSID must be suppressed. Otherwise a wrong pin might be assigned to the headphone and breaks the auto-mute. Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104 Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: <stable@kernel.org>
2011-09-24ALSA: HDA: No power nids on 92HD93David Henningsson1-0/+1
This patch is necessary to make internal speakers work on this chip. Cc: stable@kernel.org BugLink: http://bugs.launchpad.net/bugs/854468 Tested-by: Alex Wolfson <alex.wolfson@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-23ALSA: HDA - Add Independent Headphone for all models of ad1988/ad1989Raymond Yau1-19/+131
- Add "AD198x Headphone" playback device for independent headphone playback while playing 7.1 surround using rear panel audio jacks. - Remove "6stack-dig-fp" model since "Headphone Playback Volume" control using DAC0 instead of DAC1 (HDA_FRONT) was already added to all models. - Add "Independent HP" switch to enable/disable this playback device. When the switch is OFF, headphone use "copy front" mode to get the front channel as the green jack. When the switch is ON, you can play stereo sound through "AD198x Headphone" device to headphone while playing 7.1 surround sound through "AD198x Analog" device. The switch cannot be changed when either "AD198x Headphone" or "AD198X Analog" is open. Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-21ALSA: hda: hdmi: Hint matching between input devices and pcm devicesDavid Henningsson1-7/+24
Since modern HDMI cards often have more than one output pin and thus input device, we need to know which one has actually been plugged in. This patch adds a name hint that indicates which PCM device is connected to which pin. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-20ALSA: HDA: Refactor Realtek's automuteDavid Henningsson5-148/+131
Increase readability and understandability in the automute code. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-20Merge branch 'fix/hda' into topic/hdaTakashi Iwai5-25/+39
2011-09-20ALSA: HDA: Add support for IDT 92HD93David Henningsson1-0/+1
Cc: stable@kernel.org BugLink: http://bugs.launchpad.net/bugs/854468 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-19ALSA: hda/realtek - Fix auto-mute with HP+LO configurationTakashi Iwai1-4/+5
When the system has only the headphone and the line-out jacks without speakers, the current auto-mute code doesn't work. It's because the spec->automute_lines flag is wrongly referred in update_speakers(). This flag must be meaningless when spec->automute_hp_lo isn't set, thus they should be always coupled. The patch fixes the problem and add a comment to indicate the relationship briefly. BugLink: http://bugs.launchpad.net/bugs/851697 Reported-by: David Henningsson <david.henningsson@canonical.com> Tested-By: Jayne Han <jayne.han@canonical.com> Cc: stable@kernel.org (3.0) Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-14ALSA: HDA: Cirrus - fix "Surround Speaker" volume control nameDavid Henningsson1-1/+1
This patch fixes "Surround Speaker Playback Volume" being cut off. (Commit b4dabfc452a10 was probably meant to fix this, but it fixed only the "Switch" name, not the "Volume" name.) Signed-off-by: David Henningsson <david.henningsson@canonical.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-13ALSA: hda - Terminate the recursive connection search properlyTakashi Iwai1-1/+5
The recursive search of widget connections in snd_hda_get_conn_index() must be terminated at the pin and the audio-out widgets. Otherwise you'll get "too deep connection" warnings unnecessarily. Reported-by: Francis Moreau <francis.moro@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-12ALSA: hda - Add Headphone Playback Volume control for ad1988/ad1989Raymond Yau1-17/+13
- use DAC0 instead of DAC1 for Port-A Headphone - assign 0x03 to spec->multiout.hp_nid except model="6stack-dig-fp" Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-25ALSA: hda: Conexant: Allow different output types to share DACDavid Henningsson1-19/+27
Headphones has stopped working for the original reported (a regression compared to 2.6.38). This is because Speaker and Headphones share the same DAC, in which case no Headphones volume control was created. This patch fixes so that both Speaker and Headphones volume controls are created in such scenario. BugLink: http://bugs.launchpad.net/bugs/817943 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Remove the rest of ALC662 quirksTakashi Iwai2-367/+10
The rest of ALC662 quirks are only for desktops, and they should work with the auto-parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Remove ALC662 ASUS eeepc-ep20 model quirkTakashi Iwai1-49/+0
Since the recent fixes, this device works with the auto-parser well. Let's kill it. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Prefer multi-io to speakers for realtek auto-parserTakashi Iwai1-47/+51
When the multi-io jacks are available, parse them first and assign DACs before parsing speakers and headphones. This allows a better chance of surround I/O in some desktops and laptops with limited DACs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Fix Center/LFE mixer element creations for RealtekTakashi Iwai1-1/+1
The commit 23c09b00900c3fa6672148738cad29d6fc6ded7c ALSA: hda - Support multiple speakers by Realtek auto-parser changes the return value from alc_get_line_out_pfx(), and it breaks the center/LFE mixer split check. The caller must test with a string "CLFE" now. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Rewrite Lenovo X200 quirk with pincfg-fix using auto-parserTakashi Iwai1-43/+50
Introduce the pincfg table to patch_conexant.c for fixing up the extra pin-configuration for auto-parser. As an example, Lenovo X200 model is replaced with this new mechanism. (This also fixes the wrong mixer elements for docking-station I/O in the previous model quirk automagically.) Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24Merge branch 'fix/hda' into topic/hdaTakashi Iwai1-1/+1
2011-08-24ALSA: hda/conexant - Enable ADC-switching for auto-mic mode, tooTakashi Iwai1-1/+1
The ADC-switching can work also in the auto-mic mode, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24ALSA: hda - Remove ALC662 ASUS M51VA, G71V, H13 and G50V model quirksTakashi Iwai1-195/+0
These models work now with the BIOS auto-parser, so let's drop them. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Rewrite ALC269 laptop-amic,dmic,&co quirks with fixupsTakashi Iwai2-462/+110
Similarly like ALC662 asus-mode* models, rewrite the laptop-amic and dmic models with the static pin-config tables. Now we can get rid of all alc269_quirks.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Rewrite ALC662 asus-mode* models with fixupsTakashi Iwai2-594/+177
Re-implement the asus-mode[1-8] quirks with the pin-config tables. They are provided in case where BIOS is broken on the device, so it's not enabled in PCI SSID lookup table. User needs to specify it via model option explicitly if the driver doesn't work with the BIOS setup as is. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Support multiple headphones in Realtek auto-parserTakashi Iwai1-14/+21
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Add multi-headphone NIDs in multiout structTakashi Iwai2-2/+14
For supporting both the multiple headphones and the multiple speakers, add the new field in struct hda_multi_out, and evaluate in the standard setup functions. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Remove all ALC861 and ALC861-VD quirksTakashi Iwai3-838/+18
Let's remove the rest of ALC861 and ALC861-VD quirks. If any breakage is found, it can be fixed easily via the pin-config table update. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Restore VREF50 setup for ALC861-VD dallas/hp modelsTakashi Iwai1-2/+19
During the cleanup by commit 6727b12669f255dbf65b3d63c32cce1e3e967398, the specific setups for dallas and hp models, using VREF50 for mic pins, were lost. Fixed now. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Rename to snd_hda_parse_pin_defcfg()Takashi Iwai2-9/+21
... and add a new bit-flags argument to specify the behavior of the function. The older function is kept as is (as a wrapper). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Fix initialization of multi-speaker output paths for RealtekTakashi Iwai1-5/+12
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23Merge branch 'fix/hda' into topic/hdaTakashi Iwai4-29/+53
Conflicts: sound/pci/hda/patch_realtek.c
2011-08-23ALSA: hda - Fix double-headphone/speaker paths for Cxt auto-parserTakashi Iwai1-3/+10
When multiple headphones or speakers are assigned but no individual DACs are available, the driver should take the first HP/SPK DAC instead of another primary output. The patch adds a bit-flag to dac field of struct pin_dac_pair indicating that it's a slave DAC. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Update jack-sense info even when no automute is setTakashi Iwai1-4/+4
The internal states, jack_present and line_jack_present should be updated upon unsolicited events even if no automute is set. Otherwise the wrong state is referred when the automute behavior is changed by the mixer control. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23ALSA: hda - Fix output-path initialization for Realtek auto-parserTakashi Iwai1-7/+13
When the headphone or speaker output has no own DAC, initialize the path using the primary DAC. Otherwise the path won't be set properly and can result in the silence. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-20ALSA: hda - Fix error check from snd_hda_get_conn_index() in patch_cirrus.cTakashi Iwai1-3/+5
snd_hda_get_conn_index() returns a negative value while the current code stores it in an unsigned int. It must be stored in a signed integer. Reported-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-20ALSA: hda - Don't spew too many ELD errorsTakashi Iwai1-12/+19
Currently HD-audio driver shows the all error ELD byte as an error in the kernel message. This is annoying when the video driver doesn't set the correct ELD from the beginning. e.g. radeon sends a zero-byte data, but we still check ELD with the fixed 128 byte as a workaround for some broken devices, it spews 128-times errors. For avoiding this, the driver aborts reading when the first byte is invalid. In such a case, the whole data is certainly invalid. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-19ALSA: hda - Remove ALC662 model=levono-101e model quirkTakashi Iwai1-50/+0
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-19ALSA: hda - Allow different assoc numbers for multiple speakersTakashi Iwai1-9/+3
In snd_hda_parse_pin_def_config(), we checked the associated number of speaker pins and accepts only one number exclusively. But many BIOS seem to give different assoc number for surround speakers, thus we'd better to accept all speaker pins no matter which assoc number, and sort like done for the headphone pins. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-19ALSA: hda - Support multiple speakers by Realtek auto-parserTakashi Iwai1-32/+164
Add the support of multiple speakers by Realtek auto-parser. When all speaker pins have individual DACs, create each speaker volume control. Otherwise, create a bind-volume control for all speaker outs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-18ALSA: hda - Remove ALC662 eeepc-p701 and ecs modelsTakashi Iwai2-63/+13
These are confirmed to work with the auto-parser with pincfg fixups. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-18ALSA: hda - Get rid of left-over chunks by previous cleanupsTakashi Iwai1-26/+0
Also update the model description, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-18ALSA: hda - Remove ALC861 uniwill-m31, toshiba, asus and asus-laptop modelsTakashi Iwai1-329/+0
These are confirmed to work with the auto-parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-18ALSA: hda - Add "PCM" volume to vmaster slave listTakashi Iwai1-0/+2
The new parser may use "PCM" volume, but it was missing the vmaster slave list, thus "Master" volume didn't control it. Reference: https://bugzilla.kernel.org/show_bug.cgi?id=41342 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-16ALSA: hda - Remove ALC268 model quirksTakashi Iwai2-352/+6
Get rid of the rest of ALC268 model quirks. They are all confirmed to work with the auto-parser, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-16ALSA: hda - Replace ALC269 quanta and lifebook models with fixupsTakashi Iwai2-214/+55
Implement new fixup entries for Quanta FL1 and Fujitsu Lifebook specific COEF and pin configurations. Removed the model entries from alc269_quirks.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-16ALSA: hda - Remove ALC269 model=futjisu and AcerTakashi Iwai1-53/+0
Both are supported by the auto-parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-16ALSA: hda - Remove acer, acer-aspire and acer-dmic models for ALC268Takashi Iwai2-189/+14
Moved some code to alc269_quirks.c for dependency, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>