summaryrefslogtreecommitdiffstats
path: root/sound/pci
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Merge branch 'topic/tlv-chmap' into for-nextTakashi Iwai2012-09-1515-36/+622
| |\ \ | | | | | | | | | | | | | | | | This is a merge of a topic branch containing the support for the new channel map API using control elements.
| | * | ALSA: Fix leftover chmap UNKNOWN -> MONO conversionsTakashi Iwai2012-09-132-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A few files have been slipped from the previous commit to add MONO channel type. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: Define more channel map positionsTakashi Iwai2012-09-121-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For following the standard, define more channel map positions and shuffle the items a bit: - As both PulseAudio and gstreamer define MONO channel position explicitly, we should follow that, too. The mono streams point to this channel position unless they are explicitly assigned to certain channel positions. - Top-front-* and Top-rear-* positions are added, carried from PulseAudio's definitions. - Move NA and MONO definitions at the top of table right after UNKNOWN, since these are more abstract in comparison with other practical positions. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: ymfpci: Define channel mapsTakashi Iwai2012-09-121-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | Provide channel maps for individual stereo streams of YMFPCI. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: ens1370: Define channel mapsTakashi Iwai2012-09-121-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide channel maps for individual stereo streams of ENS1370 and ENS1371. Note that the configuration of ENS1370 uses the secondary PCM as the front unlike ENS1371. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: emu10k1x: Define channel mapsTakashi Iwai2012-09-121-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | Provide channel maps for individual stereo streams of emu10k1x. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: ca0106: Define channel mapsTakashi Iwai2012-09-121-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | Provide channel maps for individual stereo streams of CA0106. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: ens1370: Reduce ifdefsTakashi Iwai2012-09-121-30/+8
| | | | | | | | | | | | | | | | | | | | | | | | ... just by defining CHIP_NAME and string concats. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: ctxfi: Fix mono channel map to UNKNOWNTakashi Iwai2012-09-121-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | To follow the previous commit. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: hda - Allow 3/5/7 channel map for HDMI/DPTakashi Iwai2012-09-101-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: ctxfi: Implement channel mapsTakashi Iwai2012-09-061-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Assign the multi-channel map to front PCM, and other channel map to each other channel PCM. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: cmipci: Implement channel mappingTakashi Iwai2012-09-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Simply enable the channel map according to the h/w capability. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: Implement channel maps for standard onboard AC97 driversTakashi Iwai2012-09-064-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | Just set the channel maps depending on the hardware availability. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: ac97: Implement channel map workaround for ALC650Takashi Iwai2012-09-061-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ALC650 has a channel swap option between surround and CLFE channels, so we need to tweak the channel maps dynamically depending on the register bit. Now struct snd_ac97 can contain chmap pointers for playback and capture. The driver may store these and let ac97 driver changing the channel mapping dynamically. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: hda - Fix channel maps for Nvidia 7x 8ch HDMI codecsTakashi Iwai2012-09-061-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Some old Nvidia HDMI codecs with 8ch support only 2/8 or 2/6/8 channels and with the fixed CLFE-first map. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: hda - Provide the proper channel mapping for generic HDMI driverTakashi Iwai2012-09-061-5/+303
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... instead of the standard fixed channel maps. The generic HDMI is based on the audio infoframe, and its configuration can be selected via CA bits. Thus we need a translation between the CA index and the verbose channel map list. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| | * | ALSA: hda - Add standard channel mapsTakashi Iwai2012-09-063-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Although HD-audio allows pair-wise channel configurations, only the fixed channel positions are used in this version. In future, this can be changed and allow user to modify the channel positions. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Add mic-mute LED control for HP laptopTakashi Iwai2012-09-141-10/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some of new HP laptops have a LED for microphone (or recording) mute, and it's controlled by GPIO pin 3. Bind this with the capture switch to turn it on/off properly by the mixer change. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Allow to pass position_fix=0 explicitlyTakashi Iwai2012-09-131-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set the default value of position_fix -1, and allow user passing position_fix=0 explicitly to set the "auto" position-fix mode. Otherwise the auto mode may be switched to others like COMBO of VIACOMBO when the controller prefers it, thus user can't set the auto mode any longer. Also updated the documentation appropriately, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Fix disordered enum definitions in patch_cirrus.cTakashi Iwai2012-09-131-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to the definitions of CS420X_IMAC27_122 and CS420X_APPLE as aliases, the rest enums are set to duplicated values unexpectedly. Move the alias definitions at the end so that the enum values are defined in the proper order. Reported-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Add support for MacBook Pro 10,1Takashi Iwai2012-09-111-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MacBook Pro 10,1 needs a few adjustments to make it working: - more COEF verbs - some pin config overrides to disable the unused pin (0x0d, 0x12), and fix the internal mic (0x0e) In addition, it uses GPIO 1 and 3 like other MacBooks. The internal digital mic on the machine is still problematic: it seems that only the right channel is used and the left is always static. This looks like a hardware design, so we need to cope in the software side somehow... The primary information and test were brought from Daniel J Blueman. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | Merge branch 'for-linus' into for-nextTakashi Iwai2012-09-113-2/+3
| |\ \ \ | | | | | | | | | | | | | | | To merge HD-audio fixes back to 3.7 development line
| * | | | ALSA: hda - Replace with the generic fixup codes in patch_cirrus.cTakashi Iwai2012-09-111-90/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... to make easier to integrate into the common generic parser in near future. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | ALSA: hda - Check bit mask for codec SSID in snd_hda_pick_fixup()Takashi Iwai2012-09-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | snd_hda_pick_fixup() didn't check the case where the device mask bits are set, typically used for SND_PCI_QUIRK_VENDOR() entries. Fix this. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | ALSA: hda - Avoid BDL position workaround when no_period_wakeup is setTakashi Iwai2012-09-111-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally the bogus period at BDL head was introduced as a workaround for the mismatching position update at the period boundary, typically seen on dmix. However, for applications like PulseAudio that don't require period wake ups, this workaround is just superfluous. Thus better to disable it when no_period_wakeup is given in hw_params. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | ALSA: hda - Remove ignore_misc_bitDavid Henningsson2012-09-073-8/+2
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The purpose of this flag is unclear. If the problem is that some machines have broken misc/NO_PRESENCE bits, they should be fixed by pin fixups. In addition, this causes jack detection functionality to be flawed on the M31EI, where there are two jacks without jack detection (which is properly marked as NO_PRESENCE), but due to ignore_misc_bit, these jacks are instead being reported as being present but always unplugged. BugLink: https://bugs.launchpad.net/bugs/939161 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Move non-PCM check to per_pin in patch_hdmi.cTakashi Iwai2012-09-061-21/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recently the check for non-PCM stream state was added to the generic HDMI driver code. But this check should be done rather to each pin instead of each converter. Otherwise when a different converter is assigned at the next open, the audio infoframe can be inconsistent with the setup using the previous converter. For fixing this issue, this patch moves the state of the current non-PCM status from per_cvt to per_pin. (In addition an unused argument cvt_nid is stripped from hdmi_setup_channel_mapping()) Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - fix control names for multiple speaker out on IDT/STACDavid Henningsson2012-09-061-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For multiple speaker outs, the names were previously "Speaker,0", "Speaker,1", "Center"/"LFE", "Speaker,3". This is inconsistent, confusing, and is not picked up correctly by PulseAudio. Instead use "Front", "Surround", "Center"/"LFE", "Side" which is more standard. BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1046734 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: HDMI - Setup channel mapping for non_pcm audioWang Xingchao2012-09-061-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For HBR stream test, use straight channel mapping way. when switched back to "speaker-test -c8", even the audio infoframe is up-to-date, there should be correct channel mapping setup. Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: HDMI - Enable HBR feature on Intel chipsWang Xingchao2012-09-061-4/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HDMI channel remapping apparently effects HBR packets on Intel's chips. For compressed non-PCM audio, use "straight-through" channel mapping. For uncompressed multi-channel pcm audio, use normal channel mapping. Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: HDMI - Fix channel_allocation array wrong orderWang Xingchao2012-09-061-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The array channel_allocations[] is an ordered list, add function to get correct order by ca_index. Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: emu10k1: use list_move_tail instead of list_del/list_add_tailWei Yongjun2012-09-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Using list_move_tail() instead of list_del() + list_add_tail(). Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Clean up redundant FG checksTakashi Iwai2012-08-311-18/+12
| | | | | | | | | | | | | | | | | | | | | | | | Just refactoring, no functional changes. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Yet another fix for D3 stop-clock refcountingTakashi Iwai2012-08-312-20/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The call of pm_notify callback in snd_hda_codec_free() should be with the check of the current state whether pm_notify(false) is called or not, instead of codec->power_on check. For improving the code readability and fixing this inconsistency, codec->d3_stop_clk_ok is renamed to codec->pm_down_notified, and this flag is set only when runtime PM down is called. The new name reflects to a more direct purpose of the flag. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: cs5530: Fix resource leak in error pathTakashi Iwai2012-08-301-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=44741 Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: korg1212: Fix reverted min/max ADC sense rangeTakashi Iwai2012-08-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | k1212MinADCSens and k1212MaxADCSens are defined wrongly. The max must be greater than the min by obvious reason. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=46561 Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Optimize bitfield usage in struct hda_codecTakashi Iwai2012-08-301-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | Move up a few bitfields to be packed into a single int. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVETakashi Iwai2012-08-3013-80/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Fix D3 clock stop check for codecs with own set_power_state opTakashi Iwai2012-08-301-24/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a codec provides its own set_power_state op, the D3-clock-stop isn't checked correctly. And the recent changes for repeating the state-setting operation isn't applied to such a codec, too. This patch fixes these issues by moving the call of codec's own op to the place where the generic power-set operation is done, and move the power-state synchronization code out of snd_hda_set_power_state_to_all() so that it can be called always at the end of power-up/down sequence, and updates the D3 clock-stop flag properly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: hda - Fix runtime PM leftover refcountsTakashi Iwai2012-08-303-22/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the HD-audio is removed, it leaves the refcounts when codecs are powered up (usually yes) in the destructor. For fixing the unbalance, and cleaning up the code mess, this patch changes the following: - change pm_notify callback to take the explicit power on/off state, - check of D3 stop-clock and keep_link_on flags is moved to the caller side, - call pm_notify callback in snd_hda_codec_new() and snd_hda_codec_free() so that the refcounts are proprely updated. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | Merge branch 'for-linus' into for-nextTakashi Iwai2012-08-283-2/+9
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Need to merge the fixes regarding EPSS. Conflicts: sound/pci/hda/hda_codec.c
| * | | | ALSA: hda - Make clear built-in driver optimizationTakashi Iwai2012-08-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use unsigned int to make clear that the codes required only for modules will be reduced by the compiler optimization. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | ALSA: pcxhr: Add 8 new sound cardsMarkus Bollinger2012-08-272-3/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add new sound cards VX442HR VX442e PCX442HR PCX442e VX822HR VX822e PCX822HR and PCX822e Signed-off-by: Markus Bollinger <bollinger@digigram.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | ALSA: hda - bug fix on references without checking CONFIG_SND_HDA_POWER_SAVEMengdong Lin2012-08-242-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch to support runtime PM introduced a bug: Module parameter 'power_save_controller', and the codec flag 'd3_stop_clk' 'd3_stop_clk_ok' are defined only when HDA power save is enabled in config. But there are references to them without checking macro CONFIG_SND_HDA_POWER_SAVE. This patch is to fix the bug. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | ALSA: hda - add runtime PM supportMengdong Lin2012-08-233-20/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Runtime PM can bring more power saving: - When the controller is suspended, its parent device will also have a chance to suspend. - PCI subsystem can choose the lowest power state the controller can signal wake up from. This state can be D3cold on platforms with ACPI PM support. And runtime PM can provide a gerneral sysfs interface for a system policy manager. Runtime PM support is based on current HDA power saving implementation. The user can enable runtime PM on platfroms that provide acceptable latency on transition from D3 to D0. Details: - When both power saving and runtime PM are enabled: -- If a codec supports 'stop-clock' in D3, it will request suspending the controller after it enters D3 and request resuming the controller before back to D0. Thus the controller will be suspended only when all codecs are suspended and support stop-clock in D3. -- User IO operations and HW wakeup signal can resume the controller back to D0. - If runtime PM is disabled, power saving just works as before. - If power saving is disabled, the controller won't be suspended because the power usage counter can never be 0. More about 'stop-clock' feature: If a codec can support targeted pass-through operations in D3 state when there is no BCLK present on the link, it will set CLKSTOP flag in the supported power states and report PS-ClkStopOk when entering D3 state. Please refer to HDA spec section 7.3.3.10 Power state and 7.3.4.12 Supported Power State. [Fixed CONFIG_PM_RUNTIME dependency in hda_intel.c by tiwai] Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | ALSA: hda - Call snd_hda_jack_report_sync() generically in hda_codec.cTakashi Iwai2012-08-227-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of calling the jack sync in the init callback of each codec, call it generically at initialization and resume. By calling it at the last of resume sequence, a possible race between the jack sync and the unsol event enablement in the current code will be closed, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | Merge branch 'for-linus' into for-nextTakashi Iwai2012-08-2012-163/+152
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: sound/pci/hda/hda_codec.c Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | | ALSA: hda - Add missing ifdef CONFIG_SND_HDA_POWER_SAVE to tracepointsTakashi Iwai2012-08-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | | ALSA: hda - Check the power state when power_save option is changedTakashi Iwai2012-08-201-1/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... by calling the newly introduced snd_hda_power_sync(). I had to reimplement a wheel for adding the trigger at changing the parameter -- the parameter set ops is overwritten to pass the integer parameter, then trigger the power-state sync. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | | | ALSA: hda - Implement snd_hda_power_sync() helper functionTakashi Iwai2012-08-202-60/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a new helper function snd_hda_power_sync() to trigger the power-saving manually. It's an inline function call to snd_hda_power_save() helper function. Together with this addition, snd_hda_power_up*() and snd_hda_power_down() functions are inlined to a call of the same snd_hda_power_save() helper function. Signed-off-by: Takashi Iwai <tiwai@suse.de>
OpenPOWER on IntegriCloud