Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] assorted HDMI cleanups
@ 2008-11-19  7:13 Wu Fengguang
  2008-11-19  7:13 ` [PATCH 1/5] hda: minor code cleanups Wu Fengguang
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Wu Fengguang @ 2008-11-19  7:13 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1731 bytes --]

Hi Takashi,

Here are 5 HDMI cleanup patches, some renames the code and others renames the
user visible output messages. The new output goes like:

dmesg

	[ 5742.169578] detected monitor <9d><80>t connection type Display Port
	[ 5742.169580] available speakers: FL/FR LFE FLC/FRC
	[ 5742.169582] supports coding type MLP (Dolby TrueHD): channels = 7, rates = 48000 176400
	[ 5742.169585] supports coding type AC-3: channels = 1, rates = 48000 88200 192000, max bitrate = 1208000
	[ 5742.169588] supports coding type AC-3: channels = 2, rates = 48000 384000, max bitrate = 960000
	[ 5742.169591] supports coding type ATRAC: channels = 5, rates = 48000 88200 384000, max bitrate = 224000


/proc/asound/card0/eld\#3

	monitor name            ���
	connection_type         Display Port
	eld_version             [0xb] reserved
	edid_version            [0x3] CEA-861-B, C or D
	manufacture_id          0xee5a
	product_id              0x923c
	port_id                 0x18b263a03e17d1b5
	support_hdcp            1
	support_ai              1
	audio_sync_delay        216
	speakers                [0x23] FL/FR LFE FLC/FRC
	sad_count               4
	sad0_coding_type        [0xc] MLP (Dolby TrueHD)
	sad0_channels           7
	sad0_rates              [0x240] 48000 176400
	sad1_coding_type        [0x2] AC-3
	sad1_channels           1
	sad1_rates              [0x4c0] 48000 88200 192000
	sad1_max_bitrate        1208000
	sad2_coding_type        [0x2] AC-3
	sad2_channels           2
	sad2_rates              [0x1840] 48000 384000
	sad2_max_bitrate        960000
	sad3_coding_type        [0x8] ATRAC
	sad3_channels           5
	sad3_rates              [0x8c0] 48000 88200 384000
	sad3_max_bitrate        224000

Thanks,
Fengguang
-- 


[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/5] hda: minor code cleanups
  2008-11-19  7:13 [PATCH 0/5] assorted HDMI cleanups Wu Fengguang
@ 2008-11-19  7:13 ` Wu Fengguang
  2008-11-19  7:14 ` [PATCH 2/5] hda: rename sink_eld to hdmi_eld Wu Fengguang
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Wu Fengguang @ 2008-11-19  7:13 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: alsa-hdmi-cleanups.patch --]
[-- Type: text/plain, Size: 2883 bytes --]

Some minor code cleanups.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
---
 sound/pci/hda/hda_eld.c         |    2 +-
 sound/pci/hda/patch_intelhdmi.c |   18 +++++++++---------
 2 files changed, 10 insertions(+), 10 deletions(-)

--- sound-2.6.orig/sound/pci/hda/patch_intelhdmi.c
+++ sound-2.6/sound/pci/hda/patch_intelhdmi.c
@@ -85,7 +85,7 @@ struct hdmi_audio_infoframe {
 	u8 CXT04;
 	u8 CA;
 	u8 LFEPBL01_LSV36_DM_INH7;
-	u8 reserved[5];	/* PB6  - PB10 */
+	u8 reserved[5];	/* PB6 - PB10 */
 };
 
 /*
@@ -160,7 +160,7 @@ static struct cea_channel_speaker_alloca
 { .ca_index = 0x00,  .speakers = {   0,    0,   0,   0,   0,    0,  FR,  FL } },
 				 /* 2.1 */
 { .ca_index = 0x01,  .speakers = {   0,    0,   0,   0,   0,  LFE,  FR,  FL } },
-				 /* dolby surround */
+				 /* Dolby Surround */
 { .ca_index = 0x02,  .speakers = {   0,    0,   0,   0,  FC,    0,  FR,  FL } },
 { .ca_index = 0x03,  .speakers = {   0,    0,   0,   0,  FC,  LFE,  FR,  FL } },
 { .ca_index = 0x04,  .speakers = {   0,    0,   0,  RC,   0,    0,  FR,  FL } },
@@ -287,7 +287,7 @@ static void hdmi_set_channel_count(struc
 
 	if (chs != hdmi_get_channel_count(codec))
 		snd_printd(KERN_INFO "Channel count expect=%d, real=%d\n",
-				chs, hdmi_get_channel_count(codec));
+					chs, hdmi_get_channel_count(codec));
 }
 
 static void hdmi_debug_channel_mapping(struct hda_codec *codec)
@@ -300,7 +300,7 @@ static void hdmi_debug_channel_mapping(s
 		slot = snd_hda_codec_read(codec, CVT_NID, 0,
 						AC_VERB_GET_HDMI_CHAN_SLOT, i);
 		printk(KERN_DEBUG "ASP channel %d => slot %d\n",
-				slot >> 4, slot & 0x7);
+						slot >> 4, slot & 0x7);
 	}
 #endif
 }
@@ -316,7 +316,7 @@ static void hdmi_parse_eld(struct hda_co
 
 
 /*
- * Audio Infoframe routines
+ * Audio InfoFrame routines
  */
 
 static void hdmi_debug_dip_size(struct hda_codec *codec)
@@ -547,8 +547,8 @@ static void intel_hdmi_unsol_event(struc
  */
 
 static int intel_hdmi_playback_pcm_open(struct hda_pcm_stream *hinfo,
-				     struct hda_codec *codec,
-				     struct snd_pcm_substream *substream)
+					struct hda_codec *codec,
+					struct snd_pcm_substream *substream)
 {
 	struct intel_hdmi_spec *spec = codec->spec;
 
@@ -556,8 +556,8 @@ static int intel_hdmi_playback_pcm_open(
 }
 
 static int intel_hdmi_playback_pcm_close(struct hda_pcm_stream *hinfo,
-				      struct hda_codec *codec,
-				      struct snd_pcm_substream *substream)
+					 struct hda_codec *codec,
+					 struct snd_pcm_substream *substream)
 {
 	struct intel_hdmi_spec *spec = codec->spec;
 
--- sound-2.6.orig/sound/pci/hda/hda_eld.c
+++ sound-2.6/sound/pci/hda/hda_eld.c
@@ -132,7 +132,7 @@ static char *cea_audio_coding_type_names
 /*
  * The following two lists are shared between
  * 	- HDMI audio InfoFrame (source to sink)
- * 	- CEA E-EDID extension (sink to source)
+ * 	- CEA E-EDID Extension (sink to source)
  */
 
 /*

-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 2/5] hda: rename sink_eld to hdmi_eld
  2008-11-19  7:13 [PATCH 0/5] assorted HDMI cleanups Wu Fengguang
  2008-11-19  7:13 ` [PATCH 1/5] hda: minor code cleanups Wu Fengguang
@ 2008-11-19  7:14 ` Wu Fengguang
  2008-11-19  7:14 ` [PATCH 3/5] hda: minor output message cleanups Wu Fengguang
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Wu Fengguang @ 2008-11-19  7:14 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: alsa-rename-sink-eld.patch --]
[-- Type: text/plain, Size: 4293 bytes --]

Rename struct sink_eld to hdmi_eld.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
---
 sound/pci/hda/hda_eld.c         |   14 +++++++-------
 sound/pci/hda/hda_local.h       |   10 +++++-----
 sound/pci/hda/patch_intelhdmi.c |    8 ++++----
 3 files changed, 16 insertions(+), 16 deletions(-)

--- sound-2.6.orig/sound/pci/hda/hda_eld.c
+++ sound-2.6/sound/pci/hda/hda_eld.c
@@ -267,8 +267,8 @@ static void hdmi_update_short_audio_desc
 /*
  * Be careful, ELD buf could be totally rubbish!
  */
-static int hdmi_update_sink_eld(struct sink_eld *e,
-				const unsigned char *buf, int size)
+static int hdmi_update_eld(struct hdmi_eld *e,
+			   const unsigned char *buf, int size)
 {
 	int mnl;
 	int i;
@@ -351,7 +351,7 @@ int snd_hdmi_get_eld_size(struct hda_cod
 						 AC_DIPSIZE_ELD_BUF);
 }
 
-int snd_hdmi_get_eld(struct sink_eld *eld,
+int snd_hdmi_get_eld(struct hdmi_eld *eld,
 		     struct hda_codec *codec, hda_nid_t nid)
 {
 	int i;
@@ -380,7 +380,7 @@ int snd_hdmi_get_eld(struct sink_eld *el
 	for (i = 0; i < size; i++)
 		buf[i] = hdmi_get_eld_byte(codec, nid, i);
 
-	ret = hdmi_update_sink_eld(eld, buf, size);
+	ret = hdmi_update_eld(eld, buf, size);
 
 	kfree(buf);
 	return ret;
@@ -421,7 +421,7 @@ void snd_print_channel_allocation(int sp
 	buf[j] = '\0';	/* necessary when j == 0 */
 }
 
-void snd_hdmi_show_eld(struct sink_eld *e)
+void snd_hdmi_show_eld(struct hdmi_eld *e)
 {
 	int i;
 	char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE];
@@ -482,7 +482,7 @@ static void hdmi_print_sad_info(int i, s
 static void hdmi_print_eld_info(struct snd_info_entry *entry,
 				struct snd_info_buffer *buffer)
 {
-	struct sink_eld *e = entry->private_data;
+	struct hdmi_eld *e = entry->private_data;
 	char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE];
 	int i;
 
@@ -509,7 +509,7 @@ static void hdmi_print_eld_info(struct s
 		hdmi_print_sad_info(i, e->sad + i, buffer);
 }
 
-int snd_hda_eld_proc_new(struct hda_codec *codec, struct sink_eld *eld)
+int snd_hda_eld_proc_new(struct hda_codec *codec, struct hdmi_eld *eld)
 {
 	char name[32];
 	struct snd_info_entry *entry;
--- sound-2.6.orig/sound/pci/hda/hda_local.h
+++ sound-2.6/sound/pci/hda/hda_local.h
@@ -462,7 +462,7 @@ struct cea_sad {
 /*
  * ELD: EDID Like Data
  */
-struct sink_eld {
+struct hdmi_eld {
 	int	eld_size;
 	int	baseline_len;
 	int	eld_ver;	/* (eld_ver == 0) indicates invalid ELD */
@@ -481,13 +481,13 @@ struct sink_eld {
 };
 
 int snd_hdmi_get_eld_size(struct hda_codec *codec, hda_nid_t nid);
-int snd_hdmi_get_eld(struct sink_eld *, struct hda_codec *, hda_nid_t);
-void snd_hdmi_show_eld(struct sink_eld *eld);
+int snd_hdmi_get_eld(struct hdmi_eld *, struct hda_codec *, hda_nid_t);
+void snd_hdmi_show_eld(struct hdmi_eld *eld);
 
 #ifdef CONFIG_PROC_FS
-int snd_hda_eld_proc_new(struct hda_codec *codec, struct sink_eld *eld);
+int snd_hda_eld_proc_new(struct hda_codec *codec, struct hdmi_eld *eld);
 #else
-inline int snd_hda_eld_proc_new(struct hda_codec *codec, struct sink_eld *eld)
+inline int snd_hda_eld_proc_new(struct hda_codec *codec, struct hdmi_eld *eld)
 {
 	return 0;
 }
--- sound-2.6.orig/sound/pci/hda/patch_intelhdmi.c
+++ sound-2.6/sound/pci/hda/patch_intelhdmi.c
@@ -42,7 +42,7 @@
 struct intel_hdmi_spec {
 	struct hda_multi_out multiout;
 	struct hda_pcm pcm_rec;
-	struct sink_eld sink;
+	struct hdmi_eld sink_eld;
 };
 
 static struct hda_verb pinout_enable_verb[] = {
@@ -308,7 +308,7 @@ static void hdmi_debug_channel_mapping(s
 static void hdmi_parse_eld(struct hda_codec *codec)
 {
 	struct intel_hdmi_spec *spec = codec->spec;
-	struct sink_eld *eld = &spec->sink;
+	struct hdmi_eld *eld = &spec->sink_eld;
 
 	if (!snd_hdmi_get_eld(eld, codec, PIN_NID))
 		snd_hdmi_show_eld(eld);
@@ -411,7 +411,7 @@ static int hdmi_setup_channel_allocation
 					 struct hdmi_audio_infoframe *ai)
 {
 	struct intel_hdmi_spec *spec = codec->spec;
-	struct sink_eld *eld = &spec->sink;
+	struct hdmi_eld *eld = &spec->sink_eld;
 	int i;
 	int spk_mask = 0;
 	int channels = 1 + (ai->CC02_CT47 & 0x7);
@@ -663,7 +663,7 @@ static int patch_intel_hdmi(struct hda_c
 	codec->spec = spec;
 	codec->patch_ops = intel_hdmi_patch_ops;
 
-	snd_hda_eld_proc_new(codec, &spec->sink);
+	snd_hda_eld_proc_new(codec, &spec->sink_eld);
 
 	init_channel_allocations();
 

-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 3/5] hda: minor output message cleanups
  2008-11-19  7:13 [PATCH 0/5] assorted HDMI cleanups Wu Fengguang
  2008-11-19  7:13 ` [PATCH 1/5] hda: minor code cleanups Wu Fengguang
  2008-11-19  7:14 ` [PATCH 2/5] hda: rename sink_eld to hdmi_eld Wu Fengguang
@ 2008-11-19  7:14 ` Wu Fengguang
  2008-11-19  7:14 ` [PATCH 4/5] hda: make global snd_print_pcm_bits() Wu Fengguang
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Wu Fengguang @ 2008-11-19  7:14 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: alsa-print-speakers-cleanup.patch --]
[-- Type: text/plain, Size: 2259 bytes --]

Some minor user visible message cleanups.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
---
 sound/pci/hda/hda_eld.c |   15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

--- sound-2.6.orig/sound/pci/hda/hda_eld.c
+++ sound-2.6/sound/pci/hda/hda_eld.c
@@ -118,7 +118,7 @@ static char *cea_audio_coding_type_names
 	/*  6 */ "AAC-LC",
 	/*  7 */ "DTS",
 	/*  8 */ "ATRAC",
-	/*  9 */ "DSD (1-bit audio)",
+	/*  9 */ "DSD (One Bit Audio)",
 	/* 10 */ "E-AC-3/DD+ (Dolby Digital Plus)",
 	/* 11 */ "DTS-HD",
 	/* 12 */ "MLP (Dolby TrueHD)",
@@ -395,7 +395,7 @@ static void hdmi_show_short_audio_desc(s
 	printk(KERN_INFO "channels: %d\n", a->channels);
 
 	snd_print_pcm_rates(a->rates, buf, sizeof(buf));
-	printk(KERN_INFO "sampling frequencies: %s\n", buf);
+	printk(KERN_INFO "sampling rates: %s\n", buf);
 
 	if (a->format == AUDIO_CODING_TYPE_LPCM)
 		printk(KERN_INFO "sample bits: 0x%x\n", a->sample_bits);
@@ -413,11 +413,9 @@ void snd_print_channel_allocation(int sp
 
 	for (i = 0, j = 0; i < ARRAY_SIZE(cea_speaker_allocation_names); i++) {
 		if (spk_alloc & (1 << i))
-			j += snprintf(buf + j, buflen - j,  "%s ",
+			j += snprintf(buf + j, buflen - j,  " %s",
 					cea_speaker_allocation_names[i]);
 	}
-	if (j)
-		j--;	/* skip last space */
 	buf[j] = '\0';	/* necessary when j == 0 */
 }
 
@@ -464,11 +462,10 @@ static void hdmi_print_sad_info(int i, s
 	snd_iprintf(buffer, "sad%d_channels\t\t%d\n", i, a->channels);
 
 	snd_print_pcm_rates(a->rates, buf, sizeof(buf));
-	snd_iprintf(buffer, "sad%d_sampling_rates\t[0x%x] %s\n",
-			i, a->rates, buf);
+	snd_iprintf(buffer, "sad%d_rates\t\t[0x%x]%s\n", i, a->rates, buf);
 
 	if (a->format == AUDIO_CODING_TYPE_LPCM)
-		snd_iprintf(buffer, "sad%d_sample_bits\t0x%x\n",
+		snd_iprintf(buffer, "sad%d_bits\t\t0x%x\n",
 							i, a->sample_bits);
 
 	if (a->max_bitrate)
@@ -501,7 +498,7 @@ static void hdmi_print_eld_info(struct s
 	snd_iprintf(buffer, "audio_sync_delay\t%d\n", e->aud_synch_delay);
 
 	snd_print_channel_allocation(e->spk_alloc, buf, sizeof(buf));
-	snd_iprintf(buffer, "speakers\t\t[0x%x] %s\n", e->spk_alloc, buf);
+	snd_iprintf(buffer, "speakers\t\t[0x%x]%s\n", e->spk_alloc, buf);
 
 	snd_iprintf(buffer, "sad_count\t\t%d\n", e->sad_count);
 

-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 4/5] hda: make global snd_print_pcm_bits()
  2008-11-19  7:13 [PATCH 0/5] assorted HDMI cleanups Wu Fengguang
                   ` (2 preceding siblings ...)
  2008-11-19  7:14 ` [PATCH 3/5] hda: minor output message cleanups Wu Fengguang
@ 2008-11-19  7:14 ` Wu Fengguang
  2008-11-19  7:14 ` [PATCH 5/5] hda: compact ELD output messages Wu Fengguang
  2008-11-19  8:44 ` [PATCH 0/5] assorted HDMI cleanups Takashi Iwai
  5 siblings, 0 replies; 7+ messages in thread
From: Wu Fengguang @ 2008-11-19  7:14 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: alsa-print-sample-bits.patch --]
[-- Type: text/plain, Size: 3006 bytes --]

Introduce a global function snd_print_pcm_bits() and use it in the ELD code.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
---
 sound/pci/hda/hda_eld.c   |   10 ++++++----
 sound/pci/hda/hda_local.h |    3 +++
 sound/pci/hda/hda_proc.c  |   22 ++++++++++++++++------
 3 files changed, 25 insertions(+), 10 deletions(-)

--- sound-2.6.orig/sound/pci/hda/hda_proc.c
+++ sound-2.6/sound/pci/hda/hda_proc.c
@@ -107,23 +107,33 @@ void snd_print_pcm_rates(int pcm, char *
 static void print_pcm_rates(struct snd_info_buffer *buffer, unsigned int pcm)
 {
 	char buf[SND_PRINT_RATES_ADVISED_BUFSIZE];
+
 	pcm &= AC_SUPPCM_RATES;
 	snd_iprintf(buffer, "    rates [0x%x]:", pcm);
 	snd_print_pcm_rates(pcm, buf, sizeof(buf));
 	snd_iprintf(buffer, "%s\n", buf);
 }
 
-static void print_pcm_bits(struct snd_info_buffer *buffer, unsigned int pcm)
+void snd_print_pcm_bits(int pcm, char *buf, int buflen)
 {
 	static unsigned int bits[] = { 8, 16, 20, 24, 32 };
-	int i;
+	int i, j;
+
+	for (i = 0, j = 0; i < ARRAY_SIZE(bits); i++)
+		if (pcm & (1 << i))
+			j += snprintf(buf + j, buflen - j,  " %d", bits[i]);
+
+	buf[j] = '\0'; /* necessary when j == 0 */
+}
+
+static void print_pcm_bits(struct snd_info_buffer *buffer, unsigned int pcm)
+{
+	char buf[SND_PRINT_BITS_ADVISED_BUFSIZE];
 
 	pcm = (pcm >> 16) & 0xff;
 	snd_iprintf(buffer, "    bits [0x%x]:", pcm);
-	for (i = 0; i < ARRAY_SIZE(bits); i++)
-		if (pcm & (1 << i))
-			snd_iprintf(buffer, " %d", bits[i]);
-	snd_iprintf(buffer, "\n");
+	snd_print_pcm_bits(pcm, buf, sizeof(buf));
+	snd_iprintf(buffer, "%s\n", buf);
 }
 
 static void print_pcm_formats(struct snd_info_buffer *buffer,
--- sound-2.6.orig/sound/pci/hda/hda_eld.c
+++ sound-2.6/sound/pci/hda/hda_eld.c
@@ -455,7 +455,7 @@ void snd_hdmi_show_eld(struct hdmi_eld *
 static void hdmi_print_sad_info(int i, struct cea_sad *a,
 				struct snd_info_buffer *buffer)
 {
-	char buf[80];
+	char buf[SND_PRINT_RATES_ADVISED_BUFSIZE];
 
 	snd_iprintf(buffer, "sad%d_coding_type\t[0x%x] %s\n",
 			i, a->format, cea_audio_coding_type_names[a->format]);
@@ -464,9 +464,11 @@ static void hdmi_print_sad_info(int i, s
 	snd_print_pcm_rates(a->rates, buf, sizeof(buf));
 	snd_iprintf(buffer, "sad%d_rates\t\t[0x%x]%s\n", i, a->rates, buf);
 
-	if (a->format == AUDIO_CODING_TYPE_LPCM)
-		snd_iprintf(buffer, "sad%d_bits\t\t0x%x\n",
-							i, a->sample_bits);
+	if (a->format == AUDIO_CODING_TYPE_LPCM) {
+		snd_print_pcm_bits(a->sample_bits, buf, sizeof(buf));
+		snd_iprintf(buffer, "sad%d_bits\t\t[0x%x]%s\n",
+							i, a->sample_bits, buf);
+	}
 
 	if (a->max_bitrate)
 		snd_iprintf(buffer, "sad%d_max_bitrate\t%d\n",
--- sound-2.6.orig/sound/pci/hda/hda_local.h
+++ sound-2.6/sound/pci/hda/hda_local.h
@@ -287,6 +287,9 @@ static inline int snd_hda_codec_proc_new
 #define SND_PRINT_RATES_ADVISED_BUFSIZE	80
 void snd_print_pcm_rates(int pcm, char *buf, int buflen);
 
+#define SND_PRINT_BITS_ADVISED_BUFSIZE	16
+void snd_print_pcm_bits(int pcm, char *buf, int buflen);
+
 /*
  * Misc
  */

-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 5/5] hda: compact ELD output messages
  2008-11-19  7:13 [PATCH 0/5] assorted HDMI cleanups Wu Fengguang
                   ` (3 preceding siblings ...)
  2008-11-19  7:14 ` [PATCH 4/5] hda: make global snd_print_pcm_bits() Wu Fengguang
@ 2008-11-19  7:14 ` Wu Fengguang
  2008-11-19  8:44 ` [PATCH 0/5] assorted HDMI cleanups Takashi Iwai
  5 siblings, 0 replies; 7+ messages in thread
From: Wu Fengguang @ 2008-11-19  7:14 UTC (permalink / raw)
  To: Takashi Iwai; +Cc: alsa-devel

[-- Attachment #1: alsa-compact-eld-dmesg.patch --]
[-- Type: text/plain, Size: 3320 bytes --]

Strip out some ELD printk messages that end user won't care,
and make the output compact.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
---
 sound/pci/hda/hda_eld.c |   58 ++++++++++++++++----------------------
 1 file changed, 25 insertions(+), 33 deletions(-)

--- sound-2.6.orig/sound/pci/hda/hda_eld.c
+++ sound-2.6/sound/pci/hda/hda_eld.c
@@ -389,22 +389,27 @@ int snd_hdmi_get_eld(struct hdmi_eld *el
 static void hdmi_show_short_audio_desc(struct cea_sad *a)
 {
 	char buf[SND_PRINT_RATES_ADVISED_BUFSIZE];
+	char buf2[8 + SND_PRINT_BITS_ADVISED_BUFSIZE] = ", bits =";
 
-	printk(KERN_INFO "coding type: %s\n",
-					cea_audio_coding_type_names[a->format]);
-	printk(KERN_INFO "channels: %d\n", a->channels);
+	if (!a->format)
+		return;
 
 	snd_print_pcm_rates(a->rates, buf, sizeof(buf));
-	printk(KERN_INFO "sampling rates: %s\n", buf);
 
 	if (a->format == AUDIO_CODING_TYPE_LPCM)
-		printk(KERN_INFO "sample bits: 0x%x\n", a->sample_bits);
-
-	if (a->max_bitrate)
-		printk(KERN_INFO "max bitrate: %d\n", a->max_bitrate);
-
-	if (a->profile)
-		printk(KERN_INFO "profile: %d\n", a->profile);
+		snd_print_pcm_rates(a->sample_bits, buf2 + 8, sizeof(buf2 - 8));
+	else if (a->max_bitrate)
+		snprintf(buf2, sizeof(buf2),
+				", max bitrate = %d", a->max_bitrate);
+	else
+		buf2[0] = '\0';
+
+	printk(KERN_INFO "supports coding type %s:"
+			" channels = %d, rates =%s%s\n",
+			cea_audio_coding_type_names[a->format],
+			a->channels,
+			buf,
+			buf2);
 }
 
 void snd_print_channel_allocation(int spk_alloc, char *buf, int buflen)
@@ -422,29 +427,16 @@ void snd_print_channel_allocation(int sp
 void snd_hdmi_show_eld(struct hdmi_eld *e)
 {
 	int i;
-	char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE];
 
-	printk(KERN_INFO "ELD buffer size  is %d\n", e->eld_size);
-	printk(KERN_INFO "ELD baseline len is %d*4\n", e->baseline_len);
-	printk(KERN_INFO "vendor block len is %d\n",
-					e->eld_size - e->baseline_len * 4 - 4);
-	printk(KERN_INFO "ELD version      is %s\n",
-					eld_versoin_names[e->eld_ver]);
-	printk(KERN_INFO "CEA EDID version is %s\n",
-				cea_edid_version_names[e->cea_edid_ver]);
-	printk(KERN_INFO "manufacture id   is 0x%x\n", e->manufacture_id);
-	printk(KERN_INFO "product id       is 0x%x\n", e->product_id);
-	printk(KERN_INFO "port id          is 0x%llx\n", (long long)e->port_id);
-	printk(KERN_INFO "HDCP support     is %d\n", e->support_hdcp);
-	printk(KERN_INFO "AI support       is %d\n", e->support_ai);
-	printk(KERN_INFO "SAD count        is %d\n", e->sad_count);
-	printk(KERN_INFO "audio sync delay is %x\n", e->aud_synch_delay);
-	printk(KERN_INFO "connection type  is %s\n",
-				eld_connection_type_names[e->conn_type]);
-	printk(KERN_INFO "monitor name     is %s\n", e->monitor_name);
-
-	snd_print_channel_allocation(e->spk_alloc, buf, sizeof(buf));
-	printk(KERN_INFO "speaker allocations: (0x%x)%s\n", e->spk_alloc, buf);
+	printk(KERN_INFO "detected monitor %s at connection type %s\n",
+			e->monitor_name,
+			eld_connection_type_names[e->conn_type]);
+
+	if (e->spk_alloc) {
+		char buf[SND_PRINT_CHANNEL_ALLOCATION_ADVISED_BUFSIZE];
+		snd_print_channel_allocation(e->spk_alloc, buf, sizeof(buf));
+		printk(KERN_INFO "available speakers:%s\n", buf);
+	}
 
 	for (i = 0; i < e->sad_count; i++)
 		hdmi_show_short_audio_desc(e->sad + i);

-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/5] assorted HDMI cleanups
  2008-11-19  7:13 [PATCH 0/5] assorted HDMI cleanups Wu Fengguang
                   ` (4 preceding siblings ...)
  2008-11-19  7:14 ` [PATCH 5/5] hda: compact ELD output messages Wu Fengguang
@ 2008-11-19  8:44 ` Takashi Iwai
  5 siblings, 0 replies; 7+ messages in thread
From: Takashi Iwai @ 2008-11-19  8:44 UTC (permalink / raw)
  To: Wu Fengguang; +Cc: alsa-devel

At Wed, 19 Nov 2008 15:13:58 +0800,
Wu Fengguang wrote:
> 
> Hi Takashi,
> 
> Here are 5 HDMI cleanup patches, some renames the code and others renames the
> user visible output messages. The new output goes like:
> 
> dmesg
> 
> 	[ 5742.169578] detected monitor <9d><80>t connection type Display Port
> 	[ 5742.169580] available speakers: FL/FR LFE FLC/FRC
> 	[ 5742.169582] supports coding type MLP (Dolby TrueHD): channels = 7, rates = 48000 176400
> 	[ 5742.169585] supports coding type AC-3: channels = 1, rates = 48000 88200 192000, max bitrate = 1208000
> 	[ 5742.169588] supports coding type AC-3: channels = 2, rates = 48000 384000, max bitrate = 960000
> 	[ 5742.169591] supports coding type ATRAC: channels = 5, rates = 48000 88200 384000, max bitrate = 224000
> 
> 
> /proc/asound/card0/eld\#3
> 
> 	monitor name            ���
> 	connection_type         Display Port
> 	eld_version             [0xb] reserved
> 	edid_version            [0x3] CEA-861-B, C or D
> 	manufacture_id          0xee5a
> 	product_id              0x923c
> 	port_id                 0x18b263a03e17d1b5
> 	support_hdcp            1
> 	support_ai              1
> 	audio_sync_delay        216
> 	speakers                [0x23] FL/FR LFE FLC/FRC
> 	sad_count               4
> 	sad0_coding_type        [0xc] MLP (Dolby TrueHD)
> 	sad0_channels           7
> 	sad0_rates              [0x240] 48000 176400
> 	sad1_coding_type        [0x2] AC-3
> 	sad1_channels           1
> 	sad1_rates              [0x4c0] 48000 88200 192000
> 	sad1_max_bitrate        1208000
> 	sad2_coding_type        [0x2] AC-3
> 	sad2_channels           2
> 	sad2_rates              [0x1840] 48000 384000
> 	sad2_max_bitrate        960000
> 	sad3_coding_type        [0x8] ATRAC
> 	sad3_channels           5
> 	sad3_rates              [0x8c0] 48000 88200 384000
> 	sad3_max_bitrate        224000

Looks good.  Applied now.
Thanks!

Takashi
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-11-19  8:44 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-19  7:13 [PATCH 0/5] assorted HDMI cleanups Wu Fengguang
2008-11-19  7:13 ` [PATCH 1/5] hda: minor code cleanups Wu Fengguang
2008-11-19  7:14 ` [PATCH 2/5] hda: rename sink_eld to hdmi_eld Wu Fengguang
2008-11-19  7:14 ` [PATCH 3/5] hda: minor output message cleanups Wu Fengguang
2008-11-19  7:14 ` [PATCH 4/5] hda: make global snd_print_pcm_bits() Wu Fengguang
2008-11-19  7:14 ` [PATCH 5/5] hda: compact ELD output messages Wu Fengguang
2008-11-19  8:44 ` [PATCH 0/5] assorted HDMI cleanups Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox