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? 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 #?