X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fsound%2Fac97_codec.h;h=b0b3ea7b365e81668594eae8db8831144072d405;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=b45a7371274806f2c058bc7a43cb7c59a3e82124;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index b45a73712..b0b3ea7b3 100644 --- a/include/sound/ac97_codec.h +++ b/include/sound/ac97_codec.h @@ -433,12 +433,6 @@ 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); @@ -446,7 +440,8 @@ struct snd_ac97_template { unsigned short num; /* number of codec: 0 = primary, 1 = secondary */ unsigned short addr; /* physical address of codec [0-3] */ unsigned int scaps; /* driver capabilities */ - const struct snd_ac97_res_table *res_table; /* static resolution */ + unsigned int limited_regs; /* allow limited registers only */ + DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */ }; struct snd_ac97 { @@ -461,20 +456,20 @@ struct snd_ac97 { struct snd_info_entry *proc_regs; unsigned short subsystem_vendor; unsigned short subsystem_device; - struct mutex reg_mutex; - struct mutex page_mutex; /* mutex for AD18xx multi-codecs and paging (2.3) */ + struct semaphore reg_mutex; + struct semaphore page_mutex; /* mutex for AD18xx multi-codecs and paging (2.3) */ unsigned short num; /* number of codec: 0 = primary, 1 = secondary */ unsigned short addr; /* physical address of codec [0-3] */ unsigned int id; /* identification of codec */ unsigned short caps; /* capabilities (register 0) */ unsigned short ext_id; /* extended feature identification (register 28) */ unsigned short ext_mid; /* extended modem ID (register 3C) */ - const struct snd_ac97_res_table *res_table; /* static resolution */ unsigned int scaps; /* driver capabilities */ unsigned int flags; /* specific code */ unsigned int rates[6]; /* see AC97_RATES_* defines */ unsigned int spdif_status; unsigned short regs[0x80]; /* register cache */ + unsigned int limited_regs; /* allow limited registers only */ DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */ union { /* vendor specific code */ struct {