Thanks for your review Takashi!
Wouldn't it be better to strip the buffer data and size in the error case? For example, radeon driver gives often size=0. Then it's translated as size=128 for a workaround, then again handled as an error by checking the version.
Yes, I wasn't sure what to do here and expected some comments. Should the strategy be that if there's a single error we discard the entire ELD by setting the size to zero? No issues for the other changes.
Set the access field to SNDRV_CTL_ELEM_ACCESS_READ. Also, unless we implement a notification, better to set SNDRV_CTL_ELEM_ACCESS_VOLATILE flag, too.
The intent was to read the ELD after the device is opened, I don't think the ELD can change during playback, the updates can only happen on a pin-sensing event. I can't think of a good reason why a notification would be needed? -Pierre