
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
---
 tools/intel_audio_dump.c |   27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

--- intel-gpu-tools.orig/tools/intel_audio_dump.c	2011-11-12 10:52:39.000000000 +0800
+++ intel-gpu-tools/tools/intel_audio_dump.c	2011-11-12 10:52:40.000000000 +0800
@@ -147,6 +147,16 @@ static char *dp_port_width[] = {
 	[4 ... 7] = "reserved",
 };
 
+static char *bits_per_sample[] = {
+	[0] = "reserved",
+	[1] = "16 bits",
+	[2] = "24 bits",
+	[3] = "32 bits",
+	[4] = "20 bits",
+	[5] = "reserved",
+};
+
+
 static void do_self_tests(void)
 {
     if (BIT(1, 0) != 1)
@@ -372,6 +382,8 @@ static void dump_eaglelake(void)
 
     dword = INREG(AUD_OUT_STR_DESC);
     printf("AUD_OUT_STR_DESC stream channels\t%lu\n",    BITS(dword, 3, 0) + 1);
+    printf("AUD_OUT_STR_DESC Bits per Sample\t[%#lx] %s\n",
+		   BITS(dword, 6, 4), OPNAME(bits_per_sample, BITS(dword, 6, 4)));
 
     dword = INREG(AUD_PINW_CAP);
     printf("AUD_PINW_CAP widget type\t\t0x%lx\n",        BITS(dword, 23, 20));
@@ -649,13 +661,15 @@ static void dump_ironlake(void)
     dword = INREG(AUD_OUT_STR_DESC_A);
     printf("AUD_OUT_STR_DESC_A  HBR_enable\t\t\t\t%lu\n",	 BITS(dword, 28, 27));
     printf("AUD_OUT_STR_DESC_A  Convertor_Channel_Count\t\t%lu\n", BITS(dword, 20, 16) + 1);
-    printf("AUD_OUT_STR_DESC_A  Bits_per_Sample\t\t\t%lu\n",	 BITS(dword, 6, 4));
+    printf("AUD_OUT_STR_DESC_A  Bits_per_Sample\t\t\t[%#lx] %s\n",
+				BITS(dword, 6, 4), OPNAME(bits_per_sample, BITS(dword, 6, 4)));
     printf("AUD_OUT_STR_DESC_A  Number_of_Channels_in_a_Stream\t%lu\n", 1 + BITS(dword, 3, 0));
 
     dword = INREG(AUD_OUT_STR_DESC_B);
     printf("AUD_OUT_STR_DESC_B  HBR_enable\t\t\t\t%lu\n",	 BITS(dword, 28, 27));
     printf("AUD_OUT_STR_DESC_B  Convertor_Channel_Count\t\t%lu\n", BITS(dword, 20, 16) + 1);
-    printf("AUD_OUT_STR_DESC_B  Bits_per_Sample\t\t\t%lu\n",	 BITS(dword, 6, 4));
+    printf("AUD_OUT_STR_DESC_B  Bits_per_Sample\t\t\t[%#lx] %s\n",
+				BITS(dword, 6, 4), OPNAME(bits_per_sample, BITS(dword, 6, 4)));
     printf("AUD_OUT_STR_DESC_B  Number_of_Channels_in_a_Stream\t%lu\n", 1 + BITS(dword, 3, 0));
 
     dword = INREG(AUD_PINW_CONNLNG_SEL);
@@ -1053,19 +1067,22 @@ static void dump_cpt(void)
     dword = INREG(AUD_OUT_STR_DESC_A);
     printf("AUD_OUT_STR_DESC_A  HBR_enable\t\t\t\t%lu\n",	 BITS(dword, 28, 27));
     printf("AUD_OUT_STR_DESC_A  Convertor_Channel_Count\t\t%lu\n", BITS(dword, 20, 16) + 1);
-    printf("AUD_OUT_STR_DESC_A  Bits_per_Sample\t\t\t%lu\n",	 BITS(dword, 6, 4));
+    printf("AUD_OUT_STR_DESC_A  Bits_per_Sample\t\t\t[%#lx] %s\n",
+				BITS(dword, 6, 4), OPNAME(bits_per_sample, BITS(dword, 6, 4)));
     printf("AUD_OUT_STR_DESC_A  Number_of_Channels_in_a_Stream\t%lu\n", 1 + BITS(dword, 3, 0));
 
     dword = INREG(AUD_OUT_STR_DESC_B);
     printf("AUD_OUT_STR_DESC_B  HBR_enable\t\t\t\t%lu\n",	 BITS(dword, 28, 27));
     printf("AUD_OUT_STR_DESC_B  Convertor_Channel_Count\t\t%lu\n", BITS(dword, 20, 16) + 1);
-    printf("AUD_OUT_STR_DESC_B  Bits_per_Sample\t\t\t%lu\n",	 BITS(dword, 6, 4));
+    printf("AUD_OUT_STR_DESC_B  Bits_per_Sample\t\t\t[%#lx] %s\n",
+				BITS(dword, 6, 4), OPNAME(bits_per_sample, BITS(dword, 6, 4)));
     printf("AUD_OUT_STR_DESC_B  Number_of_Channels_in_a_Stream\t%lu\n", 1 + BITS(dword, 3, 0));
 
     dword = INREG(AUD_OUT_STR_DESC_C);
     printf("AUD_OUT_STR_DESC_C  HBR_enable\t\t\t\t%lu\n",	 BITS(dword, 28, 27));
     printf("AUD_OUT_STR_DESC_C  Convertor_Channel_Count\t\t%lu\n", BITS(dword, 20, 16) + 1);
-    printf("AUD_OUT_STR_DESC_C  Bits_per_Sample\t\t\t%lu\n",	 BITS(dword, 6, 4));
+    printf("AUD_OUT_STR_DESC_C  Bits_per_Sample\t\t\t[%#lx] %s\n",
+				BITS(dword, 6, 4), OPNAME(bits_per_sample, BITS(dword, 6, 4)));
     printf("AUD_OUT_STR_DESC_C  Number_of_Channels_in_a_Stream\t%lu\n", 1 + BITS(dword, 3, 0));
 
     dword = INREG(AUD_PINW_CONNLNG_SEL);



