I'd like to record one more very minor change to this case. Specifically, it turns out that device drivers may need access to the control description (a standard Boomer structure specified in 2008/318) so that they can wrap a control with enumeration values properly. (They need to have the enumeration bit mask and string names.) This just adds a very simple accessor function:
const audio_ctrl_desc_t *ac97_control_desc(ac97_ctrl_t *); The returned pointer is the audio_ctrl_desc_t (immutable, hence const) for the AC'97 control. I think this update is even less contentious than the earlier updates, so I'm leaving it as is. (This function, like all the other AC'97 DDI support routines, is Consolidation Private.) - Garrett