From: Wu Fengguang <wfg@linux.intel.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: alsa-devel <alsa-devel@alsa-project.org>
Subject: [PATCH 0/3] HDMI ELD routines and proc interface
Date: Tue, 18 Nov 2008 11:47:50 +0800 [thread overview]
Message-ID: <20081118034750.445933681@linux.intel.com> (raw)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 5942 bytes --]
Hi Takashi,
Here are the patches for separated HDMI ELD routines and proc interface.
They have undergone basic tests on a G45 board and stress test with the
patch below.
[PATCH 1/3] introduce snd_print_pcm_rates()
[PATCH 2/3] create hda_eld.c for ELD routines and proc interface
[PATCH 3/3] ELD proc interface for HDMI sinks
Here are two sample outputs from the stress testing:
monitor name
connection_type 2-reserved
eld_version [0x0] reserved
edid_version [0x0] no CEA EDID Timing Extension block present
manufacture_id 0x3c93
product_id 0xc5ac
port_id 0x486d85d5a3bfe049
support_hdcp 1
support_ai 0
audio_sync_delay 152
speakers [0x6f] FL/FR LFE FC RL/RR FLC/FRC RLC/RRC
sad_count 8
sad0_coding_type [0x0] undefined
sad0_channels 0
sad0_sampling_rates [0x0]
sad1_coding_type [0x0] undefined
sad1_channels 0
sad1_sampling_rates [0x0]
sad2_coding_type [0x0] undefined
sad2_channels 0
sad2_sampling_rates [0x0]
sad3_coding_type [0x0] undefined
sad3_channels 0
sad3_sampling_rates [0x0]
sad4_coding_type [0x0] undefined
sad4_channels 0
sad4_sampling_rates [0x0]
sad5_coding_type [0x0] undefined
sad5_channels 0
sad5_sampling_rates [0x0]
sad6_coding_type [0x0] undefined
sad6_channels 0
sad6_sampling_rates [0x0]
sad7_coding_type [0x0] undefined
sad7_channels 0
sad7_sampling_rates [0x0]
monitor name �����p
connection_type Display Port
eld_version [0x0] reserved
edid_version [0x7] reserved
manufacture_id 0x59c7
product_id 0x3c72
port_id 0x323d7444a5fcbdba
support_hdcp 0
support_ai 1
audio_sync_delay 268
speakers [0x33] FL/FR LFE RC FLC/FRC
sad_count 14
sad0_coding_type [0x9] DSD (1-bit audio)
sad0_channels 5
sad0_sampling_rates [0xe40] 48000 176400 192000 384000
sad1_coding_type [0x6] AAC-LC
sad1_channels 2
sad1_sampling_rates [0x18a0] 44100 88200 384000
sad1_max_bitrate 1024000
sad2_coding_type [0xc] MLP (Dolby TrueHD)
sad2_channels 8
sad2_sampling_rates [0x1ec0] 48000 88200 176400 192000 384000
sad3_coding_type [0x8] ATRAC
sad3_channels 3
sad3_sampling_rates [0x1220] 44100 176400
sad3_max_bitrate 944000
sad4_coding_type [0xd] DST
sad4_channels 3
sad4_sampling_rates [0xac0] 48000 88200 176400 384000
sad5_coding_type [0x2] AC-3
sad5_channels 3
sad5_sampling_rates [0x1a60] 44100 48000 176400 384000
sad5_max_bitrate 592000
sad6_coding_type [0xc] MLP (Dolby TrueHD)
sad6_channels 3
sad6_sampling_rates [0xc40] 48000 192000 384000
sad7_coding_type [0x9] DSD (1-bit audio)
sad7_channels 6
sad7_sampling_rates [0xc20] 44100 192000 384000
sad8_coding_type [0x5] MPEG2
sad8_channels 1
sad8_sampling_rates [0x1ac0] 48000 88200 176400 384000
sad8_max_bitrate 544000
sad9_coding_type [0xc] MLP (Dolby TrueHD)
sad9_channels 7
sad9_sampling_rates [0x460] 44100 48000 192000
sad10_coding_type [0x1] LPCM
sad10_channels 4
sad10_sampling_rates [0x1260] 44100 48000 176400
sad10_sample_bits 0x40000
sad11_coding_type [0x6] AAC-LC
sad11_channels 7
sad11_sampling_rates [0x1240] 48000 176400
sad11_max_bitrate 408000
sad12_coding_type [0x0] undefined
sad12_channels 0
sad12_sampling_rates [0x0]
sad13_coding_type [0x0] undefined
sad13_channels 0
sad13_sampling_rates [0x0]
Thank you,
Fengguang
---
stress testing patch for ELD routines
sound/pci/hda/hda_eld.c | 30 ++++++++++++++++++++----------
sound/pci/hda/patch_intelhdmi.c | 2 ++
2 files changed, 22 insertions(+), 10 deletions(-)
--- sound-2.6.orig/sound/pci/hda/hda_eld.c
+++ sound-2.6/sound/pci/hda/hda_eld.c
@@ -27,6 +27,15 @@
#include "hda_codec.h"
#include "hda_local.h"
+static unsigned long rand;
+
+static inline unsigned char random(void)
+{
+ /* See "Numerical Recipes in C", second edition, p. 284 */
+ rand = rand * 1664525L + 1013904223L;
+ return (unsigned char) (rand >> 24);
+}
+
enum eld_versions {
ELD_VER_CEA_861D = 2,
ELD_VER_PARTIAL = 31,
@@ -167,6 +176,8 @@ static unsigned char hdmi_get_eld_byte(s
val = snd_hda_codec_read(codec, nid, 0,
AC_VERB_GET_HDMI_ELDD, byte_index);
+ val = AC_ELDD_ELD_VALID | random();
+
#ifdef BE_PARANOID
printk(KERN_INFO "ELD data byte %d: 0x%x\n", byte_index, val);
#endif
@@ -277,7 +288,6 @@ static int hdmi_update_sink_eld(struct s
if (e->eld_ver != ELD_VER_CEA_861D &&
e->eld_ver != ELD_VER_PARTIAL) {
snd_printd(KERN_INFO "Unknown ELD version %d\n", e->eld_ver);
- goto out_fail;
}
e->eld_size = size;
@@ -359,9 +369,6 @@ int snd_hdmi_get_eld(struct sink_eld *el
int size;
unsigned char *buf;
- if (!hdmi_eld_valid(codec, nid))
- return -ENOENT;
-
size = snd_hdmi_get_eld_size(codec, nid);
if (size == 0) {
/* wfg: workaround for ASUS P5E-VM HDMI board */
@@ -516,6 +523,9 @@ int snd_hda_eld_proc_new(struct hda_code
struct snd_info_entry *entry;
int err;
+ /* Initialize random number generator */
+ rand = jiffies;
+
snprintf(name, sizeof(name), "eld#%d", codec->addr);
err = snd_card_proc_new(codec->bus->card, name, &entry);
if (err < 0)
--- sound-2.6.orig/sound/pci/hda/patch_intelhdmi.c
+++ sound-2.6/sound/pci/hda/patch_intelhdmi.c
@@ -635,6 +635,8 @@ static int patch_intel_hdmi(struct hda_c
init_channel_allocations();
+ hdmi_parse_eld(codec);
+
return 0;
}
[-- 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
next reply other threads:[~2008-11-18 4:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-18 3:47 Wu Fengguang [this message]
2008-11-18 3:47 ` [PATCH 1/3] introduce snd_print_pcm_rates() Wu Fengguang
2008-11-18 3:47 ` [PATCH 2/3] create hda_eld.c for ELD routines and proc interface Wu Fengguang
2008-11-18 3:47 ` [PATCH 3/3] ELD proc interface for HDMI sinks Wu Fengguang
2008-11-18 7:18 ` [PATCH 0/3] HDMI ELD routines and proc interface Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081118034750.445933681@linux.intel.com \
--to=wfg@linux.intel.com \
--cc=alsa-devel@alsa-project.org \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.