ctl: correct documentation about TLV feature

From my misunderstanding, some explanations are wrong. This commit
corrects them.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Takashi Sakamoto 2016-09-29 08:57:24 +09:00 committed by Takashi Iwai
parent e55d735f84
commit 4298736dda

View file

@ -59,27 +59,27 @@ elements included in the element set.
When the value of member is changed, corresponding events are transferred to When the value of member is changed, corresponding events are transferred to
userspace applications. The applications should subscribe any events in advance. userspace applications. The applications should subscribe any events in advance.
\section tlv_blob Thredshold level and arbitrary data \section tlv_blob Supplemental data for elements in an element set
TLV feature is designed to transfer data about threshold level between a driver TLV feature is designed to transfer data in a shape of Type/Length/Value,
and any userspace applications. The data is for an element set. between a driver and any userspace applications. The main purpose is to attach
supplement information for elements to an element set; e.g. dB range.
At first, this feature was implemented to add pre-defined data readable to At first, this feature was implemented to add pre-defined data readable to
userspace applications. Soon, it was extended to handle several operations; userspace applications. Soon, it was extended to handle several operations;
read, write and command. The original implementation remains as the read read, write and command. The original implementation remains as the read
operation. The command operation allows drivers to have own implementations operation. The command operation allows drivers to have own implementations
against requests from userspace applications. As of 2016, simple write operation against requests from userspace applications.
is not supported yet.
This feature was introduced to ALSA control feature in 2006, at commit This feature was introduced to ALSA control feature in 2006, at commit
c7a0708a2362, corresponding to a series of work for Linux kernel (42750b04c5ba c7a0708a2362, corresponding to a series of work for Linux kernel (42750b04c5ba
and 8aa9b586e420). and 8aa9b586e420).
This feature can transfer arbitrary data in a shape of an array with members of There's no limitation about maximum size of the data, therefore it can be used
unsigned int type, therefore it can be used to deliver quite large arbitrary to deliver quite large arbitrary data from userspace to in-kernel drivers via
data from userspace to in-kernel drivers via ALSA control character device. ALSA control character device. Focusing on this nature, as of 2016, some
Focusing on this nature, some in-kernel implementations utilize this feature for in-kernel implementations utilize this feature for I/O operations. This is
I/O operations. against the original design.
*/ */
#include <stdio.h> #include <stdio.h>