* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.