37 lines
1.2 KiB
Diff
37 lines
1.2 KiB
Diff
|
From 180283e2307b07bbd3958d24382aab8271dd4c1d Mon Sep 17 00:00:00 2001
|
||
|
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||
|
Date: Mon, 30 Sep 2013 23:46:50 +0300
|
||
|
Subject: [PATCH] amixer: actually print all TLVs in a container TLV
|
||
|
|
||
|
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@iki.fi>
|
||
|
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||
|
---
|
||
|
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.4
|
||
|
|