2005-04-16 15:20:36 -07:00
/*
* Universal Interface for Intel High Definition Audio Codec
*
* Generic proc interface
*
* Copyright ( c ) 2004 Takashi Iwai < tiwai @ suse . de >
*
*
* This driver is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This driver is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*/
# include <linux/init.h>
# include <sound/core.h>
# include "hda_codec.h"
2005-11-23 13:14:50 +01:00
# include "hda_local.h"
2005-04-16 15:20:36 -07:00
2009-11-18 12:38:08 +08:00
static char * bits_names ( unsigned int bits , char * names [ ] , int size )
{
int i , n ;
static char buf [ 128 ] ;
for ( i = 0 , n = 0 ; i < size ; i + + ) {
if ( bits & ( 1U < < i ) & & names [ i ] )
n + = snprintf ( buf + n , sizeof ( buf ) - n , " %s " ,
names [ i ] ) ;
}
buf [ n ] = ' \0 ' ;
return buf ;
}
2005-04-16 15:20:36 -07:00
static const char * get_wid_type_name ( unsigned int wid_value )
{
static char * names [ 16 ] = {
[ AC_WID_AUD_OUT ] = " Audio Output " ,
[ AC_WID_AUD_IN ] = " Audio Input " ,
[ AC_WID_AUD_MIX ] = " Audio Mixer " ,
[ AC_WID_AUD_SEL ] = " Audio Selector " ,
[ AC_WID_PIN ] = " Pin Complex " ,
[ AC_WID_POWER ] = " Power Widget " ,
[ AC_WID_VOL_KNB ] = " Volume Knob Widget " ,
[ AC_WID_BEEP ] = " Beep Generator Widget " ,
[ AC_WID_VENDOR ] = " Vendor Defined Widget " ,
} ;
2012-01-10 12:41:22 +01:00
if ( wid_value = = - 1 )
return " UNKNOWN Widget " ;
2005-04-16 15:20:36 -07:00
wid_value & = 0xf ;
if ( names [ wid_value ] )
return names [ wid_value ] ;
else
2006-10-17 20:41:38 +02:00
return " UNKNOWN Widget " ;
2005-04-16 15:20:36 -07:00
}
2009-12-08 16:13:32 +01:00
static void print_nid_array ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid ,
struct snd_array * array )
2009-11-11 13:43:01 +01:00
{
int i ;
2009-12-08 16:13:32 +01:00
struct hda_nid_item * items = array - > list , * item ;
2009-11-11 13:43:01 +01:00
struct snd_kcontrol * kctl ;
2009-12-08 16:13:32 +01:00
for ( i = 0 ; i < array - > used ; i + + ) {
item = & items [ i ] ;
if ( item - > nid = = nid ) {
kctl = item - > kctl ;
2009-11-11 13:43:01 +01:00
snd_iprintf ( buffer ,
" Control: name= \" %s \" , index=%i, device=%i \n " ,
2009-12-08 16:13:32 +01:00
kctl - > id . name , kctl - > id . index + item - > index ,
kctl - > id . device ) ;
ALSA: hda - introduce HDA_SUBDEV_AMP_FLAG (ControlAmp in proc)
The purpose of this changeset is to show information about amplifier
setting in the codec proc file. Something like:
Control: name="Front Playback Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Control: name="Front Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=In, idx=2, ofs=0
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-12-08 17:45:25 +01:00
if ( item - > flags & HDA_NID_ITEM_AMP )
snd_iprintf ( buffer ,
" ControlAmp: chs=%lu, dir=%s, "
" idx=%lu, ofs=%lu \n " ,
get_amp_channels ( kctl ) ,
get_amp_direction ( kctl ) ? " Out " : " In " ,
get_amp_index ( kctl ) ,
get_amp_offset ( kctl ) ) ;
2009-11-11 13:43:01 +01:00
}
}
}
static void print_nid_pcms ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid )
{
int pcm , type ;
struct hda_pcm * cpcm ;
for ( pcm = 0 ; pcm < codec - > num_pcms ; pcm + + ) {
cpcm = & codec - > pcm_info [ pcm ] ;
for ( type = 0 ; type < 2 ; type + + ) {
if ( cpcm - > stream [ type ] . nid ! = nid | | cpcm - > pcm = = NULL )
continue ;
snd_iprintf ( buffer , " Device: name= \" %s \" , "
" type= \" %s \" , device=%i \n " ,
cpcm - > name ,
snd_hda_pcm_type_name [ cpcm - > pcm_type ] ,
cpcm - > pcm - > device ) ;
}
}
}
2005-11-17 14:57:47 +01:00
static void print_amp_caps ( struct snd_info_buffer * buffer ,
2005-04-16 15:20:36 -07:00
struct hda_codec * codec , hda_nid_t nid , int dir )
{
unsigned int caps ;
2006-07-05 17:39:14 +02:00
caps = snd_hda_param_read ( codec , nid ,
dir = = HDA_OUTPUT ?
AC_PAR_AMP_OUT_CAP : AC_PAR_AMP_IN_CAP ) ;
2005-04-16 15:20:36 -07:00
if ( caps = = - 1 | | caps = = 0 ) {
snd_iprintf ( buffer , " N/A \n " ) ;
return ;
}
2007-07-27 16:52:19 +02:00
snd_iprintf ( buffer , " ofs=0x%02x, nsteps=0x%02x, stepsize=0x%02x, "
" mute=%x \n " ,
2005-04-16 15:20:36 -07:00
caps & AC_AMPCAP_OFFSET ,
( caps & AC_AMPCAP_NUM_STEPS ) > > AC_AMPCAP_NUM_STEPS_SHIFT ,
( caps & AC_AMPCAP_STEP_SIZE ) > > AC_AMPCAP_STEP_SIZE_SHIFT ,
( caps & AC_AMPCAP_MUTE ) > > AC_AMPCAP_MUTE_SHIFT ) ;
}
2005-11-17 14:57:47 +01:00
static void print_amp_vals ( struct snd_info_buffer * buffer ,
2005-04-16 15:20:36 -07:00
struct hda_codec * codec , hda_nid_t nid ,
2005-06-10 19:45:09 +02:00
int dir , int stereo , int indices )
2005-04-16 15:20:36 -07:00
{
unsigned int val ;
2005-06-10 19:45:09 +02:00
int i ;
2006-07-05 17:39:14 +02:00
dir = dir = = HDA_OUTPUT ? AC_AMP_GET_OUTPUT : AC_AMP_GET_INPUT ;
2005-06-10 19:45:09 +02:00
for ( i = 0 ; i < indices ; i + + ) {
snd_iprintf ( buffer , " [ " ) ;
if ( stereo ) {
2007-07-27 16:52:19 +02:00
val = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_AMP_GAIN_MUTE ,
2005-06-10 19:45:09 +02:00
AC_AMP_GET_LEFT | dir | i ) ;
snd_iprintf ( buffer , " 0x%02x " , val ) ;
}
2007-07-27 16:52:19 +02:00
val = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_AMP_GAIN_MUTE ,
2005-06-10 19:45:09 +02:00
AC_AMP_GET_RIGHT | dir | i ) ;
snd_iprintf ( buffer , " 0x%02x] " , val ) ;
2005-04-16 15:20:36 -07:00
}
2005-06-10 19:45:09 +02:00
snd_iprintf ( buffer , " \n " ) ;
2005-04-16 15:20:36 -07:00
}
2008-11-18 11:47:51 +08:00
static void print_pcm_rates ( struct snd_info_buffer * buffer , unsigned int pcm )
{
2011-10-06 08:16:29 +02:00
static unsigned int rates [ ] = {
8000 , 11025 , 16000 , 22050 , 32000 , 44100 , 48000 , 88200 ,
96000 , 176400 , 192000 , 384000
} ;
int i ;
2008-11-19 15:14:02 +08:00
2006-11-07 16:10:06 +01:00
pcm & = AC_SUPPCM_RATES ;
snd_iprintf ( buffer , " rates [0x%x]: " , pcm ) ;
2011-10-06 08:16:29 +02:00
for ( i = 0 ; i < ARRAY_SIZE ( rates ) ; i + + )
if ( pcm & ( 1 < < i ) )
snd_iprintf ( buffer , " %d " , rates [ i ] ) ;
snd_iprintf ( buffer , " \n " ) ;
2006-11-07 16:10:06 +01:00
}
2008-11-19 15:14:02 +08:00
static void print_pcm_bits ( struct snd_info_buffer * buffer , unsigned int pcm )
{
char buf [ SND_PRINT_BITS_ADVISED_BUFSIZE ] ;
2006-11-07 16:10:06 +01:00
2008-11-25 16:07:01 +01:00
snd_iprintf ( buffer , " bits [0x%x]: " , ( pcm > > 16 ) & 0xff ) ;
2008-11-19 15:14:02 +08:00
snd_print_pcm_bits ( pcm , buf , sizeof ( buf ) ) ;
snd_iprintf ( buffer , " %s \n " , buf ) ;
2006-11-07 16:10:06 +01:00
}
static void print_pcm_formats ( struct snd_info_buffer * buffer ,
unsigned int streams )
{
snd_iprintf ( buffer , " formats [0x%x]: " , streams & 0xf ) ;
if ( streams & AC_SUPFMT_PCM )
snd_iprintf ( buffer , " PCM " ) ;
if ( streams & AC_SUPFMT_FLOAT32 )
snd_iprintf ( buffer , " FLOAT " ) ;
if ( streams & AC_SUPFMT_AC3 )
snd_iprintf ( buffer , " AC3 " ) ;
snd_iprintf ( buffer , " \n " ) ;
}
2005-11-17 14:57:47 +01:00
static void print_pcm_caps ( struct snd_info_buffer * buffer ,
2005-04-16 15:20:36 -07:00
struct hda_codec * codec , hda_nid_t nid )
{
unsigned int pcm = snd_hda_param_read ( codec , nid , AC_PAR_PCM ) ;
unsigned int stream = snd_hda_param_read ( codec , nid , AC_PAR_STREAM ) ;
if ( pcm = = - 1 | | stream = = - 1 ) {
snd_iprintf ( buffer , " N/A \n " ) ;
return ;
}
2006-11-07 16:10:06 +01:00
print_pcm_rates ( buffer , pcm ) ;
print_pcm_bits ( buffer , pcm ) ;
print_pcm_formats ( buffer , stream ) ;
2005-04-16 15:20:36 -07:00
}
static const char * get_jack_connection ( u32 cfg )
{
static char * names [ 16 ] = {
" Unknown " , " 1/8 " , " 1/4 " , " ATAPI " ,
" RCA " , " Optical " , " Digital " , " Analog " ,
" DIN " , " XLR " , " RJ11 " , " Comb " ,
NULL , NULL , NULL , " Other "
} ;
cfg = ( cfg & AC_DEFCFG_CONN_TYPE ) > > AC_DEFCFG_CONN_TYPE_SHIFT ;
if ( names [ cfg ] )
return names [ cfg ] ;
else
return " UNKNOWN " ;
}
static const char * get_jack_color ( u32 cfg )
{
static char * names [ 16 ] = {
" Unknown " , " Black " , " Grey " , " Blue " ,
" Green " , " Red " , " Orange " , " Yellow " ,
" Purple " , " Pink " , NULL , NULL ,
NULL , NULL , " White " , " Other " ,
} ;
cfg = ( cfg & AC_DEFCFG_COLOR ) > > AC_DEFCFG_COLOR_SHIFT ;
if ( names [ cfg ] )
return names [ cfg ] ;
else
return " UNKNOWN " ;
}
2005-11-17 14:57:47 +01:00
static void print_pin_caps ( struct snd_info_buffer * buffer ,
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
struct hda_codec * codec , hda_nid_t nid ,
int * supports_vref )
2005-04-16 15:20:36 -07:00
{
2005-04-20 13:44:08 +02:00
static char * jack_conns [ 4 ] = { " Jack " , " N/A " , " Fixed " , " Both " } ;
2007-10-26 14:56:36 +02:00
unsigned int caps , val ;
2005-04-16 15:20:36 -07:00
caps = snd_hda_param_read ( codec , nid , AC_PAR_PIN_CAP ) ;
2008-09-13 16:54:57 -07:00
snd_iprintf ( buffer , " Pincap 0x%08x: " , caps ) ;
2005-04-16 15:20:36 -07:00
if ( caps & AC_PINCAP_IN )
snd_iprintf ( buffer , " IN " ) ;
if ( caps & AC_PINCAP_OUT )
snd_iprintf ( buffer , " OUT " ) ;
if ( caps & AC_PINCAP_HP_DRV )
snd_iprintf ( buffer , " HP " ) ;
2006-06-21 19:19:25 +02:00
if ( caps & AC_PINCAP_EAPD )
snd_iprintf ( buffer , " EAPD " ) ;
if ( caps & AC_PINCAP_PRES_DETECT )
snd_iprintf ( buffer , " Detect " ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
if ( caps & AC_PINCAP_BALANCE )
snd_iprintf ( buffer , " Balanced " ) ;
2008-07-30 15:13:29 +02:00
if ( caps & AC_PINCAP_HDMI ) {
/* Realtek uses this bit as a different meaning */
if ( ( codec - > vendor_id > > 16 ) = = 0x10ec )
snd_iprintf ( buffer , " R/L " ) ;
2009-12-11 12:28:33 +08:00
else {
if ( caps & AC_PINCAP_HBR )
snd_iprintf ( buffer , " HBR " ) ;
2008-07-30 15:13:29 +02:00
snd_iprintf ( buffer , " HDMI " ) ;
2009-12-11 12:28:33 +08:00
}
2008-07-30 15:13:29 +02:00
}
2009-12-11 12:28:34 +08:00
if ( caps & AC_PINCAP_DP )
snd_iprintf ( buffer , " DP " ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
if ( caps & AC_PINCAP_TRIG_REQ )
snd_iprintf ( buffer , " Trigger " ) ;
if ( caps & AC_PINCAP_IMP_SENSE )
snd_iprintf ( buffer , " ImpSense " ) ;
2005-04-16 15:20:36 -07:00
snd_iprintf ( buffer , " \n " ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
if ( caps & AC_PINCAP_VREF ) {
unsigned int vref =
( caps & AC_PINCAP_VREF ) > > AC_PINCAP_VREF_SHIFT ;
snd_iprintf ( buffer , " Vref caps: " ) ;
if ( vref & AC_PINCAP_VREF_HIZ )
snd_iprintf ( buffer , " HIZ " ) ;
if ( vref & AC_PINCAP_VREF_50 )
snd_iprintf ( buffer , " 50 " ) ;
if ( vref & AC_PINCAP_VREF_GRD )
snd_iprintf ( buffer , " GRD " ) ;
if ( vref & AC_PINCAP_VREF_80 )
snd_iprintf ( buffer , " 80 " ) ;
if ( vref & AC_PINCAP_VREF_100 )
snd_iprintf ( buffer , " 100 " ) ;
snd_iprintf ( buffer , " \n " ) ;
* supports_vref = 1 ;
} else
* supports_vref = 0 ;
if ( caps & AC_PINCAP_EAPD ) {
val = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_EAPD_BTLENABLE , 0 ) ;
snd_iprintf ( buffer , " EAPD 0x%x: " , val ) ;
if ( val & AC_EAPDBTL_BALANCED )
snd_iprintf ( buffer , " BALANCED " ) ;
if ( val & AC_EAPDBTL_EAPD )
snd_iprintf ( buffer , " EAPD " ) ;
if ( val & AC_EAPDBTL_LR_SWAP )
snd_iprintf ( buffer , " R/L " ) ;
snd_iprintf ( buffer , " \n " ) ;
}
2005-04-16 15:20:36 -07:00
caps = snd_hda_codec_read ( codec , nid , 0 , AC_VERB_GET_CONFIG_DEFAULT , 0 ) ;
2005-04-20 13:44:08 +02:00
snd_iprintf ( buffer , " Pin Default 0x%08x: [%s] %s at %s %s \n " , caps ,
jack_conns [ ( caps & AC_DEFCFG_PORT_CONN ) > > AC_DEFCFG_PORT_CONN_SHIFT ] ,
2008-10-25 01:05:45 -04:00
snd_hda_get_jack_type ( caps ) ,
snd_hda_get_jack_connectivity ( caps ) ,
snd_hda_get_jack_location ( caps ) ) ;
2005-04-16 15:20:36 -07:00
snd_iprintf ( buffer , " Conn = %s, Color = %s \n " ,
get_jack_connection ( caps ) ,
get_jack_color ( caps ) ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
/* Default association and sequence values refer to default grouping
* of pin complexes and their sequence within the group . This is used
* for priority and resource allocation .
*/
snd_iprintf ( buffer , " DefAssociation = 0x%x, Sequence = 0x%x \n " ,
( caps & AC_DEFCFG_DEF_ASSOC ) > > AC_DEFCFG_ASSOC_SHIFT ,
caps & AC_DEFCFG_SEQUENCE ) ;
if ( ( ( caps & AC_DEFCFG_MISC ) > > AC_DEFCFG_MISC_SHIFT ) &
AC_DEFCFG_MISC_NO_PRESENCE ) {
/* Miscellaneous bit indicates external hardware does not
* support presence detection even if the pin complex
* indicates it is supported .
*/
snd_iprintf ( buffer , " Misc = NO_PRESENCE \n " ) ;
2007-10-26 14:56:36 +02:00
}
2005-04-16 15:20:36 -07:00
}
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
static void print_pin_ctls ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid ,
int supports_vref )
{
unsigned int pinctls ;
pinctls = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_PIN_WIDGET_CONTROL , 0 ) ;
snd_iprintf ( buffer , " Pin-ctls: 0x%02x: " , pinctls ) ;
if ( pinctls & AC_PINCTL_IN_EN )
snd_iprintf ( buffer , " IN " ) ;
if ( pinctls & AC_PINCTL_OUT_EN )
snd_iprintf ( buffer , " OUT " ) ;
if ( pinctls & AC_PINCTL_HP_EN )
snd_iprintf ( buffer , " HP " ) ;
if ( supports_vref ) {
int vref = pinctls & AC_PINCTL_VREFEN ;
switch ( vref ) {
case AC_PINCTL_VREF_HIZ :
snd_iprintf ( buffer , " VREF_HIZ " ) ;
break ;
case AC_PINCTL_VREF_50 :
snd_iprintf ( buffer , " VREF_50 " ) ;
break ;
case AC_PINCTL_VREF_GRD :
snd_iprintf ( buffer , " VREF_GRD " ) ;
break ;
case AC_PINCTL_VREF_80 :
snd_iprintf ( buffer , " VREF_80 " ) ;
break ;
case AC_PINCTL_VREF_100 :
snd_iprintf ( buffer , " VREF_100 " ) ;
break ;
}
}
snd_iprintf ( buffer , " \n " ) ;
}
static void print_vol_knob ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid )
{
unsigned int cap = snd_hda_param_read ( codec , nid ,
AC_PAR_VOL_KNB_CAP ) ;
snd_iprintf ( buffer , " Volume-Knob: delta=%d, steps=%d, " ,
( cap > > 7 ) & 1 , cap & 0x7f ) ;
cap = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_VOLUME_KNOB_CONTROL , 0 ) ;
snd_iprintf ( buffer , " direct=%d, val=%d \n " ,
( cap > > 7 ) & 1 , cap & 0x7f ) ;
}
static void print_audio_io ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid ,
unsigned int wid_type )
{
2009-11-11 13:43:01 +01:00
int conv = snd_hda_codec_read ( codec , nid , 0 , AC_VERB_GET_CONV , 0 ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
snd_iprintf ( buffer ,
" Converter: stream=%d, channel=%d \n " ,
( conv & AC_CONV_STREAM ) > > AC_CONV_STREAM_SHIFT ,
conv & AC_CONV_CHANNEL ) ;
if ( wid_type = = AC_WID_AUD_IN & & ( conv & AC_CONV_CHANNEL ) = = 0 ) {
int sdi = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_SDI_SELECT , 0 ) ;
snd_iprintf ( buffer , " SDI-Select: %d \n " ,
sdi & AC_SDI_SELECT ) ;
}
}
static void print_digital_conv ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid )
{
unsigned int digi1 = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_DIGI_CONVERT_1 , 0 ) ;
2012-08-13 15:43:49 +08:00
unsigned char digi2 = digi1 > > 8 ;
unsigned char digi3 = digi1 > > 16 ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
snd_iprintf ( buffer , " Digital: " ) ;
if ( digi1 & AC_DIG1_ENABLE )
snd_iprintf ( buffer , " Enabled " ) ;
if ( digi1 & AC_DIG1_V )
snd_iprintf ( buffer , " Validity " ) ;
if ( digi1 & AC_DIG1_VCFG )
snd_iprintf ( buffer , " ValidityCfg " ) ;
if ( digi1 & AC_DIG1_EMPHASIS )
snd_iprintf ( buffer , " Preemphasis " ) ;
if ( digi1 & AC_DIG1_COPYRIGHT )
2012-08-13 14:11:10 +08:00
snd_iprintf ( buffer , " Non-Copyright " ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
if ( digi1 & AC_DIG1_NONAUDIO )
snd_iprintf ( buffer , " Non-Audio " ) ;
if ( digi1 & AC_DIG1_PROFESSIONAL )
snd_iprintf ( buffer , " Pro " ) ;
if ( digi1 & AC_DIG1_LEVEL )
snd_iprintf ( buffer , " GenLevel " ) ;
2012-08-13 15:43:49 +08:00
if ( digi3 & AC_DIG3_KAE )
snd_iprintf ( buffer , " KAE " ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
snd_iprintf ( buffer , " \n " ) ;
2008-06-19 15:41:37 +02:00
snd_iprintf ( buffer , " Digital category: 0x%x \n " ,
2012-08-13 15:43:49 +08:00
digi2 & AC_DIG2_CC ) ;
snd_iprintf ( buffer , " IEC Coding Type: 0x%x \n " ,
digi3 & AC_DIG3_ICT ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
}
static const char * get_pwr_state ( u32 state )
{
2012-06-06 12:17:20 +02:00
static const char * const buf [ ] = {
" D0 " , " D1 " , " D2 " , " D3 " , " D3cold "
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
} ;
2012-06-06 12:17:20 +02:00
if ( state < ARRAY_SIZE ( buf ) )
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
return buf [ state ] ;
return " UNKNOWN " ;
}
static void print_power_state ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid )
{
2009-11-18 12:38:08 +08:00
static char * names [ ] = {
[ ilog2 ( AC_PWRST_D0SUP ) ] = " D0 " ,
[ ilog2 ( AC_PWRST_D1SUP ) ] = " D1 " ,
[ ilog2 ( AC_PWRST_D2SUP ) ] = " D2 " ,
[ ilog2 ( AC_PWRST_D3SUP ) ] = " D3 " ,
[ ilog2 ( AC_PWRST_D3COLDSUP ) ] = " D3cold " ,
[ ilog2 ( AC_PWRST_S3D3COLDSUP ) ] = " S3D3cold " ,
[ ilog2 ( AC_PWRST_CLKSTOP ) ] = " CLKSTOP " ,
[ ilog2 ( AC_PWRST_EPSS ) ] = " EPSS " ,
} ;
int sup = snd_hda_param_read ( codec , nid , AC_PAR_POWER_STATE ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
int pwr = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_POWER_STATE , 0 ) ;
2012-06-07 16:52:07 +08:00
if ( sup ! = - 1 )
2009-11-18 12:38:08 +08:00
snd_iprintf ( buffer , " Power states: %s \n " ,
bits_names ( sup , names , ARRAY_SIZE ( names ) ) ) ;
2012-06-06 13:49:44 +08:00
snd_iprintf ( buffer , " Power: setting=%s, actual=%s " ,
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
get_pwr_state ( pwr & AC_PWRST_SETTING ) ,
get_pwr_state ( ( pwr & AC_PWRST_ACTUAL ) > >
AC_PWRST_ACTUAL_SHIFT ) ) ;
2012-06-06 13:49:44 +08:00
if ( pwr & AC_PWRST_ERROR )
snd_iprintf ( buffer , " , Error " ) ;
if ( pwr & AC_PWRST_CLK_STOP_OK )
snd_iprintf ( buffer , " , Clock-stop-OK " ) ;
if ( pwr & AC_PWRST_SETTING_RESET )
snd_iprintf ( buffer , " , Setting-reset " ) ;
snd_iprintf ( buffer , " \n " ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
}
static void print_unsol_cap ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid )
{
int unsol = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_UNSOLICITED_RESPONSE , 0 ) ;
snd_iprintf ( buffer ,
" Unsolicited: tag=%02x, enabled=%d \n " ,
unsol & AC_UNSOL_TAG ,
( unsol & AC_UNSOL_ENABLED ) ? 1 : 0 ) ;
}
static void print_proc_caps ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid )
{
unsigned int proc_caps = snd_hda_param_read ( codec , nid ,
AC_PAR_PROC_CAP ) ;
snd_iprintf ( buffer , " Processing caps: benign=%d, ncoeff=%d \n " ,
proc_caps & AC_PCAP_BENIGN ,
( proc_caps & AC_PCAP_NUM_COEF ) > > AC_PCAP_NUM_COEF_SHIFT ) ;
}
static void print_conn_list ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid ,
unsigned int wid_type , hda_nid_t * conn ,
int conn_len )
{
int c , curr = - 1 ;
2009-03-19 17:08:19 +01:00
if ( conn_len > 1 & &
wid_type ! = AC_WID_AUD_MIX & &
wid_type ! = AC_WID_VOL_KNB & &
wid_type ! = AC_WID_POWER )
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
curr = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_CONNECT_SEL , 0 ) ;
snd_iprintf ( buffer , " Connection: %d \n " , conn_len ) ;
if ( conn_len > 0 ) {
snd_iprintf ( buffer , " " ) ;
for ( c = 0 ; c < conn_len ; c + + ) {
snd_iprintf ( buffer , " 0x%02x " , conn [ c ] ) ;
if ( c = = curr )
snd_iprintf ( buffer , " * " ) ;
}
snd_iprintf ( buffer , " \n " ) ;
}
}
static void print_gpio ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid )
{
unsigned int gpio =
snd_hda_param_read ( codec , codec - > afg , AC_PAR_GPIO_CAP ) ;
unsigned int enable , direction , wake , unsol , sticky , data ;
int i , max ;
snd_iprintf ( buffer , " GPIO: io=%d, o=%d, i=%d, "
" unsolicited=%d, wake=%d \n " ,
gpio & AC_GPIO_IO_COUNT ,
( gpio & AC_GPIO_O_COUNT ) > > AC_GPIO_O_COUNT_SHIFT ,
( gpio & AC_GPIO_I_COUNT ) > > AC_GPIO_I_COUNT_SHIFT ,
( gpio & AC_GPIO_UNSOLICITED ) ? 1 : 0 ,
( gpio & AC_GPIO_WAKE ) ? 1 : 0 ) ;
max = gpio & AC_GPIO_IO_COUNT ;
2008-11-04 13:30:57 +01:00
if ( ! max | | max > 8 )
return ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
enable = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_GPIO_MASK , 0 ) ;
direction = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_GPIO_DIRECTION , 0 ) ;
wake = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_GPIO_WAKE_MASK , 0 ) ;
unsol = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_GPIO_UNSOLICITED_RSP_MASK , 0 ) ;
sticky = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_GPIO_STICKY_MASK , 0 ) ;
data = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_GPIO_DATA , 0 ) ;
for ( i = 0 ; i < max ; + + i )
snd_iprintf ( buffer ,
" IO[%d]: enable=%d, dir=%d, wake=%d, "
2008-11-19 14:14:50 +01:00
" sticky=%d, data=%d, unsol=%d \n " , i ,
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
( enable & ( 1 < < i ) ) ? 1 : 0 ,
( direction & ( 1 < < i ) ) ? 1 : 0 ,
( wake & ( 1 < < i ) ) ? 1 : 0 ,
( sticky & ( 1 < < i ) ) ? 1 : 0 ,
2008-11-19 14:14:50 +01:00
( data & ( 1 < < i ) ) ? 1 : 0 ,
( unsol & ( 1 < < i ) ) ? 1 : 0 ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
/* FIXME: add GPO and GPI pin information */
2009-12-08 16:13:32 +01:00
print_nid_array ( buffer , codec , nid , & codec - > mixers ) ;
print_nid_array ( buffer , codec , nid , & codec - > nids ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
}
2005-04-16 15:20:36 -07:00
2007-07-27 16:52:19 +02:00
static void print_codec_info ( struct snd_info_entry * entry ,
struct snd_info_buffer * buffer )
2005-04-16 15:20:36 -07:00
{
struct hda_codec * codec = entry - > private_data ;
hda_nid_t nid ;
int i , nodes ;
2009-05-16 10:00:49 +02:00
snd_iprintf ( buffer , " Codec: " ) ;
if ( codec - > vendor_name & & codec - > chip_name )
snd_iprintf ( buffer , " %s %s \n " ,
codec - > vendor_name , codec - > chip_name ) ;
else
snd_iprintf ( buffer , " Not Set \n " ) ;
2005-04-16 15:20:36 -07:00
snd_iprintf ( buffer , " Address: %d \n " , codec - > addr ) ;
2010-07-19 15:52:39 +02:00
if ( codec - > afg )
snd_iprintf ( buffer , " AFG Function Id: 0x%x (unsol %u) \n " ,
codec - > afg_function_id , codec - > afg_unsol ) ;
if ( codec - > mfg )
snd_iprintf ( buffer , " MFG Function Id: 0x%x (unsol %u) \n " ,
codec - > mfg_function_id , codec - > mfg_unsol ) ;
2009-03-23 11:15:59 +01:00
snd_iprintf ( buffer , " Vendor Id: 0x%08x \n " , codec - > vendor_id ) ;
snd_iprintf ( buffer , " Subsystem Id: 0x%08x \n " , codec - > subsystem_id ) ;
2005-04-16 15:20:36 -07:00
snd_iprintf ( buffer , " Revision Id: 0x%x \n " , codec - > revision_id ) ;
2007-06-19 18:31:28 +02:00
if ( codec - > mfg )
snd_iprintf ( buffer , " Modem Function Group: 0x%x \n " , codec - > mfg ) ;
else
snd_iprintf ( buffer , " No Modem Function Group found \n " ) ;
2005-09-07 13:29:22 +02:00
if ( ! codec - > afg )
return ;
2007-08-10 17:21:45 +02:00
snd_hda_power_up ( codec ) ;
2006-11-07 16:10:06 +01:00
snd_iprintf ( buffer , " Default PCM: \n " ) ;
2005-04-16 15:20:36 -07:00
print_pcm_caps ( buffer , codec , codec - > afg ) ;
snd_iprintf ( buffer , " Default Amp-In caps: " ) ;
print_amp_caps ( buffer , codec , codec - > afg , HDA_INPUT ) ;
snd_iprintf ( buffer , " Default Amp-Out caps: " ) ;
print_amp_caps ( buffer , codec , codec - > afg , HDA_OUTPUT ) ;
nodes = snd_hda_get_sub_nodes ( codec , codec - > afg , & nid ) ;
if ( ! nid | | nodes < 0 ) {
snd_iprintf ( buffer , " Invalid AFG subtree \n " ) ;
2007-08-10 17:21:45 +02:00
snd_hda_power_down ( codec ) ;
2005-04-16 15:20:36 -07:00
return ;
}
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
print_gpio ( buffer , codec , codec - > afg ) ;
2008-11-28 14:35:16 +01:00
if ( codec - > proc_widget_hook )
codec - > proc_widget_hook ( buffer , codec , codec - > afg ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
2005-04-16 15:20:36 -07:00
for ( i = 0 ; i < nodes ; i + + , nid + + ) {
2007-07-27 16:52:19 +02:00
unsigned int wid_caps =
snd_hda_param_read ( codec , nid ,
AC_PAR_AUDIO_WIDGET_CAP ) ;
2009-07-27 12:54:26 +02:00
unsigned int wid_type = get_wcaps_type ( wid_caps ) ;
2005-06-10 19:45:09 +02:00
hda_nid_t conn [ HDA_MAX_CONNECTIONS ] ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
int conn_len = 0 ;
2005-06-10 19:45:09 +02:00
2005-04-16 15:20:36 -07:00
snd_iprintf ( buffer , " Node 0x%02x [%s] wcaps 0x%x: " , nid ,
get_wid_type_name ( wid_type ) , wid_caps ) ;
2008-07-30 15:13:29 +02:00
if ( wid_caps & AC_WCAP_STEREO ) {
2009-08-24 09:50:46 +08:00
unsigned int chans = get_wcaps_channels ( wid_caps ) ;
2008-07-30 15:13:29 +02:00
if ( chans = = 2 )
snd_iprintf ( buffer , " Stereo " ) ;
else
snd_iprintf ( buffer , " %d-Channels " , chans ) ;
} else
2005-04-16 15:20:36 -07:00
snd_iprintf ( buffer , " Mono " ) ;
if ( wid_caps & AC_WCAP_DIGITAL )
snd_iprintf ( buffer , " Digital " ) ;
if ( wid_caps & AC_WCAP_IN_AMP )
snd_iprintf ( buffer , " Amp-In " ) ;
if ( wid_caps & AC_WCAP_OUT_AMP )
snd_iprintf ( buffer , " Amp-Out " ) ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
if ( wid_caps & AC_WCAP_STRIPE )
snd_iprintf ( buffer , " Stripe " ) ;
if ( wid_caps & AC_WCAP_LR_SWAP )
snd_iprintf ( buffer , " R/L " ) ;
2008-07-30 15:13:29 +02:00
if ( wid_caps & AC_WCAP_CP_CAPS )
snd_iprintf ( buffer , " CP " ) ;
2005-04-16 15:20:36 -07:00
snd_iprintf ( buffer , " \n " ) ;
2009-12-08 16:13:32 +01:00
print_nid_array ( buffer , codec , nid , & codec - > mixers ) ;
print_nid_array ( buffer , codec , nid , & codec - > nids ) ;
2009-11-11 13:43:01 +01:00
print_nid_pcms ( buffer , codec , nid ) ;
2007-11-16 17:52:39 +01:00
/* volume knob is a special widget that always have connection
* list
*/
if ( wid_type = = AC_WID_VOL_KNB )
wid_caps | = AC_WCAP_CONN_LIST ;
2005-06-10 19:45:09 +02:00
if ( wid_caps & AC_WCAP_CONN_LIST )
2011-07-11 15:42:52 +02:00
conn_len = snd_hda_get_raw_connections ( codec , nid , conn ,
2005-06-10 19:45:09 +02:00
HDA_MAX_CONNECTIONS ) ;
2005-04-16 15:20:36 -07:00
if ( wid_caps & AC_WCAP_IN_AMP ) {
snd_iprintf ( buffer , " Amp-In caps: " ) ;
print_amp_caps ( buffer , codec , nid , HDA_INPUT ) ;
snd_iprintf ( buffer , " Amp-In vals: " ) ;
2012-04-06 15:34:15 +02:00
if ( wid_type = = AC_WID_PIN | |
( codec - > single_adc_amp & &
wid_type = = AC_WID_AUD_IN ) )
print_amp_vals ( buffer , codec , nid , HDA_INPUT ,
wid_caps & AC_WCAP_STEREO ,
1 ) ;
else
print_amp_vals ( buffer , codec , nid , HDA_INPUT ,
wid_caps & AC_WCAP_STEREO ,
conn_len ) ;
2005-04-16 15:20:36 -07:00
}
if ( wid_caps & AC_WCAP_OUT_AMP ) {
snd_iprintf ( buffer , " Amp-Out caps: " ) ;
print_amp_caps ( buffer , codec , nid , HDA_OUTPUT ) ;
snd_iprintf ( buffer , " Amp-Out vals: " ) ;
2009-03-12 17:06:07 +01:00
if ( wid_type = = AC_WID_PIN & &
codec - > pin_amp_workaround )
print_amp_vals ( buffer , codec , nid , HDA_OUTPUT ,
wid_caps & AC_WCAP_STEREO ,
conn_len ) ;
else
print_amp_vals ( buffer , codec , nid , HDA_OUTPUT ,
wid_caps & AC_WCAP_STEREO , 1 ) ;
2005-04-16 15:20:36 -07:00
}
2007-10-26 14:56:36 +02:00
switch ( wid_type ) {
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
case AC_WID_PIN : {
int supports_vref ;
print_pin_caps ( buffer , codec , nid , & supports_vref ) ;
print_pin_ctls ( buffer , codec , nid , supports_vref ) ;
2007-10-26 14:56:36 +02:00
break ;
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
}
2007-10-26 14:56:36 +02:00
case AC_WID_VOL_KNB :
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
print_vol_knob ( buffer , codec , nid ) ;
2007-10-26 14:56:36 +02:00
break ;
case AC_WID_AUD_OUT :
case AC_WID_AUD_IN :
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
print_audio_io ( buffer , codec , nid , wid_type ) ;
if ( wid_caps & AC_WCAP_DIGITAL )
print_digital_conv ( buffer , codec , nid ) ;
2007-10-26 14:56:36 +02:00
if ( wid_caps & AC_WCAP_FORMAT_OVRD ) {
snd_iprintf ( buffer , " PCM: \n " ) ;
print_pcm_caps ( buffer , codec , nid ) ;
}
break ;
2005-04-16 15:20:36 -07:00
}
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
if ( wid_caps & AC_WCAP_UNSOL_CAP )
print_unsol_cap ( buffer , codec , nid ) ;
2005-11-02 18:13:41 +01:00
if ( wid_caps & AC_WCAP_POWER )
[ALSA] hda_proc - Add a number of new settings to proc codec output
This patch adds additional output to the /proc codec#X info.
The following pieces of information are added to the output:
- Balanced, L/R swap, trigger, impedance sense pin capabilities
- Vref pin capabilities
- Current Vref pin widget control setting
- Default configuration association, sequence, and misc bit test
- EAPD/BTL bits conveying balanced mode, EAPD, and L/R swap
- Power state modified to show state name as well as setting vs actual value
- GPIO parameter output on Audio Function Group, including enumeration of IO
pins which are indicated present (Any I and O pins are not output at this
time)
- Stripe and L/R swap widget capabilities
- All digital converter bits: enable, validity, validity config, preemphasis,
copyright, non-audio, professional, generation level, and content category
- Converter stream and channel values for in/out widgets
- SDI select value for in widgets
- Unsolicited response widget capability tag and enabled bit
- Delay widget capability value
- Processing widget capability benign bit and number of coefficients
- Realtek Define Registers: processing coefficient, coefficient index
[Also, fixed space/tab issues and make codes a bit more readable
-- Takashi]
Signed-off-by: Andrew Paprocki <andrew@ishiboo.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-18 12:51:11 +01:00
print_power_state ( buffer , codec , nid ) ;
if ( wid_caps & AC_WCAP_DELAY )
snd_iprintf ( buffer , " Delay: %d samples \n " ,
( wid_caps & AC_WCAP_DELAY ) > >
AC_WCAP_DELAY_SHIFT ) ;
if ( wid_caps & AC_WCAP_CONN_LIST )
print_conn_list ( buffer , codec , nid , wid_type ,
conn , conn_len ) ;
if ( wid_caps & AC_WCAP_PROC_WID )
print_proc_caps ( buffer , codec , nid ) ;
2008-11-28 12:55:36 +01:00
if ( codec - > proc_widget_hook )
codec - > proc_widget_hook ( buffer , codec , nid ) ;
2005-04-16 15:20:36 -07:00
}
2007-08-10 17:21:45 +02:00
snd_hda_power_down ( codec ) ;
2005-04-16 15:20:36 -07:00
}
/*
* create a proc read
*/
int snd_hda_codec_proc_new ( struct hda_codec * codec )
{
char name [ 32 ] ;
2005-11-17 14:57:47 +01:00
struct snd_info_entry * entry ;
2005-04-16 15:20:36 -07:00
int err ;
snprintf ( name , sizeof ( name ) , " codec#%d " , codec - > addr ) ;
err = snd_card_proc_new ( codec - > bus - > card , name , & entry ) ;
if ( err < 0 )
return err ;
2006-04-28 15:13:41 +02:00
snd_info_set_text_ops ( entry , codec , print_codec_info ) ;
2005-04-16 15:20:36 -07:00
return 0 ;
}