On Fri, Oct 30, 2009 at 06:29:32AM +0800, David Härdeman wrote:
On Thu, Oct 29, 2009 at 05:46:02PM +0800, Wu Fengguang wrote:
I'm not sure why your device can silence even nothing changed with the infoframe. Would you retry the attached patch and post the dmesg? This is just to make things more clear. I'm not against your patch in general.
dmesg attached...the first and third speaker-test invocation produced audible sound while the second and fourth didn't (the changed infoframe seems to cause the receiver to reset some internal state which kicks it into working).
OK, your device seems to work if there is a switch of infoframe, ie. coupled with the "HDMI: updating infoframe" message.
Note that the message only happens if the audio infoframe don't match up with previous one, _or_ the previous one has been wiped out by some reset operation:
Data Island Packet Data ----------------------- The contents of this buffer are cleared during function reset or HD audio link reset.
Could you try dumping the audio infoframe data at the beginning of hdmi_switch_infoframe() or hdmi_stop_infoframe_trans(), to check if the previous content have been reset to 0?
Thanks, Fengguang ---
Content-Description: intel-hdmi-oct-29.log
Script started on Thu 29 Oct 2009 11:18:26 PM CET scott:~/new8# dmesg -c > /dev/null scott:~/new8# speaker-test -c2 -D hdmi -twav -l1
speaker-test 1.0.20
Playback device is hdmi Stream parameters are 48000Hz, S16_LE, 2 channels WAV file(s) Rate set to 48000Hz (requested 48000Hz) Buffer size range from 64 to 16384 Period size range from 32 to 8192 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left 1 - Front Right Time per period = 2.730676 scott:~/new8# dmesg -c [ 470.461885] ALSA sound/pci/hda/hda_intel.c:1621: azx_pcm_prepare: bufsize=0x10000, format=0x11 [ 470.461959] HDMI: hdmi_setup_audio_infoframe [ 470.461961] HDMI: trying to update infoframe [ 470.462067] infoframe 132 =? 132 [ 470.462110] infoframe 1 =? 1 [ 470.462153] infoframe 10 =? 10 [ 470.462187] infoframe 87 =? 112 [ 470.462188] HDMI: updating infoframe [ 470.462283] HDMI: ELD buf size is 64 [ 470.462336] HDMI: DIP GP[0] buf size is 13 [ 470.462379] HDMI: DIP GP[1] buf size is 10 [ 470.462422] HDMI: DIP GP[2] buf size is 30 [ 470.462464] HDMI: DIP GP[3] buf size is 30 [ 470.462498] HDMI: DIP GP[4] buf size is 0 [ 470.462551] HDMI: DIP GP[5] buf size is 0 [ 470.462584] HDMI: DIP GP[6] buf size is 0 [ 470.462627] HDMI: DIP GP[7] buf size is 0 [ 470.462644] ALSA sound/pci/hda/hda_codec.c:1083: hda_codec_setup_stream: NID=0x2, stream=0x5, channel=0, format=0x11 [ 473.199329] ALSA sound/pci/hda/hda_codec.c:1096: hda_codec_cleanup_stream: NID=0x2 [ 473.199389] ALSA sound/pci/hda/hda_codec.c:1096: hda_codec_cleanup_stream: NID=0x2 scott:~/new8# speaker-test -c2 -D hdmi -twav -l1
speaker-test 1.0.20
Playback device is hdmi Stream parameters are 48000Hz, S16_LE, 2 channels WAV file(s) Rate set to 48000Hz (requested 48000Hz) Buffer size range from 64 to 16384 Period size range from 32 to 8192 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left 1 - Front Right Time per period = 2.730384 scott:~/new8# dmesg -c [ 489.945260] ALSA sound/pci/hda/hda_intel.c:1621: azx_pcm_prepare: bufsize=0x10000, format=0x11 [ 489.945341] HDMI: hdmi_setup_audio_infoframe [ 489.945342] HDMI: trying to update infoframe [ 489.945447] infoframe 132 =? 132 [ 489.945489] infoframe 1 =? 1 [ 489.945531] infoframe 10 =? 10 [ 489.945573] infoframe 112 =? 112 [ 489.945614] infoframe 1 =? 1 [ 489.945656] infoframe 0 =? 0 [ 489.945697] infoframe 0 =? 0 [ 489.945739] infoframe 0 =? 0 [ 489.945781] infoframe 0 =? 0 [ 489.945823] infoframe 0 =? 0 [ 489.945864] infoframe 0 =? 0 [ 489.945906] infoframe 0 =? 0 [ 489.945948] infoframe 0 =? 0 [ 489.945989] infoframe 0 =? 0 [ 489.945991] ALSA sound/pci/hda/hda_codec.c:1083: hda_codec_setup_stream: NID=0x2, stream=0x5, channel=0, format=0x11 [ 492.682520] ALSA sound/pci/hda/hda_codec.c:1096: hda_codec_cleanup_stream: NID=0x2 [ 492.682584] ALSA sound/pci/hda/hda_codec.c:1096: hda_codec_cleanup_stream: NID=0x2 scott:~/new8# speaker-test -c8 -D hdmi -twav -l1
speaker-test 1.0.20
Playback device is hdmi Stream parameters are 48000Hz, S16_LE, 8 channels WAV file(s) Rate set to 48000Hz (requested 48000Hz) Buffer size range from 16 to 4096 Period size range from 8 to 2048 Using max buffer size 4096 Periods = 4 was set period_size = 1024 was set buffer_size = 4096 0 - Front Left 4 - Center 1 - Front Right 7 - Side Right 3 - Rear Right 2 - Rear Left 6 - Side Left 5 - LFE Time per period = 11.307268 scott:~/new8# dmesg -c [ 540.685870] ALSA sound/pci/hda/hda_intel.c:1621: azx_pcm_prepare: bufsize=0x10000, format=0x17 [ 540.685954] HDMI: hdmi_setup_audio_infoframe [ 540.685959] ALSA sound/pci/hda/patch_intelhdmi.c:605: HDMI: select CA 0x13 for 8-channel allocation: FL/FR LFE FC RL/RR RC FLC/FRC RLC/RRC FLW/FRW FLH/FRH TC FCH [ 540.686168] HDMI: ASP channel 0 => slot 0 [ 540.686201] HDMI: ASP channel 0 => slot 0 [ 540.686254] HDMI: ASP channel 0 => slot 0 [ 540.686306] HDMI: ASP channel 0 => slot 0 [ 540.686349] HDMI: ASP channel 0 => slot 0 [ 540.686393] HDMI: ASP channel 0 => slot 0 [ 540.686436] HDMI: ASP channel 0 => slot 0 [ 540.686470] HDMI: ASP channel 0 => slot 0 [ 540.686472] HDMI: trying to update infoframe [ 540.686586] infoframe 132 =? 132 [ 540.686639] infoframe 1 =? 1 [ 540.686682] infoframe 10 =? 10 [ 540.686726] infoframe 112 =? 87 [ 540.686727] HDMI: updating infoframe [ 540.686812] HDMI: ELD buf size is 64 [ 540.686844] HDMI: DIP GP[0] buf size is 13 [ 540.686897] HDMI: DIP GP[1] buf size is 10 [ 540.686930] HDMI: DIP GP[2] buf size is 30 [ 540.686973] HDMI: DIP GP[3] buf size is 30 [ 540.687016] HDMI: DIP GP[4] buf size is 0 [ 540.687059] HDMI: DIP GP[5] buf size is 0 [ 540.687093] HDMI: DIP GP[6] buf size is 0 [ 540.687146] HDMI: DIP GP[7] buf size is 0 [ 540.687160] ALSA sound/pci/hda/hda_codec.c:1083: hda_codec_setup_stream: NID=0x2, stream=0x5, channel=0, format=0x17 [ 551.999466] ALSA sound/pci/hda/hda_codec.c:1096: hda_codec_cleanup_stream: NID=0x2 [ 551.999526] ALSA sound/pci/hda/hda_codec.c:1096: hda_codec_cleanup_stream: NID=0x2 scott:~/new8# speaker-test -c8 -D hdmi -twav -l1
speaker-test 1.0.20
Playback device is hdmi Stream parameters are 48000Hz, S16_LE, 8 channels WAV file(s) Rate set to 48000Hz (requested 48000Hz) Buffer size range from 16 to 4096 Period size range from 8 to 2048 Using max buffer size 4096 Periods = 4 was set period_size = 1024 was set buffer_size = 4096 0 - Front Left 4 - Center 1 - Front Right 7 - Side Right 3 - Rear Right 2 - Rear Left 6 - Side Left 5 - LFE Time per period = 11.307234 scott:~/new8# dmesg -c [ 569.801850] ALSA sound/pci/hda/hda_intel.c:1621: azx_pcm_prepare: bufsize=0x10000, format=0x17 [ 569.801933] HDMI: hdmi_setup_audio_infoframe [ 569.801939] ALSA sound/pci/hda/patch_intelhdmi.c:605: HDMI: select CA 0x13 for 8-channel allocation: FL/FR LFE FC RL/RR RC FLC/FRC RLC/RRC FLW/FRW FLH/FRH TC FCH [ 569.802149] HDMI: ASP channel 0 => slot 0 [ 569.802202] HDMI: ASP channel 0 => slot 0 [ 569.802235] HDMI: ASP channel 0 => slot 0 [ 569.802278] HDMI: ASP channel 0 => slot 0 [ 569.802321] HDMI: ASP channel 0 => slot 0 [ 569.802364] HDMI: ASP channel 0 => slot 0 [ 569.802398] HDMI: ASP channel 0 => slot 0 [ 569.802451] HDMI: ASP channel 0 => slot 0 [ 569.802453] HDMI: trying to update infoframe [ 569.802567] infoframe 132 =? 132 [ 569.802620] infoframe 1 =? 1 [ 569.802673] infoframe 10 =? 10 [ 569.802715] infoframe 87 =? 87 [ 569.802758] infoframe 7 =? 7 [ 569.802801] infoframe 0 =? 0 [ 569.802834] infoframe 0 =? 0 [ 569.802887] infoframe 19 =? 19 [ 569.802920] infoframe 0 =? 0 [ 569.802972] infoframe 0 =? 0 [ 569.803025] infoframe 0 =? 0 [ 569.803068] infoframe 0 =? 0 [ 569.803111] infoframe 0 =? 0 [ 569.803154] infoframe 0 =? 0 [ 569.803156] ALSA sound/pci/hda/hda_codec.c:1083: hda_codec_setup_stream: NID=0x2, stream=0x5, channel=0, format=0x17 [ 581.115970] ALSA sound/pci/hda/hda_codec.c:1096: hda_codec_cleanup_stream: NID=0x2 [ 581.116033] ALSA sound/pci/hda/hda_codec.c:1096: hda_codec_cleanup_stream: NID=0x2 scott:~/new8# exit exit
Script done on Thu 29 Oct 2009 11:21:01 PM CET