aboutsummaryrefslogtreecommitdiff
path: root/sound/pci/hda/hda_codec.c
AgeCommit message (Collapse)Author
2009-01-13Merge branch 'topic/hda-gateway' into topic/hdaTakashi Iwai
2009-01-13ALSA: hda - Use queue_delayed_work()Takashi Iwai
Replaced the old schedule_work() with queue_delayed_work() where overlooked in the previous patches. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-12ALSA: hda - Use own workqueueTakashi Iwai
snd-hda-intel driver used schedule_work() fot the delayed DMA pointer updates, but this has several potential problems: - it may block other eventsd works longer - it may deadlock when probing fails and flush_scheduled_work() is called during probe callback (as probe callback itself could be invoked from eventd) This patch adds an own workq for each driver instance to solve these problems. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-09ALSA: hda - create hda_codec.control_mutex for kcontrol->private_valueWu Fengguang
Fix the following lockdep warning by not reusing the hda_codec.spdif_mutex. ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2 ======================================================= [ INFO: possible circular locking dependency detected ] 2.6.28-next-20090102 #33 ------------------------------------------------------- mplayer/3151 is trying to acquire lock: (&pcm->open_mutex){--..}, at: [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm] but task is already holding lock: (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80 which lock already depends on the new lock. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19ALSA: hda - Add probe_only optionTakashi Iwai
Added probe_only module option to hd-audio driver. This option specifies whether the driver creates and initializes the codec-parser after probing. When this option is set, the driver skips the codec parsing and initialization but gives you proc and other accesses. It's useful to see the initial codec state for debugging. The default of this value is off, so the default behavior is as same as before. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-19ALSA: hda - Add missing initializations of amp and verb cachesTakashi Iwai
The re-initializations of codec amp and verb caches are missing at reconfig, which may cause Oops occasionally. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-18ALSA: hda - Add Intel vendor id stringTakashi Iwai
Added Intel codec vendor id string (0x8086). Also fixed Intel-HDMI codec name strings, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-16ALSA: hda - Add Nvidia vendor id stringTakashi Iwai
Added Nvidia (0x10de) to the vendor id list. Cleaned up the codec name strings accordingly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-12-03Merge branch 'topic/hda-modularize' into topic/hdaTakashi Iwai
2008-11-30ALSA: hda - Add a new function to seek for a codec IDMauro Carvalho Chehab
Gateway notebooks have their ID inside codec vendor ID, not at PCI ID. Due to that, model auto-detection were not possible with the standard seek method. This is what is found at lspci -vnn: 00:14.2 Audio device [0403]: ATI Technologies Inc SB450 HDA Audio [1002:437b] (rev 01) Subsystem: ATI Technologies Inc SB450 HDA Audio [1002:437b] Yet, autodetection is possible, since the codec properly reflects the vendor at the Subsystem ID: $ cat /proc/asound/card0/codec#0 |head -4 Codec: SigmaTel STAC9250 Address: 0 Vendor Id: 0x83847634 Subsystem Id: 0x107b0367 This patch adds a new autodetection function that seeks for codec subsystem ID. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-28ALSA: hda - Don't export symbols when built-in kernelTakashi Iwai
The global functions in hda_codec.c and other core parts are only for HD-audio codec and controller drivers. When the HD-audio driver is built in kernel, all stuff have to be statically linked, thus we don't need any exports. This patch introduces a conditional macro to do export only when needed. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-28ALSA: hda - Check MODULE instead of CONFIG_SND_HDA_INTEL_MODULETakashi Iwai
Checking MODULE is more generic. Also a cosmetic comment change. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-28ALSA: hda - Clear codec->proc_widget_hook at resetTakashi Iwai
Clear the remaining pointer at snd_hda_codec_reset() to avoid Oops. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-27ALSA: hda - Modularize HD-audio driverTakashi Iwai
Split the monolithc HD-audio driver into several pieces: - snd-hda-intel HD-audio PCI controller driver; loaded via udev - snd-hda-codec HD-audio codec bus driver - snd-hda-codec-* Specific HD-audio codec drivers When built as modules, snd-hda-codec (that is invoked by snd-hda-intel) looks up the codec vendor ID and loads the corresponding codec module automatically via request_module(). When built in a kernel, each codec drivers are statically hooked up before probing the PCI. This patch adds appropriate EXPORT_SYMBOL_GPL()'s and the module information for each driver, and driver-linking codes between codec-bus and codec drivers. TODO: - Avoid EXPORT_SYMBOL*() when built-in kernel - Restore __devinit appropriately depending on the condition Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-27ALSA: hda - Fix PCM reconfigureTakashi Iwai
The reconfiguration of PCM affected all PCM streams on the bus, but this this should be done rather only for the target codec. This patch does the following: - introduce bitmap indicating the PCM device usages on a hda_bus - refactor the PCM build functions - fix __devinit prefix in some fucntions - add a proper ifdef around HDA-reconfig-specific functions Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-27ALSA: hda - Move power_save option to hda_intel.cTakashi Iwai
Move power_save option into hda_intel.c, and make a field in hda_bus, instead of keeping module parameters in separate files. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-27ALSA: hda - make some functions staticTakashi Iwai
Minor clean ups: move snd_hda_codecs_inuse() into hda_intel.c and make static. Also, make snd_hda_query_supported_pcm() static as it's used only in hda_codec.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-26ALSA: sound/pci/hda/hda_codec.c: cleanup kernel-docQinghuang Feng
There is no argument named @state in snd_hda_resume, remove its' comment. Signed-off-by: Qinghuang Feng <qhfeng.kernel@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-25Merge branch 'topic/fix/hda' into topic/hdaTakashi Iwai
Conflicts: sound/pci/hda/patch_sigmatel.c
2008-11-25ALSA: hda - Fix caching of SPDIF status bitsTakashi Iwai
SPDIF status bits controls are written via snd_hda_codec_write() without caching. This causes a regression at resume that the bits are lost. Simply replacing it with the cached version fixes the problem. Reference: http://lkml.org/lkml/2008/11/24/324 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-21ALSA: hda - Fix build without CONFIG_PROC_FSTakashi Iwai
snd_print_pcm_rates() and snd_print_pcm_bits() are used by both hda_proc.c and hda_eld.c, thus they have to be defined in the common place. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-21ALSA: hda - Fix double free of jack instancesTakashi Iwai
The jack instances created in patch_sigmatel.c may be double-freed. The device management code checks the invalid element, and thus there is no real breakage, but it spews annoying warning messages. But, we can't simply remove the release calls of these jack instances because they have to be freed when the codec is re-configured. Now, a new flag, bus->shutdown is introduced to indicate that the bus is really being unloaded, i.e. the objects managed by the device manager will be automatically deleted. We release these objects only when this flag isn't set. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-10ALSA: hda - Fix another cache list managementTakashi Iwai
Fix another silly bug in the amp cache list management. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-07ALSA: hda - Fix broken hash chain allocationTakashi Iwai
The chaining for amp hash got broken due to the rewrite with snd_array. Fixed now. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-07ALSA: hda - Add max allocation check in array allocatorTakashi Iwai
Added a check for max allocation size in snd_array_new() for a debugging purpose. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-07ALSA: hda - Add missing NULL check in amp hash allocationTakashi Iwai
Added the missing NULL check from allocator in get_alloc_hash(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-06ALSA: hda - simplify hda_bus ops callbacksTakashi Iwai
The hda_bus ops callback take struct hda_bus pointer. Also, the command callback takes the composed command word, instead of each small bits in arguments. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-05ALSA: hda - Intel HDMI audio supportWu, Fengguang
Add support for Intel G45 integrated HDMI audio codecs. This initial release supports: - 2 channel stereo sound output - report monitor's ELD information Signed-off-by: Wu Fengguang <wfg@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-04ALSA: hda - Don't create empty PCM streamsTakashi Iwai
Due to the hda-reconfiguration patches, the check of empty stream is gone, and this results in an error with the codec setup with empty streams. This patch adds the check again to avoid the error at probing. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-04ALSA: hda - Fix possible NULL dereferenceTakashi Iwai
Add NULL-check of the return value of snd_kctl_new1() before accessing it. Also, make a sanity NULL check to snd_BUG_ON() for debugging only. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-29Merge branch 'topic/fix/hda' into topic/hdaTakashi Iwai
2008-10-28ALSA: hda: Add HDA vendor ID for Wolfson MicroelectronicsMark Brown
Add Wolfson Microelectronics to the HDA vendor ID table. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-27ALSA: hda: add snd_hda_get_jack* functionsMatthew Ranostay
This patch adds snd_hda_get_jack* functions for reporting jack location, device, and connectivity type. Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-13ALSA: hda - Add init_verbs entriesTakashi Iwai
This patch enables the additional init verbs for each codec. The verbs can be entered via hwdep sysfs file. These verbs are executed at reconfiguring the codec for non-standard setups like overriding the pin-defcfg. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-13ALSA: hda - Add sysfs entries to hwdep devicesTakashi Iwai
Added the sysfs entries to hwdep devices so that the new features like reconfiguration can be done via sysfs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-13ALSA: hda - Add codec reconfiguration featureTakashi Iwai
Added the reconfiguration feature of any individual codec. Via the reconfiguration, the old resources are released and the patch is called again to recreate the PCM and mixers in addition to the re-initialization. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-13ALSA: hda - Manage kcontrol listsTakashi Iwai
Manage all kcontrol elements created in the hda-intel driver. This makes it possible to remove and reconfigure the controls of each codec. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-13ALSA: hda - Allocate name string of each codecTakashi Iwai
Allocate dynamically the name string of each codec instead of pointing to a static string. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-13ALSA: hda - Use generic array helpersTakashi Iwai
Use generic array helpers to simplify array handling in snd-hda-intel. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-13ALSA: hda - Add generic arraysTakashi Iwai
Added helper functions to handle generic arrays. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-13ALSA: hda - Add infrastructure for dynamic stream allocationTakashi Iwai
Added the infrastructure for dynamic stream allocation on HD-audio. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-10ALSA: hda: comment typo fixWu Fengguang
fix a typo in comment for is_in_nid_list(). Signed-off-by: Wu Fengguang <wfg@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-10-10ALSA: hda: comment typo fixWu Fengguang
fix a typo in comment for process_unsol_events(). Signed-off-by: Wu Fengguang<wfg@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-10-10ALSA: Support NVIDIA MCP78/7A HDMI audioWei Ni
Add NVIDIA HDMI HD-audio codec support in snd-hda-intel driver, include NVIDIA MCP78/7A HDMI. Signed-off-by: Wei Ni <wni@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-10-10ALSA: hda - Fix / clean-up slave digital out codesTakashi Iwai
The recent slave_dig_out addition has some rooms to clean up. Also it doesn't call snd_hda_cleanup_stream() properly for slaves at closing. The patch fixes both issues. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-10-10ALSA: hda: slave_dig_outs code block in wrong locationMatthew Ranostay
Removed invalid references to slave_dig_outs inside the S/PDIF IN capture switch control. Beforehand this was basically a mute switch for the S/PDIF outs as well. Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-09-23ALSA: hda: Input port AMP controlsMatthew Ranostay
Added support for controlling hardware gain amps on input ports using a volume control mixer with a mux selecting the port being controlled. Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-09-23ALSA: hda: fix oopses in snd-hda-intel after digital slave support additionsHerton Ronaldo Krzesinski
Many places fail to check if codec has slave_dig_outs entries (the most common case is not having any entry), leading to various possible oopses in hda_codec code. Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-09-09ALSA: hda: slave digital out supportMatthew Ranostay
Added support for playing a stream on multiple digital outs. This is done by defining codec->slave_dig_outs as array of hda_nid_t with a null-terminated entry to set the slave SPDIF outs, in which the slave outs have cloned settings of the master out (e.g. dig_out_nid). Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-08-13ALSA: hda - put all HDA codec IDs to components for precise hw detectionJaroslav Kysela
Export HDA codec subvendor ID and revision ID to user space via the components variable. Our alsactl utility requires these values for the perfect hardware identification. Signed-off-by: Jaroslav Kysela <perex@perex.cz>