aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
AgeCommit message (Collapse)AuthorFilesLines
2011-10-31sound: Add module.h to the previously silent sound usersPaul Gortmaker1-0/+1
Lots of sound drivers were getting module.h via the implicit presence of it in <linux/device.h> but we are going to clean that up. So fix up those users now. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2011-10-27ALSA: hda/realtek - Fix missing volume controls with ALC260Takashi Iwai1-5/+37
ALC260 has multiple mixer widgets connected to the shared DAC, but the driver currently doesn't check this possibility and ignores when the DAC is shared with others. This resulted in the silent output from some routes because of lack of the amp setup. This patch adds the workaround for it by checking the route even with the shared DAC, but also checking the conflict with the existing control for the very same widget NID. Reference: https://bugzilla.novell.com/show_bug.cgi?id=726812 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-26ALSA: hda - Fix pin-config for ASUS W90VTakashi Iwai1-0/+9
The association numbers of surround/CLFE speaker pins aren't correctly mapped by the auto-parser. This patch fixes the CLFE speaker pin to the right assoc value (from 3 to 1). Tested-by: Nika Topolchanskaya <nanodesuu@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-24ALSA: HDA: Add new revision for ALC662David Henningsson1-0/+2
The revision 0x100300 was found for ALC662. It seems to work well with patch_alc662. Cc: stable@kernel.org BugLink: http://bugs.launchpad.net/bugs/877373 Tested-by: Shengyao Xue <Shengyao.xue@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Acked-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-21ALSA: hda/realtek - Fix DAC assignments of multiple speakersTakashi Iwai1-2/+8
When a device has multiple speakers and still has the auto-mute support, the driver copies line_outs[] to speaker_outs[]. And then it tries to assign DACs for both. This ended up with the assignment only to the primary DAC to all speakers. This patch fixes the situation by checking the duplicated LO/SPK case appropriately. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17ALSA: hda/realtek - Cache COEF 0 valueTakashi Iwai1-20/+28
The COEF #0 value represents a sort of device id, so it's supposedly constant while operation. Better to use the cached value instead of reading it at each time from the performance POV. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17ALSA: hda/realtek - Clean up codec renamesTakashi Iwai1-150/+139
Use a static table for detecting the codec renames. Also clean up the error paths in each patch_*() function. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17ALSA: hda/realtek - Use alc_codec_rename()Takashi Iwai1-8/+9
Replaced with alc_codec_rename() in all possible places. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17ALSA: hda - ALC888S-VC remark to ALC886Kailang Yang1-1/+17
Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17ALSA: hda/realtek - Check the error from alc_codec_rename()Takashi Iwai1-14/+22
Should be a rare case, but... Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-13ALSA: HDA: Fixup Realtek headphone pin initializationDavid Henningsson1-1/+1
This typo caused headphone pins not to be initialized correctly. BugLink: https://bugs.launchpad.net/bugs/871582 Reported-by: Effenberg Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-06ALSA: hda/realtek - Choose more cleverly the primary outputsTakashi Iwai1-1/+2
When the speaker outputs are more than the headphone outputs, it implies that the system has surround speakers while the headphones are only for monitoring the front. In such a case, it's better to put speakers as the primary outputs so that the driver can build up and keep the surround setup. Otherwise the system will pick up the headphone as primary, and offers less channels than the speakers do support. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-26Merge branch 'fix/hda' into topic/hdaTakashi Iwai1-1/+7
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-20ALSA: HDA: Refactor Realtek's automuteDavid Henningsson1-62/+74
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 Iwai1-4/+5
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-08-24ALSA: hda - Remove the rest of ALC662 quirksTakashi Iwai1-36/+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 - 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-23ALSA: hda - Rewrite ALC269 laptop-amic,dmic,&co quirks with fixupsTakashi Iwai1-38/+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 Iwai1-5/+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 - Remove all ALC861 and ALC861-VD quirksTakashi Iwai1-80/+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 - 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 Iwai1-11/+19
Conflicts: sound/pci/hda/patch_realtek.c
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-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 Iwai1-0/+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 - 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 Iwai1-38/+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 Iwai1-3/+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-15ALSA: hda - Remove ALC680 model quirksTakashi Iwai1-44/+6
The auto-parser works fine. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-15ALSA: hda - Remove ALC268 Dell, Toshiba and Zapto model quirksTakashi Iwai1-1/+1
These models work fine with the BIOS auto-parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-04ALSA: hda - Fix digital-mic mono recording on ASUS Eee PCTakashi Iwai1-0/+26
The digital-mic unit on ASUS Eee PC gives PDM signals instead of the normal stereo PCM, thus you can't record a mono stream from the stereo stream as is; the summed stereo signal results in almost zero level, and you'll hear only soft noise. As a workaround, use ALC269-specific COEF to manipulate the dmic route for mono, like used for ALC271x. This is implemented as a fix-up, thus it works only with model=auto or without REALTEK_QUIRKS Kconfig. Reported-and-tested-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-27ALSA: hda - Fix duplicated DAC assignments for RealtekTakashi Iwai1-2/+5
Copying hp_pins and speaker_pins from line_out_pins may confuse the parser, and it can lead to duplicated initializations for the same pin with a wrong DAC assignment. The problem appears in 3.0 kernel code. Cc: <stable@kernel.org> (for 3.0) Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-27ALSA: hda - Fix Oops with Realtek quirks with NULL adc_nidsTakashi Iwai1-11/+11
Somce quirk models don't set adc_nids but let the parser filling it. But the recent code has unnecessary NULL-checks of spec->input_mux, and it resulted in NULL dereferences. This patch fixes that regression. Reported-and-tested-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-26ALSA: hda - Make CONFIG_SND_HDA_POWER_SAVE depending on CONFIG_PMTakashi Iwai1-5/+5
It makes little sense to enable power-saving without PM. This removes SND_HDA_NEEDS_RESUME define so that we can use CONFIG_PM in all places. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-23ALSA: hda - Fix DAC filling for multi-connection pins in Realtek parserTakashi Iwai1-1/+4
Fix a regression in the DAC filling code in patch_realtek.c. The already filled DACs in multiout.dac_nids[] were ignored because of num_dacs=0, thus always pointed to the first DAC. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-14ALSA: hda - Re-add need_dac_fix check for multi-io jacks of Realtek codecsTakashi Iwai1-0/+3
During the rewrite, the check of spec->need_dac_fix and the corresponding num_dacs change was dropped from the channel-mode control. This patch re-adds it, and also enables need_dac_fix for ALC880 as default, as this feature was originally introduced to fix h/w bugs of this chip. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-09ALSA: hda - Implement 44kHz workaround for IdeadPad as fixupTakashi Iwai1-11/+22
Instead of checking the model quirk, use a fixup table for workaround of 44kHz-fixed PCM for Lenovo IdeaPad with ALC269. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-08ALSA: hda - Merge alc*_parse_auto_config() functions in patch_realtek.cTakashi Iwai1-526/+160
Now all alc*_parse_auto_config() do almost same thing except for the NID list to ignore and the PINs for SSID-check, we can merge all these to a single function. A good amount of code reduction. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-08ALSA: hda - Merge ALC260 auto-parser codeTakashi Iwai1-142/+11
Finally the last one. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-08ALSA: hda - Merge ALC269 parser codeTakashi Iwai1-114/+10
One more code reduction. This codec has less DACs, thus the wiring to DAC can't be filled uniquely for all output pins, i.e. some outputs share the same volume control. Except for that, all seems working fine. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-08ALSA: hda - Merge ALC268/269 auto-parser codesTakashi Iwai1-239/+26
Now coming to ALC268/269 parser codes. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-08ALSA: hda - Merge ALC861 auto-parser codeTakashi Iwai1-187/+8
Merge more auto-parser code in patch_realtek.c, now for ALC861. The topology of this codec is pretty simple, and can be parsed well by the current starndard parser. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-07-08ALSA: hda - Fix amp-cap checks in patch_realtek.cTakashi Iwai1-12/+22
query_amp_caps() may return non-zero if the amp cap isn't supported by the codec. Thus one needs to check widget-caps first, then check the corresponding amp-caps. Signed-off-by: Takashi Iwai <tiwai@suse.de>