HDMI ELD routines and proc interface
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest3 patches 1 replyIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/3 | introduce snd_print_pcm_rates()sound/ sound/ | +17 | 0 replies | |
| 2/3 | create hda_eld.c for ELD routines and proc interfacesound/ sound/ sound/ +2 more | +505 | 0 replies | |
| 3/3 | ELD proc interface for HDMI sinkssound/ sound/ sound/ | +85 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/3] HDMI ELD routines and proc interface
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/pci/hda/hda_eld.c +14 -4
@@ -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 sif (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 *elint 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_codestruct 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/pci/hda/patch_intelhdmi.c +2 -0
@@ -635,6 +635,8 @@ static int patch_intel_hdmi(struct hda_cinit_channel_allocations (); +hdmi_parse_eld (codec); +return 0 ; }
_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel