Hi,
This patchset is to fix message parser and refine UAPI added in below patchset. https://lore.kernel.org/alsa-devel/20211015080826.34847-1-o-takashi@sakamocc...
Current implementation of message parser for register DSP models has a bug to cause invalid memory access in the other type of models. I attempted to fix it in my previous patch[1] but got a comment for simpler solution. The first patch in the patchset is revised version of the previous one.
After working for libhinawa(g-i binding)[2], Rust bindings[3], and service program[4] as application of the new features in UAPI, I found that the number of input meters is greater than current structure in UAPI for some models. The second patch is to refine the structure and message parser. I note that the other part of UAPI is pretty good, and the service program now supports control notification in register DSP mdoels as well as command DSP models.
After discussion about usage of float type in UAPI, it shall be allowed in some cases. The third patch is to interpret the UAPI for float type in userspace and u32 type in kernel space.
[1] https://lore.kernel.org/alsa-devel/20211020042555.40866-1-o-takashi@sakamocc... [2] https://github.com/alsa-project/libhinawa/tree/topic/motu-mixer-ioctl [3] https://github.com/alsa-project/hinawa-rs/tree/topic/v0.5.0 [4] https://github.com/alsa-project/snd-firewire-ctl-services/tree/topic/motu-mi...
Takashi Sakamoto (3): ALSA: firewire-motu: fix null pointer dereference when polling hwdep character device ALSA: firewire-motu: refine parser for meter information in register DSP models ALSA: firewire-motu: export mete information to userspace as float value
include/uapi/sound/firewire.h | 13 +++++++++---- .../motu/motu-command-dsp-message-parser.c | 7 +++++-- sound/firewire/motu/motu-hwdep.c | 16 +++++++++++----- .../motu/motu-register-dsp-message-parser.c | 14 +++++++++----- 4 files changed, 34 insertions(+), 16 deletions(-)