⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emu10k1.h

📁 linux 内核源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
						/* sophisticated master mute function has not	*/						/* been written.       				*/#define HCFG_AUDIOENABLE	0x00000001	/* 0 = CODECs transmit zero-valued samples	*/						/* Should be set to 1 when the EMU10K1 is	*/						/* completely initialized.			*///For Audigy, MPU port move to 0x70-0x74 ptr register#define MUDATA			0x18		/* MPU401 data register (8 bits)       		*/#define MUCMD			0x19		/* MPU401 command register (8 bits)    		*/#define MUCMD_RESET		0xff		/* RESET command				*/#define MUCMD_ENTERUARTMODE	0x3f		/* Enter_UART_mode command			*/						/* NOTE: All other commands are ignored		*/#define MUSTAT			MUCMD		/* MPU401 status register (8 bits)     		*/#define MUSTAT_IRDYN		0x80		/* 0 = MIDI data or command ACK			*/#define MUSTAT_ORDYN		0x40		/* 0 = MUDATA can accept a command or data	*/#define A_IOCFG			0x18		/* GPIO on Audigy card (16bits)			*/#define A_GPINPUT_MASK		0xff00#define A_GPOUTPUT_MASK		0x00ff// Audigy output/GPIO stuff taken from the kX drivers#define A_IOCFG_GPOUT0		0x0044		/* analog/digital				*/#define A_IOCFG_DISABLE_ANALOG	0x0040		/* = 'enable' for Audigy2 (chiprev=4)		*/#define A_IOCFG_ENABLE_DIGITAL	0x0004#define A_IOCFG_ENABLE_DIGITAL_AUDIGY4	0x0080#define A_IOCFG_UNKNOWN_20      0x0020#define A_IOCFG_DISABLE_AC97_FRONT      0x0080  /* turn off ac97 front -> front (10k2.1)	*/#define A_IOCFG_GPOUT1		0x0002		/* IR? drive's internal bypass (?)		*/#define A_IOCFG_GPOUT2		0x0001		/* IR */#define A_IOCFG_MULTIPURPOSE_JACK	0x2000  /* center+lfe+rear_center (a2/a2ex)		*/                                                /* + digital for generic 10k2			*/#define A_IOCFG_DIGITAL_JACK    0x1000          /* digital for a2 platinum			*/#define A_IOCFG_FRONT_JACK      0x4000#define A_IOCFG_REAR_JACK       0x8000#define A_IOCFG_PHONES_JACK     0x0100          /* LiveDrive					*//* outputs: *	for audigy2 platinum:	0xa00 *	for a2 platinum ex:	0x1c00 *	for a1 platinum:	0x0 */#define TIMER			0x1a		/* Timer terminal count register		*/						/* NOTE: After the rate is changed, a maximum	*/						/* of 1024 sample periods should be allowed	*/						/* before the new rate is guaranteed accurate.	*/#define TIMER_RATE_MASK		0x000003ff	/* Timer interrupt rate in sample periods	*/						/* 0 == 1024 periods, [1..4] are not useful	*/#define TIMER_RATE		0x0a00001a#define AC97DATA		0x1c		/* AC97 register set data register (16 bit)	*/#define AC97ADDRESS		0x1e		/* AC97 register set address register (8 bit)	*/#define AC97ADDRESS_READY	0x80		/* Read-only bit, reflects CODEC READY signal	*/#define AC97ADDRESS_ADDRESS	0x7f		/* Address of indexed AC97 register		*//* Available on the Audigy 2 and Audigy 4 only. This is the P16V chip. */#define PTR2			0x20		/* Indexed register set pointer register	*/#define DATA2			0x24		/* Indexed register set data register		*/#define IPR2			0x28		/* P16V interrupt pending register		*/#define IPR2_PLAYBACK_CH_0_LOOP      0x00001000 /* Playback Channel 0 loop                               */#define IPR2_PLAYBACK_CH_0_HALF_LOOP 0x00000100 /* Playback Channel 0 half loop                          */#define IPR2_CAPTURE_CH_0_LOOP       0x00100000 /* Capture Channel 0 loop                               */#define IPR2_CAPTURE_CH_0_HALF_LOOP  0x00010000 /* Capture Channel 0 half loop                          */						/* 0x00000100 Playback. Only in once per period.						 * 0x00110000 Capture. Int on half buffer.						 */#define INTE2			0x2c		/* P16V Interrupt enable register. 	*/#define INTE2_PLAYBACK_CH_0_LOOP      0x00001000 /* Playback Channel 0 loop                               */#define INTE2_PLAYBACK_CH_0_HALF_LOOP 0x00000100 /* Playback Channel 0 half loop                          */#define INTE2_PLAYBACK_CH_1_LOOP      0x00002000 /* Playback Channel 1 loop                               */#define INTE2_PLAYBACK_CH_1_HALF_LOOP 0x00000200 /* Playback Channel 1 half loop                          */#define INTE2_PLAYBACK_CH_2_LOOP      0x00004000 /* Playback Channel 2 loop                               */#define INTE2_PLAYBACK_CH_2_HALF_LOOP 0x00000400 /* Playback Channel 2 half loop                          */#define INTE2_PLAYBACK_CH_3_LOOP      0x00008000 /* Playback Channel 3 loop                               */#define INTE2_PLAYBACK_CH_3_HALF_LOOP 0x00000800 /* Playback Channel 3 half loop                          */#define INTE2_CAPTURE_CH_0_LOOP       0x00100000 /* Capture Channel 0 loop                               */#define INTE2_CAPTURE_CH_0_HALF_LOOP  0x00010000 /* Caputre Channel 0 half loop                          */#define HCFG2			0x34		/* Defaults: 0, win2000 sets it to 00004201 */						/* 0x00000000 2-channel output. */						/* 0x00000200 8-channel output. */						/* 0x00000004 pauses stream/irq fail. */						/* Rest of bits no nothing to sound output */						/* bit 0: Enable P16V audio.						 * bit 1: Lock P16V record memory cache.						 * bit 2: Lock P16V playback memory cache.						 * bit 3: Dummy record insert zero samples.						 * bit 8: Record 8-channel in phase.						 * bit 9: Playback 8-channel in phase.						 * bit 11-12: Playback mixer attenuation: 0=0dB, 1=-6dB, 2=-12dB, 3=Mute.						 * bit 13: Playback mixer enable.						 * bit 14: Route SRC48 mixer output to fx engine.						 * bit 15: Enable IEEE 1394 chip.						 */#define IPR3			0x38		/* Cdif interrupt pending register		*/#define INTE3			0x3c		/* Cdif interrupt enable register. 	*//************************************************************************************************//* PCI function 1 registers, address = <val> + PCIBASE1						*//************************************************************************************************/#define JOYSTICK1		0x00		/* Analog joystick port register		*/#define JOYSTICK2		0x01		/* Analog joystick port register		*/#define JOYSTICK3		0x02		/* Analog joystick port register		*/#define JOYSTICK4		0x03		/* Analog joystick port register		*/#define JOYSTICK5		0x04		/* Analog joystick port register		*/#define JOYSTICK6		0x05		/* Analog joystick port register		*/#define JOYSTICK7		0x06		/* Analog joystick port register		*/#define JOYSTICK8		0x07		/* Analog joystick port register		*//* When writing, any write causes JOYSTICK_COMPARATOR output enable to be pulsed on write.	*//* When reading, use these bitfields: */#define JOYSTICK_BUTTONS	0x0f		/* Joystick button data				*/#define JOYSTICK_COMPARATOR	0xf0		/* Joystick comparator data			*//********************************************************************************************************//* Emu10k1 pointer-offset register set, accessed through the PTR and DATA registers			*//********************************************************************************************************/#define CPF			0x00		/* Current pitch and fraction register			*/#define CPF_CURRENTPITCH_MASK	0xffff0000	/* Current pitch (linear, 0x4000 == unity pitch shift) 	*/#define CPF_CURRENTPITCH	0x10100000#define CPF_STEREO_MASK		0x00008000	/* 1 = Even channel interleave, odd channel locked	*/#define CPF_STOP_MASK		0x00004000	/* 1 = Current pitch forced to 0			*/#define CPF_FRACADDRESS_MASK	0x00003fff	/* Linear fractional address of the current channel	*/#define PTRX			0x01		/* Pitch target and send A/B amounts register		*/#define PTRX_PITCHTARGET_MASK	0xffff0000	/* Pitch target of specified channel			*/#define PTRX_PITCHTARGET	0x10100001#define PTRX_FXSENDAMOUNT_A_MASK 0x0000ff00	/* Linear level of channel output sent to FX send bus A	*/#define PTRX_FXSENDAMOUNT_A	0x08080001#define PTRX_FXSENDAMOUNT_B_MASK 0x000000ff	/* Linear level of channel output sent to FX send bus B	*/#define PTRX_FXSENDAMOUNT_B	0x08000001#define CVCF			0x02		/* Current volume and filter cutoff register		*/#define CVCF_CURRENTVOL_MASK	0xffff0000	/* Current linear volume of specified channel		*/#define CVCF_CURRENTVOL		0x10100002#define CVCF_CURRENTFILTER_MASK	0x0000ffff	/* Current filter cutoff frequency of specified channel	*/#define CVCF_CURRENTFILTER	0x10000002#define VTFT			0x03		/* Volume target and filter cutoff target register	*/#define VTFT_VOLUMETARGET_MASK	0xffff0000	/* Volume target of specified channel			*/#define VTFT_VOLUMETARGET	0x10100003#define VTFT_FILTERTARGET_MASK	0x0000ffff	/* Filter cutoff target of specified channel		*/#define VTFT_FILTERTARGET	0x10000003#define Z1			0x05		/* Filter delay memory 1 register			*/#define Z2			0x04		/* Filter delay memory 2 register			*/#define PSST			0x06		/* Send C amount and loop start address register	*/#define PSST_FXSENDAMOUNT_C_MASK 0xff000000	/* Linear level of channel output sent to FX send bus C	*/#define PSST_FXSENDAMOUNT_C	0x08180006#define PSST_LOOPSTARTADDR_MASK	0x00ffffff	/* Loop start address of the specified channel		*/#define PSST_LOOPSTARTADDR	0x18000006#define DSL			0x07		/* Send D amount and loop start address register	*/#define DSL_FXSENDAMOUNT_D_MASK	0xff000000	/* Linear level of channel output sent to FX send bus D	*/#define DSL_FXSENDAMOUNT_D	0x08180007#define DSL_LOOPENDADDR_MASK	0x00ffffff	/* Loop end address of the specified channel		*/#define DSL_LOOPENDADDR		0x18000007#define CCCA			0x08		/* Filter Q, interp. ROM, byte size, cur. addr register */#define CCCA_RESONANCE		0xf0000000	/* Lowpass filter resonance (Q) height			*/#define CCCA_INTERPROMMASK	0x0e000000	/* Selects passband of interpolation ROM		*/						/* 1 == full band, 7 == lowpass				*/						/* ROM 0 is used when pitch shifting downward or less	*/						/* then 3 semitones upward.  Increasingly higher ROM	*/						/* numbers are used, typically in steps of 3 semitones,	*/						/* as upward pitch shifting is performed.		*/#define CCCA_INTERPROM_0	0x00000000	/* Select interpolation ROM 0				*/#define CCCA_INTERPROM_1	0x02000000	/* Select interpolation ROM 1				*/#define CCCA_INTERPROM_2	0x04000000	/* Select interpolation ROM 2				*/#define CCCA_INTERPROM_3	0x06000000	/* Select interpolation ROM 3				*/#define CCCA_INTERPROM_4	0x08000000	/* Select interpolation ROM 4				*/#define CCCA_INTERPROM_5	0x0a000000	/* Select interpolation ROM 5				*/#define CCCA_INTERPROM_6	0x0c000000	/* Select interpolation ROM 6				*/#define CCCA_INTERPROM_7	0x0e000000	/* Select interpolation ROM 7				*/#define CCCA_8BITSELECT		0x01000000	/* 1 = Sound memory for this channel uses 8-bit samples	*/#define CCCA_CURRADDR_MASK	0x00ffffff	/* Current address of the selected channel		*/#define CCCA_CURRADDR		0x18000008#define CCR			0x09		/* Cache control register				*/#define CCR_CACHEINVALIDSIZE	0x07190009#define CCR_CACHEINVALIDSIZE_MASK	0xfe000000	/* Number of invalid samples cache for this channel    	*/#define CCR_CACHELOOPFLAG	0x01000000	/* 1 = Cache has a loop service pending			*/#define CCR_INTERLEAVEDSAMPLES	0x00800000	/* 1 = A cache service will fetch interleaved samples	*/#define CCR_WORDSIZEDSAMPLES	0x00400000	/* 1 = A cache service will fetch word sized samples	*/#define CCR_READADDRESS		0x06100009#define CCR_READADDRESS_MASK	0x003f0000	/* Location of cache just beyond current cache service	*/#define CCR_LOOPINVALSIZE	0x0000fe00	/* Number of invalid samples in cache prior to loop	*/						/* NOTE: This is valid only if CACHELOOPFLAG is set	*/#define CCR_LOOPFLAG		0x00000100	/* Set for a single sample period when a loop occurs	*/#define CCR_CACHELOOPADDRHI	0x000000ff	/* DSL_LOOPSTARTADDR's hi byte if CACHELOOPFLAG is set	*/#define CLP			0x0a		/* Cache loop register (valid if CCR_CACHELOOPFLAG = 1) */						/* NOTE: This register is normally not used		*/#define CLP_CACHELOOPADDR	0x0000ffff	/* Cache loop address (DSL_LOOPSTARTADDR [0..15])	*/#define FXRT			0x0b		/* Effects send routing register			*/						/* NOTE: It is illegal to assign the same routing to	*/						/* two effects sends.					*/#define FXRT_CHANNELA		0x000f0000	/* Effects send bus number for channel's effects send A	*/#define FXRT_CHANNELB		0x00f00000	/* Effects send bus number for channel's effects send B	*/#define FXRT_CHANNELC		0x0f000000	/* Effects send bus number for channel's effects send C	*/#define FXRT_CHANNELD		0xf0000000	/* Effects send bus number for channel's effects send D	*/#define A_HR			0x0b	/* High Resolution. 24bit playback from host to DSP. */#define MAPA			0x0c		/* Cache map A						*/#define MAPB			0x0d		/* Cache map B						*/#define MAP_PTE_MASK		0xffffe000	/* The 19 MSBs of the PTE indexed by the PTI		*/#define MAP_PTI_MASK		0x00001fff	/* The 13 bit index to one of the 8192 PTE dwords      	*//* 0x0e, 0x0f: Not used */#define ENVVOL			0x10		/* Volume envelope register				*/#define ENVVOL_MASK		0x0000ffff	/* Current value of volume envelope state variable	*/  						/* 0x8000-n == 666*n usec delay	       			*/#define ATKHLDV 		0x11		/* Volume envelope hold and attack register		*/#define ATKHLDV_PHASE0		0x00008000	/* 0 = Begin attack phase				*/#define ATKHLDV_HOLDTIME_MASK	0x00007f00	/* Envelope hold time (127-n == n*88.2msec)		*/#define ATKHLDV_ATTACKTIME_MASK	0x0000007f	/* Envelope attack time, log encoded			*/						/* 0 = infinite, 1 = 10.9msec, ... 0x7f = 5.5msec	*/#define DCYSUSV 		0x12		/* Volume envelope sustain and decay register		*/#define DCYSUSV_PHASE1_MASK	0x00008000	/* 0 = Begin attack phase, 1 = begin release phase	*/#define DCYSUSV_SUSTAINLEVEL_MASK 0x00007f00	/* 127 = full, 0 = off, 0.75dB increments		*/#define DCYSUSV_CHANNELENABLE_MASK 0x00000080	/* 1 = Inhibit envelope engine from writing values in	*/						/* this channel and from writing to pitch, filter and	*/						/* volume targets.					*/#define DCYSUSV_DECAYTIME_MASK	0x0000007f	/* Volume envelope decay time, log encoded     		*/						/* 0 = 43.7msec, 1 = 21.8msec, 0x7f = 22msec		*/#define LFOVAL1 		0x13		/* Modulation LFO value					*/#define LFOVAL_MASK		0x0000ffff	/* Current value of modulation LFO state variable	*/						/* 0x8000-n == 666*n usec delay				*/#define ENVVAL			0x14		/* Modulation envelope register				*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -