cregit-Linux how code gets into the kernel

Release 4.7 sound/oss/sb.h

Directory: sound/oss

#define DSP_RESET	(devc->base + 0x6)

#define DSP_READ	(devc->base + 0xA)

#define DSP_WRITE	(devc->base + 0xC)

#define DSP_COMMAND	(devc->base + 0xC)

#define DSP_STATUS	(devc->base + 0xC)

#define DSP_DATA_AVAIL	(devc->base + 0xE)

#define DSP_DATA_AVL16	(devc->base + 0xF)

#define MIXER_ADDR	(devc->base + 0x4)

#define MIXER_DATA	(devc->base + 0x5)

#define OPL3_LEFT	(devc->base + 0x0)

#define OPL3_RIGHT	(devc->base + 0x2)

#define OPL3_BOTH	(devc->base + 0x8)
/* DSP Commands */


#define DSP_CMD_SPKON		0xD1

#define DSP_CMD_SPKOFF		0xD3

#define DSP_CMD_DMAON		0xD0

#define DSP_CMD_DMAOFF		0xD4


#define IMODE_NONE		0

#define IMODE_OUTPUT		PCM_ENABLE_OUTPUT

#define IMODE_INPUT		PCM_ENABLE_INPUT

#define IMODE_INIT		3

#define IMODE_MIDI		4


#define NORMAL_MIDI	0

#define UART_MIDI	1


/*
 * Device models
 */

#define MDL_NONE	0

#define MDL_SB1		1	
/* SB1.0 or 1.5 */

#define MDL_SB2		2	
/* SB2.0 */

#define MDL_SB201	3	
/* SB2.01 */

#define MDL_SBPRO	4	
/* SB Pro */

#define MDL_SB16	5	
/* SB16/32/AWE */

#define MDL_SBPNP 	6	
/* SB16/32/AWE PnP */

#define MDL_JAZZ	10	
/* Media Vision Jazz16 */

#define MDL_SMW		11	
/* Logitech SoundMan Wave (Jazz16) */

#define MDL_ESS		12	
/* ESS ES688 and ES1688 */

#define MDL_AZTECH	13	
/* Aztech Sound Galaxy family */

#define MDL_ES1868MIDI	14	
/* MIDI port of ESS1868 */

#define MDL_AEDSP	15	
/* Audio Excel DSP 16 */

#define MDL_ESSPCI	16	
/* ESS PCI card */

#define MDL_YMPCI	17	
/* Yamaha PCI sb in emulation */


#define SUBMDL_ALS007	42	
/* ALS-007 differs from SB16 only in mixer */
				/* register assignment */

#define SUBMDL_ALS100	43	
/* ALS-100 allows sampling rates of up */
				/* to 48kHz */
				
/*
 * Config flags
 */

#define SB_NO_MIDI	0x00000001

#define SB_NO_MIXER	0x00000002

#define SB_NO_AUDIO	0x00000004

#define SB_NO_RECORDING	0x00000008 
/* No audio recording */

#define SB_MIDI_ONLY	(SB_NO_AUDIO|SB_NO_MIXER)

#define SB_PCI_IRQ	0x00000010 
/* PCI shared IRQ */


struct mixer_def {
	
unsigned int regno: 8;
	
unsigned int bitoffs:4;
	
unsigned int nbits:4;
};


typedef struct mixer_def mixer_tab[32][2];

typedef struct mixer_def mixer_ent;


struct sb_module_options
{
	
int  esstype;	/* ESS chip type */
	
int  acer;	/* Do acer notebook init? */
	
int  sm_games;	/* Logitech soundman games? */
};


typedef struct sb_devc {
	   
int dev;

	/* Hardware parameters */
	   
int *osp;
	   

int minor, major;
	   
int type;
	   

int model, submodel;
	   
int caps;

#	define SBCAP_STEREO	0x00000001

#	define SBCAP_16BITS	0x00000002

	/* Hardware resources */
	   
int base;
	   
int irq;
	   

int dma8, dma16;
	   
	   
int pcibase;		/* For ESS Maestro etc */

	/* State variables */
 	   
int opened;
	/* new audio fields for full duplex support */
	   
int fullduplex;
	   
int duplex;
	   


int speed, bits, channels;
	   
volatile int irq_ok;
	   

volatile int intr_active, irq_mode;
	/* duplicate audio fields for full duplex support */
	   

volatile int intr_active_16, irq_mode_16;

	/* Mixer fields */
	   
int *levels;
	   
mixer_tab *iomap;
	   
size_t iomap_sz; /* number or records in the iomap table */
	   



int mixer_caps, recmask, outmask, supported_devices;
	   

int supported_rec_devices, supported_out_devices;
	   
int my_mixerdev;
	   
int sbmixnum;

	/* Audio fields */
	   
unsigned long trg_buf;
	   
int      trigger_bits;
	   
int      trg_bytes;
	   
int      trg_intrflag;
	   
int      trg_restart;
	/* duplicate audio fields for full duplex support */
	   
unsigned long trg_buf_16;
	   
int      trigger_bits_16;
	   
int      trg_bytes_16;
	   
int      trg_intrflag_16;
	   
int      trg_restart_16;

	   
unsigned char tconst;
	
	/* MIDI fields */
	   
int my_mididev;
	   
int input_opened;
	   
int midi_broken;
	   
void (*midi_input_intr) (int dev, unsigned char data);
	   
void *midi_irq_cookie;		/* IRQ cookie for the midi */

	   
spinlock_t lock;

	   
struct sb_module_options sbmo;	/* Module options */

	} 
sb_devc;
	
/*
 *      PCI card types
 */


#define	SB_PCI_ESSMAESTRO	1	
/* ESS Maestro Legacy */

#define	SB_PCI_YAMAHA		2	
/* Yamaha Legacy */

/* 
 *      Functions
 */
 
int sb_dsp_command (sb_devc *devc, unsigned char val);
int sb_dsp_get_byte(sb_devc * devc);
int sb_dsp_reset (sb_devc *devc);
void sb_setmixer (sb_devc *devc, unsigned int port, unsigned int value);
unsigned int sb_getmixer (sb_devc *devc, unsigned int port);
int sb_dsp_detect (struct address_info *hw_config, int pci, int pciio, struct sb_module_options *sbmo);
int sb_dsp_init (struct address_info *hw_config, struct module *owner);
void sb_dsp_unload(struct address_info *hw_config, int sbmpu);
int sb_mixer_init(sb_devc *devc, struct module *owner);
void sb_mixer_unload(sb_devc *devc);
void sb_mixer_set_stereo (sb_devc *devc, int mode);
void smw_mixer_init(sb_devc *devc);
void sb_dsp_midi_init (sb_devc *devc, struct module *owner);
void sb_audio_init (sb_devc *devc, char *name, struct module *owner);
void sb_midi_interrupt (sb_devc *devc);
void sb_chgmixer (sb_devc * devc, unsigned int reg, unsigned int mask, unsigned int val);
int sb_common_mixer_set(sb_devc * devc, int dev, int left, int right);

int sb_audio_open(int dev, int mode);
void sb_audio_close(int dev);

/*      From sb_common.c */
void sb_dsp_disable_midi(int port);
int probe_sbmpu (struct address_info *hw_config, struct module *owner);
void unload_sbmpu (struct address_info *hw_config);

void unload_sb16(struct address_info *hw_info);
void unload_sb16midi(struct address_info *hw_info);

Overall Contributors

PersonTokensPropCommitsCommitProp
pre-gitpre-git75099.08%2291.67%
andrew mortonandrew morton40.53%14.17%
linus torvaldslinus torvalds30.40%14.17%
Total757100.00%24100.00%
Directory: sound/oss
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}