[alsa-devel] [PATCH v7.1 00/19] Rework OMAP4+ HDMI audio support

Jean-Francois Moine moinejf at free.fr
Fri Nov 14 11:59:16 CET 2014


On Thu, 13 Nov 2014 17:44:38 +0200
Tomi Valkeinen <tomi.valkeinen at ti.com> wrote:
	[snip]
> >> a) Always keep the audio device operational, no matter what is the
> >> status of the video side. How should this work if the HDMI videomode or
> >> the HDMI monitor does not support audio? Is it desirable that the
> >> userspace has no idea that the audio is not actually going anywhere?
> >>
> >> b) Remove the audio device when audio support is not available. This
> >> kind of makes sense, as, well, there's no possibility for audio output.
> >> But maybe this is not how linux sound devices are supposed to behave?
> >>
> >> c) Return errors when playback is attempted when audio support is not
> >> available. Again, this kind of makes sense, as audio playback is not
> >> possible. But maybe this is also not how audio devices generally work.
> >>
> >> Jyri, were there some other options we discussed?
> >>
> >> Currently, the OMAP HDMI version does c). It's the easiest solution for us.  
> > 
> > Same for me, but checking the audio capability is done on audio streaming
> > start only.  
> 
> Hmm, I understood you have option a)? You said "I even let audio
> streaming start when the HDMI cable is
> disconnected".

The option a) is the one of the patch, but I am moving towards option c).

> With "audio support is not available" I mean also the case when the
> cable is not connected, as then we don't have EDID information, and thus
> we don't have a HDMI monitor with audio support on the other end.

What I was saying is: when the cable is connected, all audio/video
parameters are known. Then, when the cable is disconnected, there is
no reason, a priori, to change these parameters, and audio/video
streaming may continue. The problem might be raised later when an other
monitor with different parameters will be connected.

> So to clarify, our driver only has "audio support available" if:
> - we successfully read EDID
> - EDID shows it's a HDMI monitor
> - EDID shows it has audio support for the format we support (this we
> don't actually do yet)
> 
> Otherwise we default to DVI, which means no audio.
> 
> If, at any point, the situation changes to "no audio support available",
> the audio playback is aborted and starting new audio playback fails.
	[snip]

So, to summarize, you need the information 'audio support available' on
the audio side.

It should not be difficult to export a function in the generic HDMI
driver for this job. This function would have the following arguments:

- device (child device of the HDMI transmitter)
- pin (output widget name)
- status (enable/disable)

and would:

- set the pin status so that the HDMI output would be included or not
  in the audio path, and

- abort audio streaming on disabling audio.

-- 
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/


More information about the Alsa-devel mailing list