diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-22 19:59:20 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-22 19:59:20 +0100 |
commit | 1c2e02750b992703a8a18634e08b04353face243 (patch) | |
tree | 5dc2d10bad329eeb73b9e219e237662a8383f971 /include/sound/ac97_codec.h | |
parent | Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial (diff) | |
parent | [ALSA] version 1.0.11rc4 (diff) | |
download | linux-1c2e02750b992703a8a18634e08b04353face243.tar.xz linux-1c2e02750b992703a8a18634e08b04353face243.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/perex/alsa
* git://git.kernel.org/pub/scm/linux/kernel/git/perex/alsa: (124 commits)
[ALSA] version 1.0.11rc4
[PATCH] Intruduce DMA_28BIT_MASK
[ALSA] hda-codec - Add support for ASUS P4GPL-X
[ALSA] hda-codec - Add support for HP nx9420 laptop
[ALSA] Fix memory leaks in error path of control.c
[ALSA] AMD Au1x00: AC'97 controller is memory mapped
[ALSA] AMD Au1x00: fix DMA init/cleanup
[ALSA] hda-codec - Fix generic auto-configurator
[ALSA] hda-codec - Fix BIOS auto-configuration
[ALSA] Fixes typos in Audiophile-USB.txt
[ALSA] ice1712 - typo fixes for dxr_enable module option
[ALSA] AMD Au1x00: make driver build after cleanup
[ALSA] ice1712 - Fix wrong value types for enum items
[ALSA] fix resource leak in usbmixer
[ALSA] Fix gus_pcm dereference before NULL
[ALSA] Fix seq_clientmgr dereferences before NULL check
[ALSA] hda-codec - Fix for Samsung R65 and ASUS A6J
[ALSA] hda-codec - Add support for VAIO FE550G and SZ110
[ALSA] usb-audio: add Maya44 mixer control names
[ALSA] usb-audio: add Casio PL-40R support
...
Diffstat (limited to 'include/sound/ac97_codec.h')
-rw-r--r-- | include/sound/ac97_codec.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index b0b3ea7b365e..b45a73712748 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); @@ -440,8 +446,7 @@ 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 */ - unsigned int limited_regs; /* allow limited registers only */ - DECLARE_BITMAP(reg_accessed, 0x80); /* bit flags */ + const struct snd_ac97_res_table *res_table; /* static resolution */ }; struct snd_ac97 { @@ -456,20 +461,20 @@ struct snd_ac97 { struct snd_info_entry *proc_regs; unsigned short subsystem_vendor; unsigned short subsystem_device; - struct semaphore reg_mutex; - struct semaphore page_mutex; /* mutex for AD18xx multi-codecs and paging (2.3) */ + struct mutex reg_mutex; + struct mutex 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 { |