Hi,
In ALSA control interface of asound.h, 'struct snd_ctl_elem_info' has 'dimen' member to deliver information for multi-dimensional array, however there's no common way to handle the member. As a result, drivers can force userspace applications to handle the information by inconsistent ways. A series of echoaudio drivers is an actual example of the inconsistent usage.
This issue was addressed in a commit 51db452df07b ('Revert "ALSA: echoaudio: purge contradictions between dimension matrix members and total number of members"') to Linux kernel[1]. Fortunately, at present, this feature of interface is just used by the drivers, and there's a way to obsolete usage of the feature. We can obsolete it without large impacts to userland.
As a result of discussion at Linux miniconference 2017, usage of 'dimen' member of 'struct snd_ctl_elem_info' is going to be deprecated for future removal. This patchset is for proposed tasks at a development period of Linux kernel v4.15[3]. Some APIs of dimension information are deprecated.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/so...
[2] [alsa-devel] [ANNOUNCE] Audio Mini Summit 2017 at Prague, Oct 27 http://mailman.alsa-project.org/pipermail/alsa-devel/2017-July/123110.html
[3] https://github.com/takaswie/presentations/blob/master/20171027/contents.md
Takashi Sakamoto (2): ctl: deprecate APIs of dimension information test: obsolete usage of APIs of dimension information
src/control/control.c | 12 ++++++++++++ test/user-ctl-element-set.c | 31 ------------------------------- 2 files changed, 12 insertions(+), 31 deletions(-)