13 #define MASTER_VOL 0x02
15 #define EXT_AUDIO 0x28
18 #define CONNECTOR 0x6a
19 #define VENDOR_ID1 0x7c
20 #define VENDOR_ID2 0x7e
21 #define SEC_VENDOR_ID1 0xfc
22 #define SEC_VENDOR_ID2 0xfe
30 #define EXT_MODEM_ID1 0x3c
31 #define EXT_MODEM_ID2 0xbc
34 #define SEC_CODEC 0x40
38 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
39 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
40 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
41 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
42 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
43 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
44 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
45 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
46 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
47 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
48 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
49 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
50 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
51 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
52 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
53 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
54 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
55 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
56 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
57 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
58 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
59 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
60 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
61 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
62 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
63 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
64 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
65 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
66 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
67 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
68 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) },
69 { (1 << 5), (2 << 11), (1 << 10), (3 << 13) }
84 }
while ((reg8 & 1) && timeout);
125 if ((reg32 & ((1 << 28) | (1 << 9) | (1 << 8))) == 0) {
151 if ((reg16 & 0x0c00) != 0x0800) {
162 for (i = 0x0a * 2; i > 0; i--) {
172 if (!(reg16 & (1 << 0)))
176 if (!(reg16 & (1 << 4)))
209 if ((reg16 & 0xc000) != 0xc000) {
210 if (reg16 & (1 << 0)) {
221 if ((reg16 & (1 << 9)) == 0)
225 if ((reg16 & 0xc000) == 0x4000) {
226 if (reg16 & (1 << 0)) {
253 static const struct pci_driver i82801db_ac97_audio
__pci_driver = {
259 static const struct pci_driver i82801db_ac97_modem
__pci_driver = {
#define printk(level,...)
void outw(u16 val, u16 port)
static void program_sigid(struct device *dev, u32 id)
static void ac97_audio_init(struct device *dev)
static const struct pci_driver i82801db_ac97_audio __pci_driver
static u16 ac97_function[16 *2][4]
static struct device_operations ac97_modem_ops
static int ac97_semaphore(void)
static void ac97_modem_init(struct device *dev)
static void init_cnr(void)
static struct device_operations ac97_audio_ops
void i82801dx_enable(struct device *dev)
static __always_inline void pci_write_config32(const struct device *dev, u16 reg, u32 val)
static __always_inline u16 pci_read_config16(const struct device *dev, u16 reg)
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
void pci_dev_enable_resources(struct device *dev)
void pci_dev_read_resources(struct device *dev)
void pci_dev_set_resources(struct device *dev)
#define PCI_DID_INTEL_82801DB_AC97_MODEM
#define PCI_DID_INTEL_82801DB_AC97_AUDIO
void(* read_resources)(struct device *dev)