[alsa-devel] [PATCH] ALSA: control: cage TLV_DB_RANGE_HEAD in kernel land because it was obsoleted
Takashi Sakamoto
o-takashi at sakamocchi.jp
Mon Sep 26 01:14:29 CEST 2016
(CCed to Mark Brown)
On Sep 26 2016 05:17, Takashi Iwai wrote:
> On Sat, 24 Sep 2016 12:28:23 +0200,
> Takashi Sakamoto wrote:
>>
>> In commit bf1d1c9b6179 ("ALSA: tlv: add DECLARE_TLV_DB_RANGE()"), the new
>> macro was added so that "dB range information can be specified without
>> having to count the items manually for TLV_DB_RANGE_HEAD()". In short,
>> TLV_DB_RANGE_HEAD macro was obsoleted.
>>
>> In commit 46e860f76804 ("ALSA: rename TLV-related macros so that they're
>> friendly to user applications"), TLV-related macros are exposed for
>> applications in user land to get content of data structured by
>> Type/Length/Value shape. The commit managed to expose TLV-related macros
>> as many as possible, while obsoleted TLV_DB_RANGE_HEAD() was included to
>> the list of exposed macros.
>>
>> This situation brings some confusions to application developers because
>> they might think all exposed macros have their own purpose and useful for
>> applications.
>>
>> For the reason, this commit moves TLV_DB_RANGE_HEAD macro from UAPI header
>> to a header for kernel land, again. The above commit is done within the
>> same development period for kernel 4.9, thus not published yet. This
>> commit might certainly brings no confusions to user land.
>>
>> Reference: commit bf1d1c9b6179 ("ALSA: tlv: add DECLARE_TLV_DB_RANGE()")
>> Reference: commit 46e860f76804 ("ALSA: rename TLV-related macros so that they're friendly to user applications")
>> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
>
> Fair enough, applied now. Thanks.
And I think it better to replace usage of this macro with
SNDRV_CTL_TLVD_DECLARE_DB_RANGE. In your linux-next tree, addressed
macro is used by three drivers:
$ git grep TLV_DB_RANGE_HEAD
include/sound/tlv.h:#define TLV_DB_RANGE_HEAD
SNDRV_CTL_TLVD_DB_RANGE_HEAD
sound/soc/codecs/max9867.c: TLV_DB_RANGE_HEAD(2),
sound/soc/codecs/rt5616.c: TLV_DB_RANGE_HEAD(7),
sound/soc/codecs/wm8960.c: TLV_DB_RANGE_HEAD(2),
How do you think about doing it in time of kernel 4.9 merge window?
Regards
Takashi Sakamoto
>> ---
>> include/sound/tlv.h | 9 ++++++++-
>> include/uapi/sound/tlv.h | 3 ---
>> 2 files changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/include/sound/tlv.h b/include/sound/tlv.h
>> index 6e2e773..3677ebb 100644
>> --- a/include/sound/tlv.h
>> +++ b/include/sound/tlv.h
>> @@ -46,8 +46,15 @@
>>
>> #define TLV_DB_RANGE_ITEM SNDRV_CTL_TLVD_DB_RANGE_ITEM
>> #define DECLARE_TLV_DB_RANGE SNDRV_CTL_TLVD_DECLARE_DB_RANGE
>> -#define TLV_DB_RANGE_HEAD SNDRV_CTL_TLVD_DB_RANGE_HEAD
>>
>> #define TLV_DB_GAIN_MUTE SNDRV_CTL_TLVD_DB_GAIN_MUTE
>>
>> +/*
>> + * The below assumes that each item TLV is 4 words like DB_SCALE or LINEAR.
>> + * This is an old fasion and obsoleted by commit bf1d1c9b6179("ALSA: tlv: add
>> + * DECLARE_TLV_DB_RANGE()").
>> + */
>> +#define TLV_DB_RANGE_HEAD(num) \
>> + SNDRV_CTL_TLVT_DB_RANGE, 6 * (num) * sizeof(unsigned int)
>> +
>> #endif /* __SOUND_TLV_H */
>> diff --git a/include/uapi/sound/tlv.h b/include/uapi/sound/tlv.h
>> index f3c198f..b4df440 100644
>> --- a/include/uapi/sound/tlv.h
>> +++ b/include/uapi/sound/tlv.h
>> @@ -94,9 +94,6 @@
>> unsigned int name[] = { \
>> SNDRV_CTL_TLVD_DB_RANGE_ITEM(__VA_ARGS__) \
>> }
>> -/* The below assumes that each item TLV is 4 words like DB_SCALE or LINEAR */
>> -#define SNDRV_CTL_TLVD_DB_RANGE_HEAD(num) \
>> - SNDRV_CTL_TLVT_DB_RANGE, 6 * (num) * sizeof(unsigned int)
>>
>> #define SNDRV_CTL_TLVD_DB_GAIN_MUTE -9999999
>>
>> --
>> 2.7.4
More information about the Alsa-devel
mailing list