@ -582,6 +582,36 @@ static void print_gpio(struct snd_info_buffer *buffer,
print_nid_array ( buffer , codec , nid , & codec - > nids ) ;
}
static void print_device_list ( struct snd_info_buffer * buffer ,
struct hda_codec * codec , hda_nid_t nid )
{
int i , curr = - 1 ;
u8 dev_list [ AC_MAX_DEV_LIST_LEN ] ;
int devlist_len ;
devlist_len = snd_hda_get_devices ( codec , nid , dev_list ,
AC_MAX_DEV_LIST_LEN ) ;
snd_iprintf ( buffer , " Devices: %d \n " , devlist_len ) ;
if ( devlist_len < = 0 )
return ;
curr = snd_hda_codec_read ( codec , nid , 0 ,
AC_VERB_GET_DEVICE_SEL , 0 ) ;
for ( i = 0 ; i < devlist_len ; i + + ) {
if ( i = = curr )
snd_iprintf ( buffer , " * " ) ;
else
snd_iprintf ( buffer , " " ) ;
snd_iprintf ( buffer ,
" Dev %02d: PD = %d, ELDV = %d, IA = %d \n " , i ,
! ! ( dev_list [ i ] & AC_DE_PD ) ,
! ! ( dev_list [ i ] & AC_DE_ELDV ) ,
! ! ( dev_list [ i ] & AC_DE_IA ) ) ;
}
}
static void print_codec_info ( struct snd_info_entry * entry ,
struct snd_info_buffer * buffer )
{
@ -751,6 +781,9 @@ static void print_codec_info(struct snd_info_entry *entry,
( wid_caps & AC_WCAP_DELAY ) > >
AC_WCAP_DELAY_SHIFT ) ;
if ( wid_type = = AC_WID_PIN & & codec - > dp_mst )
print_device_list ( buffer , codec , nid ) ;
if ( wid_caps & AC_WCAP_CONN_LIST )
print_conn_list ( buffer , codec , nid , wid_type ,
conn , conn_len ) ;