aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sound/ac97_codec.h13
-rw-r--r--sound/pci/ac97/ac97_codec.c1
2 files changed, 8 insertions, 6 deletions
diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h
index 9036d25e1ba..dee766c17e9 100644
--- a/include/sound/ac97_codec.h
+++ b/include/sound/ac97_codec.h
@@ -433,6 +433,12 @@ struct snd_ac97_bus {
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 {
void *private_data;
void (*private_free) (struct snd_ac97 *ac97);
@@ -442,12 +448,7 @@ struct snd_ac97_template {
unsigned int scaps; /* driver capabilities */
unsigned int limited_regs; /* allow limited registers only */
DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */
-};
-
-/* static resolution table */
-struct snd_ac97_res_table {
- unsigned short reg; /* register */
- unsigned short bits; /* resolution bitmask */
+ const struct snd_ac97_res_table *res_table; /* static resolution */
};
struct snd_ac97 {
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index 38b6c65d40c..c5bbdcbf542 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -1868,6 +1868,7 @@ int snd_ac97_mixer(struct snd_ac97_bus *bus, struct snd_ac97_template *template,
ac97->scaps = template->scaps;
ac97->limited_regs = template->limited_regs;
memcpy(ac97->reg_accessed, template->reg_accessed, sizeof(ac97->reg_accessed));
+ ac97->res_table = template->res_table;
bus->codec[ac97->num] = ac97;
mutex_init(&ac97->reg_mutex);
mutex_init(&ac97->page_mutex);