[alsa-devel] [PATCH] amixer: actually print all TLVs in a container TLV

Takashi Iwai tiwai at suse.de
Tue Oct 1 12:24:23 CEST 2013


At Mon, 30 Sep 2013 23:46:50 +0300,
Anssi Hannula wrote:
> 
> Due to a wrong indexing of tlv[] decode_tlv() always skips to the end of
> the container TLV since the used tlv[1] contains the container TLV size
> instead of the intended element size.
> 
> This causes, for example, only the first HDMI channel map TLV to be
> shown.
> 
> Fix the indexing to actually use the element size.
> 
> Signed-off-by: Anssi Hannula <anssi.hannula at iki.fi>

Thanks, applied.


Takashi

> ---
>  amixer/amixer.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/amixer/amixer.c b/amixer/amixer.c
> index 7727943..b83b0c3 100644
> --- a/amixer/amixer.c
> +++ b/amixer/amixer.c
> @@ -468,7 +468,7 @@ static void decode_tlv(unsigned int spaces, unsigned int *tlv, unsigned int tlv_
>  				return;
>  			}
>  			decode_tlv(spaces + 2, tlv + idx, tlv[idx+1] + 8);
> -			idx += 2 + (tlv[1] + sizeof(unsigned int) - 1) / sizeof(unsigned int);
> +			idx += 2 + (tlv[idx+1] + sizeof(unsigned int) - 1) / sizeof(unsigned int);
>  		}
>  		break;
>  	case SND_CTL_TLVT_DB_SCALE:
> -- 
> 1.8.1.5
> 


More information about the Alsa-devel mailing list