aboutsummaryrefslogtreecommitdiff
path: root/sound/pci
AgeCommit message (Collapse)AuthorFilesLines
2013-02-06ALSA: hda - Apply mic-mute LED fixup for new HP laptopsTakashi Iwai1-0/+2
It's mostly harmless to apply it for new models even if they have no mic mute LED (just toggling an unused GPIO pin). Signed-off-by: Takashi Iwai <[email protected]>
2013-02-05Merge branch 'for-linus' into for-nextTakashi Iwai3-23/+38
Merge pending fixes that haven't pulled into 3.8.
2013-02-05ALSA: hda - detect jacks on VT1708 even when no streams are activeDavid Henningsson1-2/+1
These days, GUIs such as Gnome sound settings want to be able to show the correct jack status even when no streams are currently running. I doubt this gives any measurable difference in power, but if it does, the "Jack Detect" control can still be used to turn polling off. Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-02-05ALSA: hda - Fix phantom jacks on VT1708David Henningsson1-0/+13
The VT1708 has no unsol event capability, and polling is set using the "Jack Detect" alsamixer control. In order not to create phantom Jack controls, temporary enable jackpoll during build_controls. Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-02-04ALSA: hda - Add new Kconfig CONFIG_SND_HDA_CODEC_CA0132_DSPTakashi Iwai2-10/+16
... to be less confusing for the update path. This new kconfig will choose CONFIG_SND_HDA_DSP_LOADER, which is basically a device-independent feature in hda_intel.c. Signed-off-by: Takashi Iwai <[email protected]>
2013-02-04ALSA: hda - Fix default multichannel HDMI mapping regressionAnssi Hannula1-4/+7
Commit d45e6889ee69456a4d5b1bbb32252f460cd48fa9 ("ALSA: hda - Provide the proper channel mapping for generic HDMI driver") added support for custom channel maps in the HDA HDMI driver. Due to a mistake in an 'if' condition the custom map is always used even when no such map has been set. This causes incorrect channel mapping for multichannel audio by default. Pass per_pin->chmap_set to hdmi_setup_channel_mapping() as a parameter so that it can use it for detecting if a custom map has been set instead of checking if map is NULL (which is never the case). Reported-by: Staffan Lindberg <[email protected]> Signed-off-by: Anssi Hannula <[email protected]> Cc: [email protected] Signed-off-by: Takashi Iwai <[email protected]>
2013-02-01ALSA: hda - Release assigned pin/cvt at error path of hdmi_pcm_open()Takashi Iwai1-1/+5
If the driver detects and invalid ELD, it gives an open error. But it forgot to release the assigned pin, converter and spdif ctls before returning. Cc: <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-02-01ALSA - HDA: New PCI ID for Haswell ULTWang Xingchao1-0/+2
Add new PCI ID 0x0a0c for Haswell ULT platform. Signed-off-by: Wang Xingchao <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-02-01ALSA: hda - add support for IDT 92HD95 HDA codecVitaliy Kulikov1-0/+39
Signed-off-by: Vitaliy Kulikov <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-29ALSA: hda - Fix non-snoop page handlingTakashi Iwai1-14/+26
For non-snoop mode, we fiddle with the page attributes of CORB/RIRB and the position buffer, but also the ring buffers. The problem is that the current code blindly assumes that the buffer is contiguous. However, the ring buffers may be SG-buffers, thus a wrong vmapped address is passed there, leading to Oops. This patch fixes the handling for SG-buffers. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=800701 Cc: <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-29ALSA: hda - Enable LPIB delay count for Poulsbo / OaktrailTakashi Iwai1-5/+4
Currently we use LPIB forcibly for both playback and capture for Poulsbo and Oaktrail devices, and this seems rather problematic. The recent fix for LPIB delay count seems working well with these devices, so let's enable it instead. Reported-by: Martin Weishart <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-28ALSA: hda - Fix powermap for external mics on IDT codecsDavid Henningsson1-0/+8
This patch fixes a regression of the external mic not working on HP Probook 4520s. Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-28ALSA: hda - fix inverted internal mic on Acer AOA150/ZG5David Henningsson1-0/+1
This patch enables internal mic input on the machine. Cc: [email protected] BugLink: https://bugs.launchpad.net/bugs/1107477 Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-25ALSA: Make snd_printd() and snd_printdd() inlineTakashi Iwai8-18/+19
Because currently snd_printd() and snd_printdd() macros are expanded to empty when CONFIG_SND_DEBUG=n, a compile warning like below appears sometimes, and we had to covert it by ugly ifdefs: sound/pci/hda/patch_sigmatel.c: In function ‘stac92hd71bxx_fixup_hp’: sound/pci/hda/patch_sigmatel.c:2434:24: warning: unused variable ‘spec’ [-Wunused-variable] For "fixing" these issues better, this patch replaces snd_printd() and snd_printdd() definitions with empty inline functions instead of macros. This should have the same effect but shut up warnings like above. But since we had already put ifdefs, changing to inline functions would trigger compile errors. So, such ifdefs is removed in this patch. In addition, snd_pci_quirk name field is defined only when CONFIG_SND_DEBUG_VERBOSE is set, and the reference to it in snd_printdd() argument triggers the build errors, too. For avoiding these errors, introduce a new macro snd_pci_quirk_name() that is defined no matter how the debug option is set. Reported-by: Stratos Karafotis <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-24ALSA: hda - Enable power down of unused widgets for IDT codecsTakashi Iwai1-8/+3
IDT codecs can work well with this new feature, so let's enable it. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-24ALSA: hda - Implement path-based power filter to the generic parserTakashi Iwai2-6/+68
This patch adds a better power filter hook for powering down unused widgets in the generic parser. The feature is enabled by setting hda_gen_spec.power_down_unused flag. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-24ALSA: hda - Add snd_hda_check_power_state() helper functionTakashi Iwai3-15/+18
... for small refactoring. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-24ALSA: hda - Synchronize the power state at the end of codec initTakashi Iwai1-0/+32
Put the power state synchronization at the end of the parsing of codec. This is necessary when the power filter is changed during the codec probe. Since the first power-up sequence is performed without the special filter, all widgets are supposed to be ON at this point. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-24ALSA: hda - Add power state filteringTakashi Iwai4-18/+32
Add a hook to struct hda_codec for filtering the target power state of each widget when powering up/down. The current hackish EAPD check is implemented as the default hook pointer, too. This allows codec drivers to implement own power filter. In the upcoming changes, the generic parser will have the better power filter based on the active paths. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-24ALSA: hda/via - Fix wrong checks of power state bitsTakashi Iwai1-4/+8
AC_VERB_GET_POWER_STATE returns the combined bits of the actual state and the target state. Thus, comparing the obtained value directly with the target value can't work. The value has to be shifted and masked properly. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-24ALSA: hda - Fix wrong arguments for path deactivation checksTakashi Iwai1-2/+2
The arguments to call is_active_nid() in activate_amp() were swapped, and this resulted in the muted amp on some SPDIF output pins. Also, the index to be passed to is_active_nid() must be idx_to_check. Otherwise it checks the wrong connection in the case of implicit aamix connection paths. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-23ALSA: hda - Add auto-mute support to PB desktopTakashi Iwai1-1/+12
Using the new chained_before flag, we can correct the headphone jack detection capability easily over the existing ALC880 6stack model (which disables the jack detection intentionally for compatibility reason). Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=901846 Signed-off-by: Takashi Iwai <[email protected]>
2013-01-23Merge branch 'for-linus' into for-nextTakashi Iwai2-3/+3
Merge the 3.8 devel branch for correcting the newly added PB desktop fixup with the automute support.
2013-01-23ALSA: hda - Add a fixup for Packard-Bell desktop with ALC880Takashi Iwai1-0/+1
A Packard-Bell desktop machine gives no proper pin configuration from BIOS. It's almost equivalent with the 6stack+fp standard config, just take the existing fixup. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=901846 Cc: <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-23ALSA: hda - Add chained_before flag to the fixup entryTakashi Iwai2-8/+13
Sometimes we want to call a fixup after applying other existing fixups, but currently the fixup chain mechanism allows only the call the others after the target fixup. This patch adds a new flag, chained_before, to struct hda_fixup, for allowing the chained call before the current execution. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-23ALSA: hda - Small code refactoring about path re-initializationTakashi Iwai1-14/+11
Introduce a helper function to do the same thing. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-23ALSA: hda - Fix missing path between aamix and outputs in AD codecsTakashi Iwai3-1/+26
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: Takashi Iwai <[email protected]>
2013-01-23ALSA: hda - Fix inconsistent pin states after resumeTakashi Iwai1-3/+2
The commit [26a6cb6c: ALSA: hda - Implement a poll loop for jacks as a module parameter] introduced the polling jack detection code, but it also moved the call of snd_hda_jack_set_dirty_all() in the resume path after resume/init ops call. This caused a regression when the jack state has been changed during power-down (e.g. in the power save mode). Since the driver doesn't probe the new jack state but keeps using the cached value due to no dirty flag, the pin state remains also as if the jack is still plugged. The fix is simply moving snd_hda_jack_set_dirty_all() to the original position. Reported-by: Manolo Díaz <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-23ALSA: hda - Fix invalid snd_BUG_ON() in alc271_hp_gate_mic_jack()Takashi Iwai1-4/+5
The fixup function is called multiple times before parsing the pins, so snd_BUG_ON() hits when loaded. Move it to the proper place in the if block. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-23Merge branch 'topic/hda-gen-parser' into for-nextTakashi Iwai20-15704/+9779
This is a merge of really big changes: the generic parser is heavily enhanced for handling all cases, based on the former Realtek codec driver code. And all codec drivers except for a few ones (CA0132, HDMI and modem) have been converted to use the new generic driver. Conflicts: sound/pci/hda/patch_realtek.c
2013-01-23Merge branch 'for-linus' into for-nextTakashi Iwai7-30/+87
This is a preliminary merge before the upcoming merge of generic parser branch.
2013-01-22ALSA: hda - Select auto-parser as default for AD codecsTakashi Iwai1-1/+43
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: Takashi Iwai <[email protected]>
2013-01-22ALSA: hda - Convert some static quirks to fixup codes for AD codecsTakashi Iwai1-0/+164
Other remaining quirks are mostly resolvable via pincfg fixes, even if it matters. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-22ALSA: hda - Rearrange for dropping static quirk codes in AD codec driverTakashi Iwai1-97/+165
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: Takashi Iwai <[email protected]>
2013-01-22ALSA: hda - Add SPDIF mux control to AD codec auto-parserTakashi Iwai1-5/+261
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: Takashi Iwai <[email protected]>
2013-01-22ALSA: hda - Combine snd_hda_codec_flush_*_cache() to a single functionTakashi Iwai5-13/+16
Since both snd_hda_codec_flush_amp_cache() and snd_hda_codec_flush_cmd_cache() are called usually at the same time, we can simply combine them to a single function, snd_hda_codec_flush_cache(). Signed-off-by: Takashi Iwai <[email protected]>
2013-01-22ALSA: hda - Fix missing call of cmd flush in capture volume put callbackTakashi Iwai1-0/+1
The capture volume put callback may call the node selection change, and its actual call won't be triggered unless flushed. In general, we always need to call both snd_hda_codec_flush_amp_cache() and snd_hda_codec_flush_cmd_cache() at the same place... Signed-off-by: Takashi Iwai <[email protected]>
2013-01-22ALSA: hda - Add missing exports to helper functionsTakashi Iwai1-0/+2
Signed-off-by: Takashi Iwai <[email protected]>
2013-01-22ALSA: hda - Revive SPDIF mux for IDT/STAC codecsTakashi Iwai1-0/+101
The stuff that was dropped while transition to the generic parser is now recovered. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-22ALSA: hda - Disable HP auto-mute during independent HP modeTakashi Iwai1-3/+16
Both the HP auto-mute and the independent HP mode conflict with each other. Make HP auto-mute disabled (only for the affected HP jack) during the driver is in HP independent mode. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-22ALSA: hda - Set individual name to secondary analog PCM streamTakashi Iwai2-1/+6
It'd be better to give another name to the secondary (alt) analog PCM stream, which is dedicated for the independent HP out and extra inputs. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-22ALSA: hda - Add aamix NID to AD codecsTakashi Iwai1-0/+5
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: Takashi Iwai <[email protected]>
2013-01-21ALSA: hda - Add Conexant CX20755/20756/20757 codec IDsTakashi Iwai1-0/+9
These are just compatible with other CX2075x codecs. Cc: <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-21ALSA: hda - Add aamix NID to IDT 92HD codecsTakashi Iwai1-0/+3
IDT codecs have analog-loopback mixer widgets, but we haven't cared about it, so far. Let's set them. This will avoid also possible wrong routes for the input paths. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-21ALSA: hda - Remove superfluous header inclusionsTakashi Iwai6-6/+0
Signed-off-by: Takashi Iwai <[email protected]>
2013-01-21ALSA: hda - Enable parsing the independent HP mode as default for VIA codecsTakashi Iwai1-0/+1
The original VIA codec parser enabled it as default, so let's keep the behavior as it was. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-21ALSA: hda - Fix conflicts between Loopback Mixing and Independent HPTakashi Iwai2-8/+52
This patch eventually fixes two issues: - Handle the case where the primary output is a headphone and can have independent HP mode; so far we checked only the case where the headphone is the secondary output. - Fix the conflict of HP independent mode and aamix mode; when switched to aamix mode, the DAC might be also switched to another widget shared with other outputs. Then even if we disable the DAC for the original output, it doesn't change -- because the active route is from another (shared) DAC to HP pin through aamix. So, in such a case, we have to prohibit the switch to aamix for HP routes. This fixes issues appearing on VT codecs. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-21ALSA: hda - Check aamix-output paths from other DACs, tooTakashi Iwai1-3/+15
Many codecs provide routes to multiple output pins through an aamix widget, but most of them do it only from a single DAC. However, the current generic parser checks only the aamix paths from the original (directly bound) DACs through aamix NID, and miss the path: primary DAC -> aamix -> target out pin This patch adds a more check for the routes like the above. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-21ALSA: hda - Add missing badness evaluation for unresolved pathsTakashi Iwai1-2/+5
When a patch couldn't be resolved in try_assign_dacs() although the target DAC is expected, we forgot to add a proper badness value but continued. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-21ALSA: hda - Set the pin targets after deciding output configTakashi Iwai1-15/+15
Since fill_and_eval_dacs() may be called repeatedly with different configurations, setting pinctls at each time there isn't optimal. We can set it better only once after deciding the output configuration in parse_output_paths(). Signed-off-by: Takashi Iwai <[email protected]>