[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