forked from luck/tmp_suning_uos_patched
[ALSA] ac97 - Allow drivers to set static volume resolution table
Modules: AC97 Codec Add the pointer to a static volume resolution table to ac97 template, so that the drivers can define the volume resolution, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
4ccb4a4387
commit
7c5706bb33
@ -433,6 +433,12 @@ struct snd_ac97_bus {
|
|||||||
struct snd_info_entry *proc;
|
struct snd_info_entry *proc;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* static resolution table */
|
||||||
|
struct snd_ac97_res_table {
|
||||||
|
unsigned short reg; /* register */
|
||||||
|
unsigned short bits; /* resolution bitmask */
|
||||||
|
};
|
||||||
|
|
||||||
struct snd_ac97_template {
|
struct snd_ac97_template {
|
||||||
void *private_data;
|
void *private_data;
|
||||||
void (*private_free) (struct snd_ac97 *ac97);
|
void (*private_free) (struct snd_ac97 *ac97);
|
||||||
@ -442,12 +448,7 @@ struct snd_ac97_template {
|
|||||||
unsigned int scaps; /* driver capabilities */
|
unsigned int scaps; /* driver capabilities */
|
||||||
unsigned int limited_regs; /* allow limited registers only */
|
unsigned int limited_regs; /* allow limited registers only */
|
||||||
DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */
|
DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */
|
||||||
};
|
const struct snd_ac97_res_table *res_table; /* static resolution */
|
||||||
|
|
||||||
/* static resolution table */
|
|
||||||
struct snd_ac97_res_table {
|
|
||||||
unsigned short reg; /* register */
|
|
||||||
unsigned short bits; /* resolution bitmask */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct snd_ac97 {
|
struct snd_ac97 {
|
||||||
|
@ -1868,6 +1868,7 @@ int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template,
|
|||||||
ac97->scaps = template->scaps;
|
ac97->scaps = template->scaps;
|
||||||
ac97->limited_regs = template->limited_regs;
|
ac97->limited_regs = template->limited_regs;
|
||||||
memcpy(ac97->reg_accessed, template->reg_accessed, sizeof(ac97->reg_accessed));
|
memcpy(ac97->reg_accessed, template->reg_accessed, sizeof(ac97->reg_accessed));
|
||||||
|
ac97->res_table = template->res_table;
|
||||||
bus->codec[ac97->num] = ac97;
|
bus->codec[ac97->num] = ac97;
|
||||||
mutex_init(&ac97->reg_mutex);
|
mutex_init(&ac97->reg_mutex);
|
||||||
mutex_init(&ac97->page_mutex);
|
mutex_init(&ac97->page_mutex);
|
||||||
|
Loading…
Reference in New Issue
Block a user