Hi,
This patchset is a revised version of my former RFC.
[alsa-devel] [PATCH RFC 00/21] ALSA: pcm: add tracepoints for PCM params operation http://mailman.alsa-project.org/pipermail/alsa-devel/2017-May/120548.html
In ALSA PCM interface, applications can get hardware capability as 'struct snd_pcm_hw_params' type of data returned by a call of ioctl(2) with SNDRV_PCM_IOCTL_HW_REFINE/SNDRV_PCM_IOCTL_HW_PARAMS' commands. Results of these commands should be the same in a certain conditions but actually it's not.
This is a part of layout of the structure.
struct snd_pcm_hw_params { ... unsigned int info; unsigned int msbits; unsigned int rate_num; unsigned int rate_den; snd_pcm_uframes_t fifo_size; ... };
For example, although the 'msbits', 'rate_num' and 'rate_den' fields are filled in a result of HW_REFINE command conditionally, they're never filled in a result of HW_PARAMS command. This seems a bug.
This patchset attempts to fix the bug. This affects userspace applications in cotents of the result, but it's acceptrable with a merit for the applications to get enough parameters.
Takashi Sakamoto (3): ALSA: pcm: use helper functions to refer parameters as constants ALSA: pcm: calculate non-mask/non-interval parameters always when possible ALSA: pcm: move fixup of info flag after selecting single parameters
sound/core/pcm_native.c | 88 +++++++++++++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 35 deletions(-)