• Takashi Sakamoto's avatar
    ALSA: firewire-motu: export meter information to userspace as float value · 407359d4
    Takashi Sakamoto authored
    In command DSP models, one meter information consists of 4 bytes for
    IEEE 764 floating point (binary32). In previous patch, it is exported
    to userspace as 32 bit storage since the storage is also handled in
    ALSA firewire-motu driver as well in kernel space in which floating point
    arithmetic is not preferable. On the other hand, ALSA firewire-motu driver
    doesn't perform floating point calculation. The driver just gather meter
    information from isochronous packets and fill structure fields for
    userspace.
    
    In 'header' target of Kbuild, UAPI headers are processed before installed.
    In this timing, #ifdef macro with __KERNEL__ is removed. This mechanism
    is useful in the case so that the 32 bit storage can be accessible as u32
    type in kernel space and float type in user space. We can see the same
    usage in ''struct acct_v3' in 'include/uapi/linux/acct.h'.
    
    This commit is for the above idea. Additionally, due to message
    protocol, meter information is filled with 0xffffffff in the end of
    period but 0xffffffff is invalid as binary32. To avoid confusion in
    userspace application, the last two elements are left without any
    assignment.
    Suggested-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20211027125529.54295-4-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    407359d4
motu-command-dsp-message-parser.c 4.38 KB