aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_local.h
Commit message (Collapse)AuthorAge
* ALSA: hda - introduce snd_hda_jack_detect() and snd_hda_pin_sense()Wu Fengguang2009-11-18
| | | | | | | | | This helps merge duplicate code. v2: add snd_hda_jack_detect() and comments recommended by Takashi. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: intelhdmi - export monitor-presence and ELD-valid statusWu Fengguang2009-11-18
| | | | | Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix build errors with CONFIG_SND_HDA_INPUT_BEEP=nTakashi Iwai2009-11-16
| | | | | | Disable beep-related codes when CONFIG_SND_HDA_INPUT_BEEP isn't set. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - move snd_hda_pcm_type_name from hda_codec.h to hda_local.hJaroslav Kysela2009-11-16
| | | | | | | The snd_hda_pcm_type_name array is local only. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Get rid of magic digits for subdev hackTakashi Iwai2009-11-16
| | | | | | | Define a proper const for a magic 31bit flag for subdev / NID setup with a brief comment. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - proc - add support for dynamic controls to mixer<->NID mappingJaroslav Kysela2009-11-16
| | | | | | | | This patch adds support for dynamically created controls to proc codec file (Control: lines). Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - proc - introduce Control: lines to show mixer<->NID assignmentJaroslav Kysela2009-11-16
| | | | | | | | This is an initial patch to show universal control<->NID assigment in proc codec file. The change helps to debug codec related problems. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda_intel: Digital PC Beep - change behaviour for input layerJaroslav Kysela2009-11-16
| | | | | | | | | | | | | | | | Original implementation was keeping registered input device for SND_BEEP and SND_TONE events all time. This patch changes this behaviour: If digital PC Beep is turned off using universal control switch, the input device is unregistered. Explanation: The kd_mksound() send SND_BEEP and SND_TONE only to last registered device acceping those events. It means that the HDA Intel audio driver blocks also the internal PC Speaker device (pcspkr.c driver) even if the HDA Beep is muted. The user can easy disable all beeps using 'setterm -blength 0' or 'xset b off' command. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix build error without CONFIG_SND_HDA_HWDEP=yTakashi Iwai2009-11-12
| | | | | | | CONFIG_SND_HDA_POWER_SAVE is independent from CONFIG_SND_HDA_HWDEP. Thus snd_hda_hwdep_add_power_sysfs() needs the check of both kconfigs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add power on/off counterTakashi Iwai2009-11-11
| | | | | | | | | | Added the power on/off counter and expose via sysfs files. The sysfs files, power_on_acct and power_off_acct, are created under each codec hwdep sysfs directory (e.g. /sys/class/sound/hwC0D0). The files show the msec length of the codec power-on and power-off, respectively. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - vectorize intelhdmiWu Fengguang2009-10-30
| | | | | | | | | | | | | | | | | The Intel IbexPeak HDMI codec supports 2 converters and 3 pins, which requires converting the cvt_nid/pin_nid to arrays. The active pin number (the one connected with a live HDMI monitor/sink) will be dynamically identified on hotplug events. It exports two HDMI devices, so that user space can choose the A/V pipe for sending the audio samples. It's still undefined behavior when there are two active monitors connected and routed to the same audio converter. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda: move open coded tricks into get_wcaps_channels()Wu Fengguang2009-08-24
| | | | | Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Introduce get_wcaps_type() macroTakashi Iwai2009-07-27
| | | | | | Add a helper macro to retrieve the widget type from wiget cap bits. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Don't call snd_hda_codec_configure in snd_hda_codec_new()Takashi Iwai2009-06-24
| | | | | | | | | | The codec setup call via snd_hda_codec_configure() isn't necessarily called in snd_hda_codec_new(). For the later added feature, it's better to change the code flow like: - create all codec instances - configure each codec Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Cache pin-cap valuesTakashi Iwai2009-03-23
| | | | | | | Added snd_hda_query_pin_caps() to read and cache pin-cap values to avoid too frequently issuing the same verbs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add hint string helper functionsTakashi Iwai2009-03-02
| | | | | | | | | Added snd_hda_get_hint() and snd_hda_get_bool_hint() helper functions to retrieve a hint value. Internally, the hint is stored in a pair of two strings, key and val. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: sound/pci/hda: fix sparse warning: different signednessHannes Eder2009-02-26
| | | | | | | | | | Fix this sparse warning: sound/pci/hda/hda_codec.c:1544:19: warning: incorrect type in assignment (different signedness) sound/pci/hda/hda_codec.c:1544:19: expected unsigned long *vals sound/pci/hda/hda_codec.c:1544:19: got long *<noident> Signed-off-by: Hannes Eder <hannes@hanneseder.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add pseudo device-locking for clear/reconfigTakashi Iwai2009-02-23
| | | | | | | Added the pseudo device-locking using card->shutdown flag to avoid the crash via clear/reconfig during operations. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'fix/hda' into topic/hdaTakashi Iwai2009-02-13
|\
| * ALSA: hda - Add snd_hda_multi_out_dig_cleanup()Takashi Iwai2009-02-13
| | | | | | | | | | | | | | | | | | | | | | | | Added the helper function snd_hda_multi_out_dig_cleanup() to clean up the digital outputs with multi setup. This call is needed in cases the codec supports multiple digital outputs as slaves. Otherwise the slave widgets aren't properly cleaned up. For a single digital output (e.g. in patch_conexant.c), this call isn't needed. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Detect multiple digital-out pinsTakashi Iwai2009-02-11
| | | | | | | | | | | | | | | | | | Detect multiple digital-out pins in snd_hda_parse_pin_defconfig(). The dig_out_pin and dig_out_type fields become arrays. The codec parser still doesn't use this multiple pins detection, though. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: enable concurrent digital outputs for ALC1200Wu Fengguang2009-02-06
| | | | | | | | | | | | | | | | | | Add the SPDIF pin as slave digital out to enable concurrent HDMI/SPDIF outputs for ASUS M3A-H/HDMI with ALC1200 codec. Tested-by: Thomas Schneider <nailstudio@gmx.net> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'test/hda-vol-ofs' into next/hdaTakashi Iwai2009-01-22
|\ \
| * | ALSA: hda - Add extra volume offset to standard volume amp macrosTakashi Iwai2009-01-20
| |/ | | | | | | | | | | | | | | Added the volume offset to base for the standard volume controls to handle elements with too big volume scales like -96dB..0dB. For such elements, you can set the base volume to reduce the range. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* / ALSA: hda - Check HDMI jack types in the auto configurationTakashi Iwai2009-01-20
|/ | | | | | | | Add dig_out_type and dig_in_type fields to autocfg struct. A proper HDA_PCM_TYPE_* value is assigned to these fields according to the pin-jack location type value. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add a new function to seek for a codec IDMauro Carvalho Chehab2008-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* ALSA: hda - Make CONFIG_SND_HDA_RECONFIG for codec reconfigurationTakashi Iwai2008-11-21
| | | | | | | | Make the codec re-configuration feature selectable via Kconfig, CONFIG_SND_HDA_RECONFIG. Also mark it as experimental (as it really is). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Release ELD proc fileTakashi Iwai2008-11-21
| | | | | | Release ELD proc file when reconfigured so that no leak occurs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add missing static for snd_hda_eld_proc_new() inline funcitonTakashi Iwai2008-11-21
| | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda: make global snd_print_pcm_bits()Wu Fengguang2008-11-19
| | | | | | | Introduce a global function snd_print_pcm_bits() and use it in the ELD code. Signed-off-by: Wu Fengguang <wfg@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda: rename sink_eld to hdmi_eldWu Fengguang2008-11-19
| | | | | | | Rename struct sink_eld to hdmi_eld. Signed-off-by: Wu Fengguang <wfg@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda: make global snd_print_channel_allocation()Wu Fengguang2008-11-19
| | | | | | | code refactor: make a global function snd_print_channel_allocation(). Signed-off-by: Wu Fengguang <wfg@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: ELD proc interface for HDMI sinksWu Fengguang2008-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Create /proc/asound/card<card_no>/eld#<codec_no> to reflect the audio configurations and capabilities of the attached HDMI sink. Some notes: - Shall we show an empty file if the ELD content is not valid? Well it's not that simple. There could be partially populated ELD, and there may be malformed ELD provided by buggy drivers/monitors. So expose ELD as it is. - The ELD retrieval routines rely on the Intel HDA interface, others are/could be universal and independent ones. - How do we name the proc file? If there are going to be two HDMI pins per codec, then the current naming scheme (eld#<codec no>) will fail. Luckily the user space dependencies should be minimal, so it would be trivial to do the rename if that happens. - The ELD proc file content is designed to be easy for scripts and human reading. Its lines all have the pattern: <item_name>\t[\t]*<item_value> where <item_name> is a keyword in c language, while <item_value> could be any contents, including white spaces. <item_value> could also be a null value. Signed-off-by: Wu Fengguang <wfg@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: create hda_eld.c for ELD routines and proc interfaceWu Fengguang2008-11-18
| | | | | | | | ELD handling routines can be shared by all HDMI codecs, and they are large enough to make a standalone source file. Signed-off-by: Wu Fengguang <wfg@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: introduce snd_print_pcm_rates()Wu Fengguang2008-11-18
| | | | | | | | We want to share some code with print_pcm_rates(), so extract a common routine snd_print_pcm_rates() from it. Signed-off-by: Wu Fengguang <wfg@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix indentation in hda_local.hTakashi Iwai2008-10-29
| | | | | | Just cosmetic fixes of spacing that annoyed me. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add sysfs entries to hwdep devicesTakashi Iwai2008-10-12
| | | | | | | 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>
* ALSA: hda - Add codec reconfiguration featureTakashi Iwai2008-10-12
| | | | | | | | | 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>
* ALSA: hda - Manage kcontrol listsTakashi Iwai2008-10-12
| | | | | | | | 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>
* ALSA: HDA: hda_local: Less magic numbers.Robin H. Johnson2008-09-23
| | | | | | | | | Explain some of the magic numbers I saw while trying to fix the AD1989 SPDIF issue. Maybe should just use the expanded form directly in the verbs? Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* ALSA: hda: Input port AMP controlsMatthew Ranostay2008-09-23
| | | | | | | | | 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>
* [ALSA] Move vmaster code to sound coreTakashi Iwai2008-04-24
| | | | | | | Move the codes for virtual master controls to sound core part so that not only hda-intel drivers can use it. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] hda-codec - Add "IEC958 Default PCM" switchTakashi Iwai2008-04-24
| | | | | | | | | | | | | Added a new mixer switch to enable/disable the sharing of the default PCM stream with analog and SPDIF outputs. When "IEC958 Default PCM" switch is on, the PCM stream is routed both to analog and SPDIF outputs. This is the behavior in the earlier version. Turning this switch off has a merit for some codecs, though. Some codec chips don't support 24bit formats for SPDIF but only for analog outputs. In this case, you can use 24bit format by disabling this switch. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] hda: Add dynamic mono mixer support for STAC92xx codecsMatthew Ranostay2008-01-31
| | | | | | | | | Allows for dynamically creating mono out mixer controls and well as mono mux controls. Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] hda: Added mono_out_pin to autoconfigMatthew Ranostay2008-01-31
| | | | | | | | | Added a mono_out_pin field to autocfg struct, and code to parse for the mono_out_line. Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] hda-codec - Don't query widget parameter for invalid NIDTakashi Iwai2008-01-31
| | | | | | | | | | Don't query a widget parameter for an invalid NID in get_wcaps() but rather returns zero (i.e. no attribute). The read to an non-existing widget may result in a fatal codec communication error. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] hda-codec - Add virtual master controlsTakashi Iwai2008-01-31
| | | | | | | | Add master controls using vmaster to codecs that have no real hardware master volume registers. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] Add virtual master control helpersTakashi Iwai2008-01-31
| | | | | | | | | | | | | | Added helper functions to implement virtual master volume controls. The virtual master control is a control element that has multiple slave controls. The value of master element is equally added to slave elements. The functions are written for general purpose, but it's put in the HD-audio directory as now, since HD-audio driver is the only user. It should be moved to the common place once after other drivers use vmaster. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] hda-codec - Disable shared stream on AD1986ATakashi Iwai2007-11-19
| | | | | | | | | | | | | AD1986A has a hardware problem that it cannot share a stream with multiple pins properly. The problem occurs e.g. when a volume is changed during playback. So far, hda-intel driver unconditionally assigns the stream to multiple output pins in copy-front mode, and this should be avoided for AD1986A codec. The original fix patch was by zhejiang <zhe.jiang@intel.com>. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] hda-codec - Fix possible array overflowTakashi Iwai2007-10-23
| | | | | | | | | | dac_nids arrays in each codec support code may have up to 5 items when assigned from the auto-configurator. Some codec codes have less numbers than the possible max. This patch defines the constant and fixes the array definitions. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>