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

Wu Fengguang fengguang.wu at intel.com
Tue Oct 27 10:08:08 CET 2009


On Tue, Oct 27, 2009 at 07:11:25AM +0800, David Härdeman wrote:
> On Tue, Oct 20, 2009 at 03:43:53PM -0700, Shane W wrote:
> > On Tue, Oct 20, 2009 at 09:26:00AM +0800, Wu Fengguang wrote:
> > > HDMI codec/sink seem to take some time to response to the output
> > > enable and new infoframe, so there are some delay. I've moved the HDMI
> > > output enable command to module load time, this helps. The infoframe
> > > is in theory created in run time based on the format of _each_ new
> > > audio stream, so infoframe transmission has to be started/stopped
> > > for each track..
> > 
> > I know this has come up before but can't we not start/stop
> > the infoframe if the sample format on the new track is the
> > same as the old. I mean playing an album, you're gonna get
> > 44100, 2ch s16le 95% of the time so that would atleast
> > cause the problem to appear much less.
> 
> Tried it, still had the second-track-produces-silence bug on my receiver 
> so I couldn't test it properly.
> 
> I however did manage to create a different patch which fixed my receiver 
> bug (yay!)...by sending "refer-to-stream-header" audio infoframes from 
> pcm close to pcm open...something like this quick hack:

This is an important clue, thank you! :)

The patch is not quite logical. Hopefully the sticky infoframe patch
can help in the same way.

Attached is the broken up patches, hope that helps your debugging.
The last 4 patches in the series are inspired by your comments.

Thanks,
Fengguang

> 
> --- linux-2.6.32-rc5/sound/pci/hda/patch_intelhdmi.c	2009-10-16 02:41:50.000000000 +0200
> +++ ../linux-2.6.32-rc5/sound/pci/hda/patch_intelhdmi.c	2009-10-26 23:39:54.000000000 +0100
> @@ -552,8 +552,16 @@
>  					 struct snd_pcm_substream *substream)
>  {
>  	struct intel_hdmi_spec *spec = codec->spec;
> +	struct hdmi_audio_infoframe ai = {
> +		.type		= 0x84,
> +		.ver		= 0x01,
> +		.len		= 0x0a,
> +		.CC02_CT47	= 0x00,
> +	};
>  
>  	hdmi_stop_infoframe_trans(codec);
> +	hdmi_fill_audio_infoframe(codec, &ai);
> +	hdmi_start_infoframe_trans(codec);
>  
>  	return snd_hda_multi_out_dig_close(codec, &spec->multiout);
>  }
> @@ -571,6 +579,7 @@
>  
>  	hdmi_set_channel_count(codec, substream->runtime->channels);
>  
> +	hdmi_stop_infoframe_trans(codec);
>  	hdmi_setup_audio_infoframe(codec, substream);
>  
>  	return 0;
> 
> 
> Not sure how/if something like that could be turned into an acceptable 
> patch though...
> 
> -- 
> David Härdeman
-------------- next part --------------
A non-text attachment was scrubbed...
Name: intel-hdmi-2009-10-27.tgz
Type: application/x-gtar
Size: 9364 bytes
Desc: not available
Url : http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20091027/9c7f27ca/attachment.gtar 


More information about the Alsa-devel mailing list