diff options
| author | Takashi Iwai <tiwai@suse.de> | 2012-07-18 07:53:29 -0400 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2012-07-18 07:53:29 -0400 |
| commit | f0913cd16e8a6608cf9558ccbe8fdf4d428ca3de (patch) | |
| tree | d6ea8cc44a9d55d29d38605165a09cf69ff9a536 /include/sound | |
| parent | 61eab000f3536f080eab43fd5eed3fd817ded76e (diff) | |
| parent | 59b1f084abd8690ffe68c67758ad08bbcb7d1af0 (diff) | |
Merge branch 'topic/misc' into for-next
Generic updates for sound 3.6
Diffstat (limited to 'include/sound')
| -rw-r--r-- | include/sound/pcm.h | 3 | ||||
| -rw-r--r-- | include/sound/pcm_params.h | 2 | ||||
| -rw-r--r-- | include/sound/tlv.h | 29 |
3 files changed, 25 insertions, 9 deletions
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 0d1112815be3..e91e6047ca6f 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h | |||
| @@ -810,7 +810,7 @@ int snd_pcm_hw_constraint_integer(struct snd_pcm_runtime *runtime, snd_pcm_hw_pa | |||
| 810 | int snd_pcm_hw_constraint_list(struct snd_pcm_runtime *runtime, | 810 | int snd_pcm_hw_constraint_list(struct snd_pcm_runtime *runtime, |
| 811 | unsigned int cond, | 811 | unsigned int cond, |
| 812 | snd_pcm_hw_param_t var, | 812 | snd_pcm_hw_param_t var, |
| 813 | struct snd_pcm_hw_constraint_list *l); | 813 | const struct snd_pcm_hw_constraint_list *l); |
| 814 | int snd_pcm_hw_constraint_ratnums(struct snd_pcm_runtime *runtime, | 814 | int snd_pcm_hw_constraint_ratnums(struct snd_pcm_runtime *runtime, |
| 815 | unsigned int cond, | 815 | unsigned int cond, |
| 816 | snd_pcm_hw_param_t var, | 816 | snd_pcm_hw_param_t var, |
| @@ -893,6 +893,7 @@ extern const struct snd_pcm_hw_constraint_list snd_pcm_known_rates; | |||
| 893 | 893 | ||
| 894 | int snd_pcm_limit_hw_rates(struct snd_pcm_runtime *runtime); | 894 | int snd_pcm_limit_hw_rates(struct snd_pcm_runtime *runtime); |
| 895 | unsigned int snd_pcm_rate_to_rate_bit(unsigned int rate); | 895 | unsigned int snd_pcm_rate_to_rate_bit(unsigned int rate); |
| 896 | unsigned int snd_pcm_rate_bit_to_rate(unsigned int rate_bit); | ||
| 896 | 897 | ||
| 897 | static inline void snd_pcm_set_runtime_buffer(struct snd_pcm_substream *substream, | 898 | static inline void snd_pcm_set_runtime_buffer(struct snd_pcm_substream *substream, |
| 898 | struct snd_dma_buffer *bufp) | 899 | struct snd_dma_buffer *bufp) |
diff --git a/include/sound/pcm_params.h b/include/sound/pcm_params.h index f494f1e3c900..37ae12e0ab06 100644 --- a/include/sound/pcm_params.h +++ b/include/sound/pcm_params.h | |||
| @@ -22,6 +22,8 @@ | |||
| 22 | * | 22 | * |
| 23 | */ | 23 | */ |
| 24 | 24 | ||
| 25 | #include <sound/pcm.h> | ||
| 26 | |||
| 25 | int snd_pcm_hw_param_first(struct snd_pcm_substream *pcm, | 27 | int snd_pcm_hw_param_first(struct snd_pcm_substream *pcm, |
| 26 | struct snd_pcm_hw_params *params, | 28 | struct snd_pcm_hw_params *params, |
| 27 | snd_pcm_hw_param_t var, int *dir); | 29 | snd_pcm_hw_param_t var, int *dir); |
diff --git a/include/sound/tlv.h b/include/sound/tlv.h index 7067e2dfb0b9..a64d8fe3f855 100644 --- a/include/sound/tlv.h +++ b/include/sound/tlv.h | |||
| @@ -38,21 +38,31 @@ | |||
| 38 | #define SNDRV_CTL_TLVT_DB_MINMAX 4 /* dB scale with min/max */ | 38 | #define SNDRV_CTL_TLVT_DB_MINMAX 4 /* dB scale with min/max */ |
| 39 | #define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5 /* dB scale with min/max with mute */ | 39 | #define SNDRV_CTL_TLVT_DB_MINMAX_MUTE 5 /* dB scale with min/max with mute */ |
| 40 | 40 | ||
| 41 | #define TLV_ITEM(type, ...) \ | ||
| 42 | (type), TLV_LENGTH(__VA_ARGS__), __VA_ARGS__ | ||
| 43 | #define TLV_LENGTH(...) \ | ||
| 44 | ((unsigned int)sizeof((const unsigned int[]) { __VA_ARGS__ })) | ||
| 45 | |||
| 46 | #define TLV_CONTAINER_ITEM(...) \ | ||
| 47 | TLV_ITEM(SNDRV_CTL_TLVT_CONTAINER, __VA_ARGS__) | ||
| 48 | #define DECLARE_TLV_CONTAINER(name, ...) \ | ||
| 49 | unsigned int name[] = { TLV_CONTAINER_ITEM(__VA_ARGS__) } | ||
| 50 | |||
| 41 | #define TLV_DB_SCALE_MASK 0xffff | 51 | #define TLV_DB_SCALE_MASK 0xffff |
| 42 | #define TLV_DB_SCALE_MUTE 0x10000 | 52 | #define TLV_DB_SCALE_MUTE 0x10000 |
| 43 | #define TLV_DB_SCALE_ITEM(min, step, mute) \ | 53 | #define TLV_DB_SCALE_ITEM(min, step, mute) \ |
| 44 | SNDRV_CTL_TLVT_DB_SCALE, 2 * sizeof(unsigned int), \ | 54 | TLV_ITEM(SNDRV_CTL_TLVT_DB_SCALE, \ |
| 45 | (min), ((step) & TLV_DB_SCALE_MASK) | ((mute) ? TLV_DB_SCALE_MUTE : 0) | 55 | (min), \ |
| 56 | ((step) & TLV_DB_SCALE_MASK) | \ | ||
| 57 | ((mute) ? TLV_DB_SCALE_MUTE : 0)) | ||
| 46 | #define DECLARE_TLV_DB_SCALE(name, min, step, mute) \ | 58 | #define DECLARE_TLV_DB_SCALE(name, min, step, mute) \ |
| 47 | unsigned int name[] = { TLV_DB_SCALE_ITEM(min, step, mute) } | 59 | unsigned int name[] = { TLV_DB_SCALE_ITEM(min, step, mute) } |
| 48 | 60 | ||
| 49 | /* dB scale specified with min/max values instead of step */ | 61 | /* dB scale specified with min/max values instead of step */ |
| 50 | #define TLV_DB_MINMAX_ITEM(min_dB, max_dB) \ | 62 | #define TLV_DB_MINMAX_ITEM(min_dB, max_dB) \ |
| 51 | SNDRV_CTL_TLVT_DB_MINMAX, 2 * sizeof(unsigned int), \ | 63 | TLV_ITEM(SNDRV_CTL_TLVT_DB_MINMAX, (min_dB), (max_dB)) |
| 52 | (min_dB), (max_dB) | ||
| 53 | #define TLV_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \ | 64 | #define TLV_DB_MINMAX_MUTE_ITEM(min_dB, max_dB) \ |
| 54 | SNDRV_CTL_TLVT_DB_MINMAX_MUTE, 2 * sizeof(unsigned int), \ | 65 | TLV_ITEM(SNDRV_CTL_TLVT_DB_MINMAX_MUTE, (min_dB), (max_dB)) |
| 55 | (min_dB), (max_dB) | ||
| 56 | #define DECLARE_TLV_DB_MINMAX(name, min_dB, max_dB) \ | 66 | #define DECLARE_TLV_DB_MINMAX(name, min_dB, max_dB) \ |
| 57 | unsigned int name[] = { TLV_DB_MINMAX_ITEM(min_dB, max_dB) } | 67 | unsigned int name[] = { TLV_DB_MINMAX_ITEM(min_dB, max_dB) } |
| 58 | #define DECLARE_TLV_DB_MINMAX_MUTE(name, min_dB, max_dB) \ | 68 | #define DECLARE_TLV_DB_MINMAX_MUTE(name, min_dB, max_dB) \ |
| @@ -60,13 +70,16 @@ | |||
| 60 | 70 | ||
| 61 | /* linear volume between min_dB and max_dB (.01dB unit) */ | 71 | /* linear volume between min_dB and max_dB (.01dB unit) */ |
| 62 | #define TLV_DB_LINEAR_ITEM(min_dB, max_dB) \ | 72 | #define TLV_DB_LINEAR_ITEM(min_dB, max_dB) \ |
| 63 | SNDRV_CTL_TLVT_DB_LINEAR, 2 * sizeof(unsigned int), \ | 73 | TLV_ITEM(SNDRV_CTL_TLVT_DB_LINEAR, (min_dB), (max_dB)) |
| 64 | (min_dB), (max_dB) | ||
| 65 | #define DECLARE_TLV_DB_LINEAR(name, min_dB, max_dB) \ | 74 | #define DECLARE_TLV_DB_LINEAR(name, min_dB, max_dB) \ |
| 66 | unsigned int name[] = { TLV_DB_LINEAR_ITEM(min_dB, max_dB) } | 75 | unsigned int name[] = { TLV_DB_LINEAR_ITEM(min_dB, max_dB) } |
| 67 | 76 | ||
| 68 | /* dB range container */ | 77 | /* dB range container */ |
| 69 | /* Each item is: <min> <max> <TLV> */ | 78 | /* Each item is: <min> <max> <TLV> */ |
| 79 | #define TLV_DB_RANGE_ITEM(...) \ | ||
| 80 | TLV_ITEM(SNDRV_CTL_TLVT_DB_RANGE, __VA_ARGS__) | ||
| 81 | #define DECLARE_TLV_DB_RANGE(name, ...) \ | ||
| 82 | unsigned int name[] = { TLV_DB_RANGE_ITEM(__VA_ARGS__) } | ||
| 70 | /* The below assumes that each item TLV is 4 words like DB_SCALE or LINEAR */ | 83 | /* The below assumes that each item TLV is 4 words like DB_SCALE or LINEAR */ |
| 71 | #define TLV_DB_RANGE_HEAD(num) \ | 84 | #define TLV_DB_RANGE_HEAD(num) \ |
| 72 | SNDRV_CTL_TLVT_DB_RANGE, 6 * (num) * sizeof(unsigned int) | 85 | SNDRV_CTL_TLVT_DB_RANGE, 6 * (num) * sizeof(unsigned int) |
