This patch accessing vendor specific registers of RME Class Compliant devices works otherwise fine, but there is still one small problem. It is supposed to be a polled from the hardware, since the values indicate device status and are subject to change at all times. Behavior is correct if I keep running "amixer" all the time to retrieve values - sampling rate changes are visible and values get updated. However, when I poll the values from an application without reopening the mixer, they are being cached somewhere and the changes are not reflected. This problem doesn't exist for example with PCIe based RME HDSPe AIO and application gets updated values, but in this USB based device case they don't get updated. I have flagged all the mixer controls as read-only and volatile, but the volatile flag is not honored in this (assuming I've understood it correctly).
Any guidance on how to fix the caching problem is welcome!