On Sat, 10 Sep 2016 06:50:14 +0200, Takashi Sakamoto wrote:
Hi,
Currently, TLV related protocol is not shared to user land. This is not good in a point of application interfaces, because application developers can't realize the protocol just to see UAPI headers.
For this purpose, this patchset moves all of macros related to TLV to UAPI header. As a result, a header just for kernel land is obsoleted. When adding new items to the protocol, it's added to the UAPI header. This change affects some drivers in media subsystem.
In my concern, this change can break applications. When these macros are already defined in application side and they includes tlv UAPI header directly, 'redefined' warning is generated at preprocess time. But the compilation will be success itself. If these two macros have different content, the result of preprocess is dominated to the order to define. However, the most applications are assumed to use TLV feature via libraries such as alsa-lib, thus I'm optimistic to this concern.
As another my concern, the name of these macros are quite simple, as 'TLV_XXX'. It might be help application developers to rename them with a prefix, as 'SNDRV_CTL_TLV_XXX'. (But not yet. I'm a lazy guy.)
The second patch does simply wrong. You must not obsolete include/sound/tlv.h. Even if it includes only uapi/*, it should be still there.
So, just move the stuff to include/uapi/sound/tlv.h, and that's all.
thanks,
Takashi