1 #ifndef AHI_Drivers_AC97_DriverData_h
2 #define AHI_Drivers_AC97_DriverData_h
4 #include <exec/libraries.h>
9 #include <proto/exec.h>
12 #include "DriverBase.h"
14 #define ALIGN_AC97OUT 8
15 #define ALIGN_AC97(x) ((x + ALIGN_AC97OUT) & ~(ALIGN_AC97OUT-1))
19 struct DriverBase driverbase
;
20 struct Library
* dosbase
;
21 struct OOPBase
* oopbase
;
22 struct ExecBase
* sysbase
;
28 /* card specific data */
32 /* card specific data ends */
39 void (*mixer_set_reg
)(struct ac97Base
*, ULONG reg
, UWORD value
);
40 UWORD (*mixer_get_reg
)(struct ac97Base
*, ULONG reg
);
43 #define DRIVERBASE_SIZEOF (sizeof (struct ac97Base))
45 #define DOSBase ((struct DosLibrary*)ac97Base->dosbase)
46 #define OOPBase ((struct OOPBase *)ac97Base->oopbase)
50 struct DriverData driverdata
;
55 struct Process
* mastertask
;
56 struct Process
* slavetask
;
57 struct ac97Base
* ahisubbase
;
66 /* AC97 mixer registers */
67 #define AC97_RESET 0x00
68 #define AC97_MASTER_VOL 0x02
69 #define AC97_HEADPHONE_VOL 0x04
70 #define AC97_MASTER_MONO_VOL 0x06
71 #define AC97_TONE 0x08
72 #define AC97_PCBEEP_VOL 0x0a
73 #define AC97_PHONE_VOL 0x0c
74 #define AC97_MIC_VOL 0x0e
75 #define AC97_LINEIN_VOL 0x10
76 #define AC97_CD_VOL 0x12
77 #define AC97_VIDEO_VOL 0x14
78 #define AC97_AUX_VOL 0x16
79 #define AC97_PCM_VOL 0x18
80 #define AC97_RECORD_SEL 0x1a
81 #define AC97_RECORD_GAIN 0x1c
82 #define AC97_RECORD_GAIN_MIX 0x1e
83 #define AC97_POWERDOWN 0x26
88 #define DEFAULT_PO_SR 0x16
89 #define DEFAULT_PO_PICB 0x18
97 #endif /* AHI_Drivers_AC97_DriverData_h */