[ALSA] Add dB scale information to ad1848 driver
Added the dB scale information to ad1848 driver. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:

committed by
Jaroslav Kysela

parent
0e7febf158
commit
eac06a10d2
@@ -179,14 +179,13 @@ enum { AD1848_MIX_SINGLE, AD1848_MIX_DOUBLE, AD1848_MIX_CAPTURE };
|
||||
#define AD1848_MIXVAL_DOUBLE(left_reg, right_reg, shift_left, shift_right, mask, invert) \
|
||||
((left_reg) | ((right_reg) << 8) | ((shift_left) << 16) | ((shift_right) << 19) | ((mask) << 24) | ((invert) << 22))
|
||||
|
||||
int snd_ad1848_add_ctl(struct snd_ad1848 *chip, const char *name, int index, int type, unsigned long value);
|
||||
|
||||
/* for ease of use */
|
||||
struct ad1848_mix_elem {
|
||||
const char *name;
|
||||
int index;
|
||||
int type;
|
||||
unsigned long private_value;
|
||||
unsigned int *tlv;
|
||||
};
|
||||
|
||||
#define AD1848_SINGLE(xname, xindex, reg, shift, mask, invert) \
|
||||
@@ -195,15 +194,26 @@ struct ad1848_mix_elem {
|
||||
.type = AD1848_MIX_SINGLE, \
|
||||
.private_value = AD1848_MIXVAL_SINGLE(reg, shift, mask, invert) }
|
||||
|
||||
#define AD1848_SINGLE_TLV(xname, xindex, reg, shift, mask, invert, xtlv) \
|
||||
{ .name = xname, \
|
||||
.index = xindex, \
|
||||
.type = AD1848_MIX_SINGLE, \
|
||||
.private_value = AD1848_MIXVAL_SINGLE(reg, shift, mask, invert), \
|
||||
.tlv = xtlv }
|
||||
|
||||
#define AD1848_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
|
||||
{ .name = xname, \
|
||||
.index = xindex, \
|
||||
.type = AD1848_MIX_DOUBLE, \
|
||||
.private_value = AD1848_MIXVAL_DOUBLE(left_reg, right_reg, shift_left, shift_right, mask, invert) }
|
||||
|
||||
static inline int snd_ad1848_add_ctl_elem(struct snd_ad1848 *chip, const struct ad1848_mix_elem *c)
|
||||
{
|
||||
return snd_ad1848_add_ctl(chip, c->name, c->index, c->type, c->private_value);
|
||||
}
|
||||
#define AD1848_DOUBLE_TLV(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert, xtlv) \
|
||||
{ .name = xname, \
|
||||
.index = xindex, \
|
||||
.type = AD1848_MIX_DOUBLE, \
|
||||
.private_value = AD1848_MIXVAL_DOUBLE(left_reg, right_reg, shift_left, shift_right, mask, invert), \
|
||||
.tlv = xtlv }
|
||||
|
||||
int snd_ad1848_add_ctl_elem(struct snd_ad1848 *chip, const struct ad1848_mix_elem *c);
|
||||
|
||||
#endif /* __SOUND_AD1848_H */
|
||||
|
Reference in New Issue
Block a user