[alsa-devel] [PATCH] ALSA: HDA: Add jack detection for HDMI

Stephen Warren swarren at nvidia.com
Tue May 17 23:42:24 CEST 2011


pl bossart wrote at Tuesday, May 17, 2011 2:51 PM:
> >> >> a) Is it possible to report more information alongside the plug events,
> >> >> such as ELD/EDID content? Or, is the idea that the kernel sends a plug
> >> >> event, and then user-space retrieves that information via some other
> >> >> API? I don't think there's an API to retrieve ELD information at present
> >> >> though right? Although certainly it'd make sense for that to be a
> >> >> completely separate patch.
> >> >
> >> > A simple approach would be adding a control element containing
> >> > byte-array of ELD/EDID.
> >>
> >> Are there any examples of such controls? Or are we talking about a new
> >> kind of control?
> >
> > Look for SNDRV_CTL_ELEM_TYPE_BYTES.  Some codecs provide these.
> 
> Thanks for the pointer. looks simple enough to expose the ELD bytes.
> This type of element can store up to 512 bytes, enough to store the
> ELD header+baseline fields (260 bytes tops). I don't think userspace
> would want to muck with vendor-specific information?

Isn't the ELD limited to 256 bytes, since verb F2F has an 8-bit offset
parameter?

I think it'd be a good idea to just dump the entire ELD out to user-space
for future flexibility. It's trivial for user-space to ignore the vendor-
specific data (since it's always after the standardized data).

> we may need an array of ELD controls in case there are several
> monitors. Not sure how to represent which one is actually used. The
> ELD is linked to a specific nid (node id), we'd need to link this to
> the audio device #?

Perhaps the vendor-specific data space could be useful for matching audio
ports to X displays; there is a 64-bit Port_ID in the ELD that might be
used for that, or we could define X/Linux/Unix as the vendor, and specify
the format of the vendor-specific data in a way that defines this mapping.

That said, the internal APIs our graphics driver uses to write the ELD
is currently limited to 96 bytes (the size of the standardized section
of the ELD). I'm not sure yet if that's simply because 96 bytes was all
that was needed, or if that also ended up being encoded as a HW design
limitation.

-- 
nvpublic



More information about the Alsa-devel mailing list