summaryrefslogtreecommitdiffstats
path: root/sound/pci
Commit message (Collapse)AuthorAgeFilesLines
* ALSA: hda - Remove AZX_DCAPS_POSFIX_COMBOTakashi Iwai2012-10-101-5/+0
| | | | | | | | | | | | It turned out that the COMBO position fix mode is rather more harmful, and it got reverted (with the replacement of runtime->delay calculation) recently. Hence we can get rid of AZX_DCAPS_POSFIX_COMBO as well. It's still possible to pass this mode via position_fix module option, in case where this really helps on weird machines (who knows). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Warn an allocation for an uninitialized arrayTakashi Iwai2012-10-101-0/+2
| | | | | | | Better to add a sanity check as I tend to forget something (especially during crazy midsummer nights). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda/cirrus - Add missing init/free of hda_gen_specTakashi Iwai2012-10-101-0/+4
| | | | | | | In the transition to the generic fixup code, the call of snd_hda_gen_init() and snd_hda_gen_free() was missing. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix memory leaks at error path in patch_cirrus.cTakashi Iwai2012-10-101-3/+3
| | | | | | | The proper destructor should be called at the error path. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add missing hda_gen_spec to struct via_specTakashi Iwai2012-10-101-0/+4
| | | | | | | | | | | | | The commit [4b527b65 ALSA: hda - limit internal mic boost for Asus X202E] introduced the use of auto-parser code, but it forgot to add struct hda_gen_spec at the head of codec->spec which the auto-parser assumes silently. Without this record, it may result in memory corruption. This patch adds the missing piece. Cc: <stable@vger.kernel.org> [v3.5+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - remove "Mic Jack Mode" for headset jacks (Latitude Exx30)David Henningsson2012-10-091-0/+27
| | | | | | | | | | Dell Latitude 5x30 and 6x30 series of machines all have a single 4-pin headset jack. Enabling line in mode for such jack is very confusing (you would only get mono input, and would have to use non-standard adapters), so remove the option by default. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - make Cirrus codec use generic unsol event handlerDavid Henningsson2012-10-081-38/+10
| | | | | Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - make VIA codec use generic unsol event handlerDavid Henningsson2012-10-081-24/+23
| | | | | Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Remove dead GPIO code for VIA codecDavid Henningsson2012-10-081-47/+0
| | | | | | | | From what I can conclude all GPIO handling was removed in 2009. Remove dead code remnants. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add new codec ALC283 ALC290 supportKailang Yang2012-10-061-0/+2
| | | | | | | These are compatible with standard ALC269 parser. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - avoid unneccesary indices on "Headphone Jack" controlsDavid Henningsson2012-10-061-12/+37
| | | | | | | | | | In case there is one "Headphone Jack" and one "Dock Headphone Jack", one of them will get an index, even though that is not needed. This patch fixes that issue. BugLink: https://bugs.launchpad.net/bugs/1060729 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - fix indices on boost volume on ConexantDavid Henningsson2012-10-061-1/+1
| | | | | | | | | | | | After the recent patch "ALSA: hda - use both input paths on Conexant auto parser" suddenly we can have more than one "Mic Boost", this happened on Acer Aspire One 722. Therefore we must add the possibility to put an index on this "Mic Boost" just as we do for the other "Mic Boost" earlier in the same function. BugLink: https://bugs.launchpad.net/bugs/1059523 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix hang caused by race during suspend.Dylan Reid2012-10-061-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | There was a race condition when the system suspends while hda_power_work is running in the work queue. If system suspend (snd_hda_suspend) happens after the work queue releases power_lock but before it calls hda_call_codec_suspend, codec_suspend runs with power_on=0, causing the codec to power up for register reads, and hanging when it calls cancel_delayed_work_sync from the running work queue. The call chain from the work queue will look like this: hda_power_work <<- power_on = 1, unlock, then power_on cleard by suspend hda_call_codec_suspend hda_set_power_state snd_hda_codec_read codec_exec_verb snd_hda_power_up snd_hda_power_save __snd_hda_power_up cancel_delayed_work_sync <<-- cancelling executing wq Fix this by waiting for the work queue to finish before starting suspend if suspend is not happening on the work queue. Signed-off-by: Dylan Reid <dgreid@chromium.org> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: Remove unnecessary semicolonPeter Senna Tschudin2012-10-067-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | A simplified version of the semantic patch that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r1@ statement S; position p,p1; @@ S@p1;@p @script:python r2@ p << r1.p; p1 << r1.p1; @@ if p[0].line != p1[0].line_end: cocci.include_match(False) @@ position r1.p; @@ -;@p // </smpl> Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda/realtek - Fix detection of ALC271X codecHerton Ronaldo Krzesinski2012-10-061-6/+6
| | | | | | | | | | | | | | | | | | In commit af741c1 ("ALSA: hda/realtek - Call alc_auto_parse_customize_define() always after fixup"), alc_auto_parse_customize_define was moved after detection of ALC271X. The problem is that detection of ALC271X relies on spec->cdefine.platform_type, and it's set on alc_auto_parse_customize_define. Move the alc_auto_parse_customize_define and its required fixup setup before the block doing the ALC271X and other codec setup. BugLink: https://bugs.launchpad.net/bugs/1006690 Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com> Reviewed-by: David Henningsson <david.henningsson@canonical.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310Felix Kaechele2012-10-061-0/+1
| | | | | | | | | The Lenovo IdeaPad U310 has an internal mic where the right channel is phase inverted. Signed-off-by: Felix Kaechele <felix@fetzig.org> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - make Realtek/Sigmatel/Conexant use the generic unsol eventDavid Henningsson2012-10-063-101/+49
| | | | | | | | For less duplication of code between codecs, and to make it easier in the future to improve code for all codecs simultaneously. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - make a generic unsol event handlerDavid Henningsson2012-10-062-2/+39
| | | | | | | | | Moving towards less duplication of code between codecs - this patch takes some of the common code of unsol event handling and makes it generic. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge tag 'asoc-3.7' of ↵Takashi Iwai2012-09-222-1/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v3.7 Lots and lots of driver specific cleanups and enhancements but the only substantial framework feature this time round is the compressed API binding: - Addition of ASoC bindings for the compressed API, used by the mid-x86 drivers. - Lots of cleanups and API refreshes for CODEC drivers and DaVinci. - Conversion of OMAP to dmaengine. - New machine driver for Wolfson Microelectronics Bells. - New CODEC driver for Wolfson Microelectronics WM0010.
| * ALSA: hda - Yet another position_fix quirk for ASUS machinesTakashi Iwai2012-09-131-0/+1
| | | | | | | | | | | | | | | | | | ASUS X53S also suffers from the same issue as in commit c302d6133. Use POS_FIX_POSBUF for this hardware, too. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=47461 Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: ice1724: Use linear scale for AK4396 volume control.Matteo Frigo2012-09-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | The AK4396 DAC has a linear-scale attentuator, but sound/pci/ice1712/prodigy_hifi.c used a log scale instead, which is not quite right. This patch restores the correct scale, borrowing from the ak4396 code in sound/pci/oxygen/oxygen.c. Signed-off-by: Matteo Frigo <athena@fftw.org> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - add PCI identifier for Intel 5 Series/3400Pierre-Louis Bossart2012-09-221-0/+4
| | | | | | | | | | | | | | Tested with LPIB delay without any issues. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - use LPIB for delay estimationPierre-Louis Bossart2012-09-221-7/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DMA Position in Buffer (DPIB) should be used for ring buffer management, while LPIB register provides information on the number of samples transfered on the link. The difference between the two pieces of information corresponds to hardware/DMA buffering. This patch reports this difference in runtime->delay, and removes the use of the COMBO mode on recent Intel hardware. Credits to Takashi Iwai for an initial patch. [rebased to for-next branch and replaced snd_printk() with snd_printdd() by tiwai] Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - force use of SSYNC bitsPierre-Louis Bossart2012-09-221-20/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SSYNC bits are typically used to start multiple streams synchronously. It makes sense to use them for a single stream for a more predictable startup sequence. The transfers only start once the DMA and FIFOs are ready. This results in a better correlation between timestamps and number of samples played. Credits to Kar Leong Wang for suggesting this improvement. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/via - don't report presence on HPs with no presence supportHerton Ronaldo Krzesinski2012-09-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If headphone jack can't detect plug presence, and we have the jack in the jack table, snd_hda_jack_detect will return the plug as always present (as it'll be considered as a phantom jack). The problem is that when this happens, line out pins will always be disabled, resulting in no sound if there are no headphones connected. This was reported as a no sound problem after suspend on http://bugs.launchpad.net/bugs/1052499, since the bug doesn't manifests on first initialization before the phantom jack is added, but on resume we reexecute the initialization code, and via_hp_automute starts reporting HP always present with the jack now on the table. BugLink: https://bugs.launchpad.net/bugs/1052499 Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com> Cc: <stable@vger.kernel.org> [v3.6+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add external mic quirk for Asus Zenbook UX31AOleksij Rempel2012-09-211-0/+1
| | | | | | | | | | Signed-off-by: Oleksij Rempel <bug-track@fisher-privat.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - use both input paths on Conexant auto parserDavid Henningsson2012-09-201-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On the Thinkpad W520 - and probably several other machines with Conexant 506x chips - the Dock Mic and Mic are connected to the same two selector nodes. This patch will make Dock Mic take one selector node and Mic take the other, when possible. Without the patch, both paths would take the first selector, leading to the normal Mic's volume being controlled by "Dock Mic Boost". (On other machines, this could instead fixup similar problems between Mic and Line In, for example.) BugLink: https://bugs.launchpad.net/bugs/1037642 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - avoid non-standard "Docking" name in mixersDavid Henningsson2012-09-192-9/+9
| | | | | | | | | | | | | | | | The standard name (and what PulseAudio picks up) is "Dock Mic", not "Docking Mic" or "Docking-Station". Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - limit internal mic boost for Asus X202EDavid Henningsson2012-09-181-0/+29
| | | | | | | | | | | | | | | | | | | | | | When the input gain for the internal mic is set to its maximum level, the background noise becomes so high - and any relevant signal clipped - that the setting becomes unusable. It is better to limit the amplification. BugLink: https://bugs.launchpad.net/bugs/1052460 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Cc: <stable@vger.kernel.org> [v3.5+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add another pci id for Haswell boardWang Xingchao2012-09-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | A new PCI id 0x0d0c for Haswell HDA Controller. [root@SKBM04SDP ~]# lspci |grep Audio 00:03.0 Audio device: Intel Corporation Device 0d0c (rev 02) 00:1b.0 Audio device: Intel Corporation Lynx Point HD Audio Controller Signed-off-by: Wang Xingchao <xingchao.wang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | 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>
OpenPOWER on IntegriCloud