- 26 10月, 2013 2 次提交
-
-
由 Takashi Iwai 提交于
As EAPD on NID 0x12 (speaker pin) is used as the master amp on Thinkpads with AD1984A codec, we can hook this to vmaster for saving a bit more power at master mute state. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
AD1984A codec has a couple of pins with EAPD controls, and the generic codec driver tries to turn each of them on/off depending on the pin active state. However, Thinkpads seem to use EAPD of the speaker pin as a master EAPD for controlling the mute of all outputs, including the headphone. This results in the dead headphone output via the headphone plugging because it mutes the speaker and turns off EAPD. The fix is to simply add spec->gen.keep_on_eapd flag. [This is a regression fix on 3.12 where we moved the AD codec parser to the generic parser. 3.11 and earlier didn't show this problem because still static quirks have been used.] Reported-and-tested-by: NVito Caputo <vcaputo@gnugeneration.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 05 7月, 2013 7 次提交
-
-
由 Takashi Iwai 提交于
Finally all the static quirks in patch_analog.c are reduced by this patch. As machines with AD1986A codec are all old and often their BIOS are buggy, we need to keep at least a few static pin conifgs. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Most of ASUS laptops and Lenovo N100 provide proper BIOS pin-configs. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
The BIOS provides good pin-configurations, so we can drop the static quirk now. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
BIOS on Samsung R55, M55 and M50 provide the proper pin-configs, so we can remove the corresponding static quirk entries gracefully. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Just need to override some pin-configurations. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
... to a fixup entry. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
For removing static quirks for AD1988 variants, a new fixup defining the 6stack pinconfig has been added for the buggy BIOS. Other than that, we can cut off straightforwardly. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 04 7月, 2013 7 次提交
-
-
由 Takashi Iwai 提交于
These are relatively easy ones, as we already converted all static quirks to the generic parser. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Since the necessary device-specific fixups for Thinkpad and HP devices have been already ported, we can remove all static quirks for AD1884, AD1984, AD1884A and AD1984A codecs. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Now the generic parser can work stably enough, we can get rid of the static quirks. Let's start from AD1882. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Ported from the static quirk. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Ported from the static quirk (model=thinkpad). Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
The AD1884 HP laptop/mobile quirks control GPIO1 bit as the primary mute as well. Add the similar control to ad1884 fixup for auto parser, too. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
ad1884_fixup_hp_eapd() tries to set the NID for controlling the speaker EAPD from the pin configuration. But the current code can't work expectedly since it sets spec->eapd_nid before calling the generic parser where the autocfg pins are set up. This patch changes the function to set spec->eapd_nid after the generic parser call while it sets vmaster hook unconditionally. The spec->eapd_nid check is moved in the hook function itself instead. Cc: <stable@vger.kernel.org> [v3.9+] Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 18 3月, 2013 1 次提交
-
-
由 Takashi Iwai 提交于
Instead of calling snd_hda_attach_beep_device() and snd_hda_detach_beep_device() in each codec driver, move them to the generic parser. The codec driver just needs to set spec->beep_nid for activating the digital beep. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 24 1月, 2013 1 次提交
-
-
由 Takashi Iwai 提交于
AD1988 family and AD1882 codecs have another mixer widget (0x21) between the analog-loopback mixer widget (0x20) and the actual outputs. Due to this hole, the analog-loopbacks aren't sent properly to the output pins. As a band-aid fix, introduce another fields holding the aamix merge path, and activate it. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 23 1月, 2013 3 次提交
-
-
由 Takashi Iwai 提交于
Now all AD codecs have the proper BIOS auto-parser, and we can make it for default, finally. (AD1988 already did it because it had the auto-parser.) Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Other remaining quirks are mostly resolvable via pincfg fixes, even if it matters. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
As done for patch_conexant.c, put ifdef ENABLE_AD_STATIC_QUIRKS for preparing t odrop the static quirk codes in patch_analog.c. The whole static quirk code can be omitted by commenting out ENABLE_AD_STATIC_QUIRKS define now. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 22 1月, 2013 2 次提交
-
-
由 Takashi Iwai 提交于
AD codecs have strange implementations for choosing the SPDIF-output mux source: the digital audio out widget may take the sources from multiple connections, where 0x01 indicates it's a PCM while others point ADCs. It's obviously invalid in the HD-audio spec POV, but it's somehow convincing, too. And, to make things more complex, AD1988A and AD1882 have deeper connection routes that aren't expressed correctly. In this patch, the SPDIF mux control is implemented in two ways: - For easier one like AD1981, AD1983, AD1884 and AD1984, where the SPDIF audio out widget takes just two or three sources, we can simply implement via the normal input_mux and connection verb calls. - For the complex routes like AD1988A (but not AD1988B) or AD1882, we prepare "faked" paths represented statically, and switch the paths using these static ones, instead of parsing the routes from the widget tree. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
The aamix NIDs are also missing for AD codecs. All AD codecs seem to have a (more or less) working aamix widget. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 21 1月, 2013 1 次提交
-
-
由 Takashi Iwai 提交于
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 18 1月, 2013 1 次提交
-
-
由 Takashi Iwai 提交于
This resulted in non-working auto-mute behavior, of course... Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 12 1月, 2013 1 次提交
-
-
由 Takashi Iwai 提交于
This patch adds the support for the generic auto-parser to AD codec driver. For AD1988, the old code is replaced simply with the new generic parser. For other codecs, new model "auto" is added and directed to use the generic parser. No fixup codes have been implemented yet as of now. Eventually we'd replace each static quirk with the generic parser + fixup. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 10 1月, 2013 1 次提交
-
-
由 Takashi Iwai 提交于
It's used only in one place in patch_analog.c, and it can be replaced with others better. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 28 11月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
This is a preliminary patch for introducing a protection to access races of snd_array instances. Call snd_array_init() appropriately at the initialization time and don't call it twice. Also the allocations of codec-spec structs are cleaned up by helper functions in patch_sigmatel.c and patch_analog.c. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 21 11月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
The free callback is called at the state where no extra verbs are executed, thus calling *_shutup() is useless, as it's checking the shutdown flag. Remove such superfluous calls. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 05 11月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
Several bug reports suggest that the forcibly resetting IEC958 status bits is required for AD codecs to get the SPDIF output working properly after changing streams. Original fix credit to Javeed Shaikh. BugLink: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/359361Reported-by: NRobin Kreis <r.kreis@uni-bremen.de> Cc: <stable@vger.kernel.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 19 9月, 2012 1 次提交
-
-
由 David Henningsson 提交于
The standard name (and what PulseAudio picks up) is "Dock Mic", not "Docking Mic" or "Docking-Station". Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 30 8月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
CONFIG_SND_HDA_POWER_SAVE is no longer an experimental feature and its behavior can be well controlled via the default value and module parameter. Let's just replace it with the standard CONFIG_PM. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 15 8月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
Added a simple support of automute for the front HP jack to AD1882 stack model. Such an addition is basically an exception -- we really want to avoid the static quirk codes, but AD1882 parser isn't still ready for moving to the BIOS auto-parser yet. So, as a quick fix, I merged it for now. In near future, we really need the big clean up of patch_analog.c to move on to the auto-parser... Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 03 7月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
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: NTakashi Iwai <tiwai@suse.de>
-
- 09 5月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
Just code shuffles. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 20 4月, 2012 2 次提交
-
-
由 Takashi Iwai 提交于
Add a new helper function to guess the default VREF pin control bits for mic in. This can be used to set the pin control value safely matching with the actual pin capabilities. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
For setting the pin-control values more safely to match with the actual pin capability bits, a copule of new helper functions, snd_hda_set_pin_ctl() and snd_hda_set_pin_ctl_cache(), are introduced. These are simple replacement of the codec verb write with AC_VERB_SET_PIN_WIDGET but do more sanity checks and filter out superfluous pin-control bits if they don't fit with the corresponding pin capabilities. Some codecs are screwed up or ignore the command when such a wrong bit is set. These helpers will avoid such secret errors. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 12 3月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
It'll be used for adding hooks in later patches. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 10 3月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
When the driver is changed to use vmaster or a new slave element is added by the improvement of the parser code, user may face often the silent output because of the muted slave mixer although Master volume is properly set. And they complain. And I get upset. Although such a mixer element should be initialized via "alsactl init", it'd be more user-friendly if the known output slaves are unmuted and set to 0dB so that user can control the volume only with Master as default. Since Master is still set muted as default even with this change, no risk of the speaker blow up, too. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 03 2月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
In most cases, the slave strings for vmaster are identical between volumes and switches except for "xxx Volume" and "xxx Switch" suffix. Now snd_hda_add_vmaster() takes the optional suffix argument so that each string can be composed with the given suffix, and we can share the slave name strings in both volume and switch calls nicely. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-