[alsa-devel] [Intel-gfx] Problems with HDMI audio on Intel DG45FC motherboard

Wu Fengguang fengguang.wu at intel.com
Mon Nov 2 10:11:08 CET 2009


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



More information about the Alsa-devel mailing list