debug cleanup and 64bit corrections.
[AROS.git] / workbench / devs / AHI / Drivers / ac97 / DriverData.h
blob1cf6e090fbfa3b1600f443f9941781989a9c9248
1 #ifndef AHI_Drivers_AC97_DriverData_h
2 #define AHI_Drivers_AC97_DriverData_h
4 #include <exec/libraries.h>
5 #include <dos/dos.h>
6 #include <oop/oop.h>
7 #include <proto/dos.h>
8 #include <proto/oop.h>
9 #include <proto/exec.h>
10 #include <hidd/pci.h>
12 #include "DriverBase.h"
14 #define ALIGN_AC97OUT 8
15 #define ALIGN_AC97(x) ((x + ALIGN_AC97OUT) & ~(ALIGN_AC97OUT-1))
17 struct ac97Base
19 struct DriverBase driverbase;
20 struct Library* dosbase;
21 struct OOPBase* oopbase;
22 struct ExecBase* sysbase;
23 BOOL cardfound;
24 APTR mixerbase;
25 APTR dmabase;
26 ULONG irq_num;
28 /* card specific data */
29 ULONG off_po_sr;
30 ULONG off_po_picb;
31 ULONG size_shift;
32 /* card specific data ends */
34 struct {
35 APTR sample_address;
36 ULONG sample_size;
37 } *PCM_out;
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)
48 struct AC97Data
50 struct DriverData driverdata;
51 UBYTE flags;
52 UBYTE pad1;
53 BYTE mastersignal;
54 BYTE slavesignal;
55 struct Process* mastertask;
56 struct Process* slavetask;
57 struct ac97Base* ahisubbase;
58 APTR mixbuffer;
59 UWORD old_SR;
61 struct Interrupt irq;
63 ULONG out_volume;
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
85 #define PO_BDBAR 0x10
86 #define PO_CIV 0x14
87 #define PO_LVI 0x15
88 #define DEFAULT_PO_SR 0x16
89 #define DEFAULT_PO_PICB 0x18
90 #define PO_PIV 0x1a
91 #define PO_CR 0x1b
93 #define GLOB_CNT 0x2c
94 #define GLOB_STA 0x30
95 #define ACC_SEMA 0x34
97 #endif /* AHI_Drivers_AC97_DriverData_h */