Pierre-Louis Bossart wrote:
User-space code will need at some point to rely on the ELD information to know what the HDMI receiver supports, eg to enable/disable passthrough. I hacked a while ago a small patch to make the ELD bytes available in a control (see attached). It seems to work but I wasn't too sure how to expose it.
For something device-specific as this, a _BYTES control is the only choice. An alternative would be to have one control for each field in the ELD.
If the driver can detect ELD changes, it must inform userspace that the control has changed. If there is no ELD, the _get callback should return an error, and the control should have been set to unreadable.
Should we define a convention for the name of this control as well?
If software is supposed to be able to find this control for any HDMI device.
Or is there a way to link a control to a specify PCM device?
Yes: set .iface to _PCM instead of _MIXER (this will also prevent 'normal' mixers from showing this control, but a _BYTE control wouldn't be shown anyway), and set .device (and .subdevice, if appropriate) to the PCM device's (sub)device number.
Regards, Clemens