~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/drivers/sound/sb.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #define DSP_RESET       (devc->base + 0x6)
  2 #define DSP_READ        (devc->base + 0xA)
  3 #define DSP_WRITE       (devc->base + 0xC)
  4 #define DSP_COMMAND     (devc->base + 0xC)
  5 #define DSP_STATUS      (devc->base + 0xC)
  6 #define DSP_DATA_AVAIL  (devc->base + 0xE)
  7 #define DSP_DATA_AVL16  (devc->base + 0xF)
  8 #define MIXER_ADDR      (devc->base + 0x4)
  9 #define MIXER_DATA      (devc->base + 0x5)
 10 #define OPL3_LEFT       (devc->base + 0x0)
 11 #define OPL3_RIGHT      (devc->base + 0x2)
 12 #define OPL3_BOTH       (devc->base + 0x8)
 13 /* DSP Commands */
 14 
 15 #define DSP_CMD_SPKON           0xD1
 16 #define DSP_CMD_SPKOFF          0xD3
 17 #define DSP_CMD_DMAON           0xD0
 18 #define DSP_CMD_DMAOFF          0xD4
 19 
 20 #define IMODE_NONE              0
 21 #define IMODE_OUTPUT            PCM_ENABLE_OUTPUT
 22 #define IMODE_INPUT             PCM_ENABLE_INPUT
 23 #define IMODE_INIT              3
 24 #define IMODE_MIDI              4
 25 
 26 #define NORMAL_MIDI     0
 27 #define UART_MIDI       1
 28 
 29 
 30 /*
 31  * Device models
 32  */
 33 #define MDL_NONE        0
 34 #define MDL_SB1         1       /* SB1.0 or 1.5 */
 35 #define MDL_SB2         2       /* SB2.0 */
 36 #define MDL_SB201       3       /* SB2.01 */
 37 #define MDL_SBPRO       4       /* SB Pro */
 38 #define MDL_SB16        5       /* SB16/32/AWE */
 39 #define MDL_SBPNP       6       /* SB16/32/AWE PnP */
 40 #define MDL_JAZZ        10      /* Media Vision Jazz16 */
 41 #define MDL_SMW         11      /* Logitech SoundMan Wave (Jazz16) */
 42 #define MDL_ESS         12      /* ESS ES688 and ES1688 */
 43 #define MDL_AZTECH      13      /* Aztech Sound Galaxy family */
 44 #define MDL_ES1868MIDI  14      /* MIDI port of ESS1868 */
 45 #define MDL_AEDSP       15      /* Audio Excel DSP 16 */
 46 #define MDL_ESSPCI      16      /* ESS PCI card */
 47 #define MDL_YMPCI       17      /* Yamaha PCI sb in emulation */
 48 
 49 #define SUBMDL_ALS007   42      /* ALS-007 differs from SB16 only in mixer */
 50                                 /* register assignment */
 51 #define SUBMDL_ALS100   43      /* ALS-100 allows sampling rates of up */
 52                                 /* to 48kHz */
 53                                 
 54 /*
 55  * Config flags
 56  */
 57 #define SB_NO_MIDI      0x00000001
 58 #define SB_NO_MIXER     0x00000002
 59 #define SB_NO_AUDIO     0x00000004
 60 #define SB_NO_RECORDING 0x00000008 /* No audio recording */
 61 #define SB_MIDI_ONLY    (SB_NO_AUDIO|SB_NO_MIXER)
 62 #define SB_PCI_IRQ      0x00000010 /* PCI shared IRQ */
 63 
 64 struct mixer_def {
 65         unsigned int regno: 8;
 66         unsigned int bitoffs:4;
 67         unsigned int nbits:4;
 68 };
 69 
 70 typedef struct mixer_def mixer_tab[32][2];
 71 typedef struct mixer_def mixer_ent;
 72 
 73 struct sb_module_options
 74 {
 75         int  esstype;   /* ESS chip type */
 76         int  acer;      /* Do acer notebook init? */
 77         int  sm_games;  /* Logitech soundman games? */
 78 };
 79 
 80 typedef struct sb_devc {
 81            int dev;
 82 
 83         /* Hardware parameters */
 84            int *osp;
 85            int minor, major;
 86            int type;
 87            int model, submodel;
 88            int caps;
 89 #       define SBCAP_STEREO     0x00000001
 90 #       define SBCAP_16BITS     0x00000002
 91 
 92         /* Hardware resources */
 93            int base;
 94            int irq;
 95            int dma8, dma16;
 96            
 97            int pcibase;         /* For ESS Maestro etc */
 98 
 99         /* State variables */
100            int opened;
101         /* new audio fields for full duplex support */
102            int fullduplex;
103            int duplex;
104            int speed, bits, channels;
105            volatile int irq_ok;
106            volatile int intr_active, irq_mode;
107         /* duplicate audio fields for full duplex support */
108            volatile int intr_active_16, irq_mode_16;
109 
110         /* Mixer fields */
111            int *levels;
112            mixer_tab *iomap;
113            int mixer_caps, recmask, outmask, supported_devices;
114            int supported_rec_devices, supported_out_devices;
115            int my_mixerdev;
116            int sbmixnum;
117 
118         /* Audio fields */
119            unsigned long trg_buf;
120            int      trigger_bits;
121            int      trg_bytes;
122            int      trg_intrflag;
123            int      trg_restart;
124         /* duplicate audio fields for full duplex support */
125            unsigned long trg_buf_16;
126            int      trigger_bits_16;
127            int      trg_bytes_16;
128            int      trg_intrflag_16;
129            int      trg_restart_16;
130 
131            unsigned char tconst;
132         
133         /* MIDI fields */
134            int my_mididev;
135            int input_opened;
136            int midi_broken;
137            void (*midi_input_intr) (int dev, unsigned char data);
138            void *midi_irq_cookie;               /* IRQ cookie for the midi */
139 
140            struct sb_module_options sbmo;       /* Module options */
141 
142         } sb_devc;
143         
144 /*
145  *      PCI card types
146  */
147 
148 #define SB_PCI_ESSMAESTRO       1       /* ESS Maestro Legacy */
149 #define SB_PCI_YAMAHA           2       /* Yamaha Legacy */
150 
151 /* 
152  *      Functions
153  */
154  
155 int sb_dsp_command (sb_devc *devc, unsigned char val);
156 int sb_dsp_get_byte(sb_devc * devc);
157 int sb_dsp_reset (sb_devc *devc);
158 void sb_setmixer (sb_devc *devc, unsigned int port, unsigned int value);
159 unsigned int sb_getmixer (sb_devc *devc, unsigned int port);
160 int sb_dsp_detect (struct address_info *hw_config, int pci, int pciio, struct sb_module_options *sbmo);
161 int sb_dsp_init (struct address_info *hw_config, struct module *owner);
162 void sb_dsp_unload(struct address_info *hw_config, int sbmpu);
163 int sb_mixer_init(sb_devc *devc, struct module *owner);
164 void sb_mixer_unload(sb_devc *devc);
165 void sb_mixer_set_stereo (sb_devc *devc, int mode);
166 void smw_mixer_init(sb_devc *devc);
167 void sb_dsp_midi_init (sb_devc *devc, struct module *owner);
168 void sb_audio_init (sb_devc *devc, char *name, struct module *owner);
169 void sb_midi_interrupt (sb_devc *devc);
170 void sb_chgmixer (sb_devc * devc, unsigned int reg, unsigned int mask, unsigned int val);
171 int sb_common_mixer_set(sb_devc * devc, int dev, int left, int right);
172 
173 int sb_audio_open(int dev, int mode);
174 void sb_audio_close(int dev);
175 
176 extern sb_devc *last_sb;
177 
178 /*      From sb_common.c */
179 void sb_dsp_disable_midi(int port);
180 void sb_dsp_disable_recording(int port);
181 int probe_sbmpu (struct address_info *hw_config, struct module *owner);
182 void unload_sbmpu (struct address_info *hw_config);
183 
184 void unload_sb16(struct address_info *hw_info);
185 void unload_sb16midi(struct address_info *hw_info);
186 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.