122851890Sopenharmony_ci/*
222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py,
322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants,
422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information.
522851890Sopenharmony_ci */
622851890Sopenharmony_ci#ifndef __UAPI_SOUND_TLV_H
722851890Sopenharmony_ci#define __UAPI_SOUND_TLV_H
822851890Sopenharmony_ci#define SNDRV_CTL_TLVT_CONTAINER 0
922851890Sopenharmony_ci#define SNDRV_CTL_TLVT_DB_SCALE	1
1022851890Sopenharmony_ci#define SNDRV_CTL_TLVT_DB_LINEAR 2
1122851890Sopenharmony_ci#define SNDRV_CTL_TLVT_DB_RANGE 3
1222851890Sopenharmony_ci#define SNDRV_CTL_TLVT_DB_MINMAX 4
1322851890Sopenharmony_ci#define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5
1422851890Sopenharmony_ci#define SNDRV_CTL_TLVT_CHMAP_FIXED	0x101
1522851890Sopenharmony_ci#define SNDRV_CTL_TLVT_CHMAP_VAR	0x102
1622851890Sopenharmony_ci#define SNDRV_CTL_TLVT_CHMAP_PAIRED	0x103
1722851890Sopenharmony_ci#define SNDRV_CTL_TLVD_ITEM(type, ...) \
1822851890Sopenharmony_ci	(type), SNDRV_CTL_TLVD_LENGTH(__VA_ARGS__), __VA_ARGS__
1922851890Sopenharmony_ci#define SNDRV_CTL_TLVD_LENGTH(...) \
2022851890Sopenharmony_ci	((unsigned int)sizeof((const unsigned int[]) { __VA_ARGS__ }))
2122851890Sopenharmony_ci#define SNDRV_CTL_TLVO_TYPE		0
2222851890Sopenharmony_ci#define SNDRV_CTL_TLVO_LEN		1
2322851890Sopenharmony_ci#define SNDRV_CTL_TLVD_CONTAINER_ITEM(...) \
2422851890Sopenharmony_ci	SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_CONTAINER, __VA_ARGS__)
2522851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DECLARE_CONTAINER(name, ...) \
2622851890Sopenharmony_ci	unsigned int name[] = { \
2722851890Sopenharmony_ci		SNDRV_CTL_TLVD_CONTAINER_ITEM(__VA_ARGS__) \
2822851890Sopenharmony_ci	}
2922851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DB_SCALE_MASK	0xffff
3022851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DB_SCALE_MUTE	0x10000
3122851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) \
3222851890Sopenharmony_ci	SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_SCALE, \
3322851890Sopenharmony_ci			    (min), \
3422851890Sopenharmony_ci			    ((step) & SNDRV_CTL_TLVD_DB_SCALE_MASK) | \
3522851890Sopenharmony_ci			     ((mute) ? SNDRV_CTL_TLVD_DB_SCALE_MUTE : 0))
3622851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DECLARE_DB_SCALE(name, min, step, mute) \
3722851890Sopenharmony_ci	unsigned int name[] = { \
3822851890Sopenharmony_ci		SNDRV_CTL_TLVD_DB_SCALE_ITEM(min, step, mute) \
3922851890Sopenharmony_ci	}
4022851890Sopenharmony_ci#define SNDRV_CTL_TLVO_DB_SCALE_MIN		2
4122851890Sopenharmony_ci#define SNDRV_CTL_TLVO_DB_SCALE_MUTE_AND_STEP	3
4222851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) \
4322851890Sopenharmony_ci	SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX, (min_dB), (max_dB))
4422851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \
4522851890Sopenharmony_ci	SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_MINMAX_MUTE, (min_dB), (max_dB))
4622851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX(name, min_dB, max_dB) \
4722851890Sopenharmony_ci	unsigned int name[] = { \
4822851890Sopenharmony_ci		SNDRV_CTL_TLVD_DB_MINMAX_ITEM(min_dB, max_dB) \
4922851890Sopenharmony_ci	}
5022851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DECLARE_DB_MINMAX_MUTE(name, min_dB, max_dB) \
5122851890Sopenharmony_ci	unsigned int name[] = { \
5222851890Sopenharmony_ci		SNDRV_CTL_TLVD_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \
5322851890Sopenharmony_ci	}
5422851890Sopenharmony_ci#define SNDRV_CTL_TLVO_DB_MINMAX_MIN	2
5522851890Sopenharmony_ci#define SNDRV_CTL_TLVO_DB_MINMAX_MAX	3
5622851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) \
5722851890Sopenharmony_ci	SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_LINEAR, (min_dB), (max_dB))
5822851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(name, min_dB, max_dB) \
5922851890Sopenharmony_ci	unsigned int name[] = { \
6022851890Sopenharmony_ci		SNDRV_CTL_TLVD_DB_LINEAR_ITEM(min_dB, max_dB) \
6122851890Sopenharmony_ci	}
6222851890Sopenharmony_ci#define SNDRV_CTL_TLVO_DB_LINEAR_MIN	2
6322851890Sopenharmony_ci#define SNDRV_CTL_TLVO_DB_LINEAR_MAX	3
6422851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DB_RANGE_ITEM(...) \
6522851890Sopenharmony_ci	SNDRV_CTL_TLVD_ITEM(SNDRV_CTL_TLVT_DB_RANGE, __VA_ARGS__)
6622851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DECLARE_DB_RANGE(name, ...) \
6722851890Sopenharmony_ci	unsigned int name[] = { \
6822851890Sopenharmony_ci		SNDRV_CTL_TLVD_DB_RANGE_ITEM(__VA_ARGS__) \
6922851890Sopenharmony_ci	}
7022851890Sopenharmony_ci#define SNDRV_CTL_TLVD_DB_GAIN_MUTE	-9999999
7122851890Sopenharmony_ci#endif
72