Re: [alsa-devel] [PATCH v3] pass ELD to HDMI/DP audio driver
On Fri, Aug 05, 2011 at 02:03:41AM +0800, Keith Packard wrote:
On Thu, 4 Aug 2011 17:40:24 +0800, Wu Fengguang fengguang.wu@intel.com wrote:
Right. I actually have this chunk. dmesg shows that in intel_hdmi_detect(), the drm_encoder object is there, however encoder->crtc is NULL at the time.
Correct. encoder->crtc is set only when the output is active.
Ah OK.
You may wonder why the mode parameter is needed in intel_write_eld(). This is because the ELD field aud_synch_delay (ie. A/V sync delay) may have different values in progressive/interleaved display modes.
Ok, so you can't write ELD data until the display is active, which happens at mode_set time.
Do you need to provide ELD when the display is inactive? Is this only to enable audio output when the display is not on? In that case, we will
Good questions! In general the audio functionalities should not depend on the display activeness. There are even audio-only HDMI devices. So I'll need to make intel_write_eld() work even without information about the current display mode.
need to essentially turn enough of the output on to allow for audio data, picking a mode which provide sufficient bandwidth.
That would be a good feature. For one thing, I find it annoying that the music playback fades out when the screen goes to power saving mode..
I tested Ivybridge yesterday and ironlake_write_eld seems to not work properly for Ivybridge. Need to double check its spec.
That's unfortunate...
But fixable :)
Thanks, Fengguang
Wu Fengguang wrote at Friday, August 05, 2011 6:50 AM:
On Fri, Aug 05, 2011 at 02:03:41AM +0800, Keith Packard wrote:
On Thu, 4 Aug 2011 17:40:24 +0800, Wu Fengguang fengguang.wu@intel.com wrote:
...
You may wonder why the mode parameter is needed in intel_write_eld(). This is because the ELD field aud_synch_delay (ie. A/V sync delay) may have different values in progressive/interleaved display modes.
Ok, so you can't write ELD data until the display is active, which happens at mode_set time.
Do you need to provide ELD when the display is inactive? Is this only to enable audio output when the display is not on? In that case, we will
Good questions! In general the audio functionalities should not depend on the display activeness. There are even audio-only HDMI devices. So I'll need to make intel_write_eld() work even without information about the current display mode.
Is there such a thing as an audio-only HDMI signal though; the audio data is transferred inside the blanking region of the HDMI video signal, which kinda implies that there needs to be some video content (even if the pixel data is e.g. hard-coded black rather than being scanned out from a frame- buffer) so as to define where those blanking regions are within the signal.
Good questions! In general the audio functionalities should not depend on the display activeness. There are even audio-only HDMI devices. So I'll need to make intel_write_eld() work even without information about the current display mode.
Yeah, we'll need to figure out what the ELD should look like with no display active. I think you've got the whole link available, so there shouldn't be any restrictions on formats.
That would be a good feature. For one thing, I find it annoying that the music playback fades out when the screen goes to power saving mode..
I'm not sure we can make it completely seamless without keeping most of the pipe active (which will consume some power). Probably we'll just leave the clock alone while the display is DPMS'd, but if we actually need the resources for another display, I'm afraid there may be some noise on the HDMI audio link. Will need experimentation to figure out how to make this work as nicely as possible.
I was just reading through the reference manual and found that there is a mode that leaves the HDMI running without requiring a pipe or plane, just the FDI PLL. So, audio without display seems pretty simple now; just a matter of a bit of API negotiation between the audio and video drivers.
participants (3)
-
Keith Packard
-
Stephen Warren
-
Wu Fengguang