#ifndef __SOUND_EMU10K1_H
#define __SOUND_EMU10K1_H
#include <sound/pcm.h>
#include <sound/rawmidi.h>
#include <sound/hwdep.h>
#include <sound/ac97_codec.h>
#include <sound/util_mem.h>
#include <sound/pcm-indirect.h>
#include <sound/timer.h>
#include <linux/interrupt.h>
#include <linux/mutex.h>
#include <linux/firmware.h>
#include <linux/io.h>
#include <uapi/sound/emu10k1.h>
#define EMUPAGESIZE …
#define MAXPAGES0 …
#define MAXPAGES1 …
#define NUM_G …
#define NUM_EFX_PLAYBACK …
#define EMU10K1_DMA_MASK …
#define AUDIGY_DMA_MASK …
#define TMEMSIZE …
#define IP_TO_CP(ip) …
#define SUB_REG_NC(reg, field, mask) …
#define SUB_REG(reg, field, mask) …
#define REG_SHIFT(r) …
#define REG_SIZE(r) …
#define REG_MASK0(r) …
#define REG_MASK(r) …
#define REG_VAL_GET(r, v) …
#define REG_VAL_PUT(r, v) …
#define REGLIST_END …
#define PTR …
#define PTR_CHANNELNUM_MASK …
#define PTR_ADDRESS_MASK …
#define A_PTR_ADDRESS_MASK …
#define DATA …
#define IPR …
#define IPR_P16V …
#define IPR_WATERMARK_REACHED …
#define IPR_A_GPIO …
#define IPR_A_MIDITRANSBUFEMPTY2 …
#define IPR_A_MIDIRECVBUFEMPTY2 …
#define IPR_SPDIFBUFFULL …
#define IPR_SPDIFBUFHALFFULL …
#define IPR_SAMPLERATETRACKER …
#define IPR_FXDSP …
#define IPR_FORCEINT …
#define IPR_PCIERROR …
#define IPR_VOLINCR …
#define IPR_VOLDECR …
#define IPR_MUTE …
#define IPR_MICBUFFULL …
#define IPR_MICBUFHALFFULL …
#define IPR_ADCBUFFULL …
#define IPR_ADCBUFHALFFULL …
#define IPR_EFXBUFFULL …
#define IPR_EFXBUFHALFFULL …
#define IPR_GPSPDIFSTATUSCHANGE …
#define IPR_CDROMSTATUSCHANGE …
#define IPR_INTERVALTIMER …
#define IPR_MIDITRANSBUFEMPTY …
#define IPR_MIDIRECVBUFEMPTY …
#define IPR_CHANNELLOOP …
#define IPR_CHANNELNUMBERMASK …
#define INTE …
#define INTE_VIRTUALSB_MASK …
#define INTE_VIRTUALSB_220 …
#define INTE_VIRTUALSB_240 …
#define INTE_VIRTUALSB_260 …
#define INTE_VIRTUALSB_280 …
#define INTE_VIRTUALMPU_MASK …
#define INTE_VIRTUALMPU_300 …
#define INTE_VIRTUALMPU_310 …
#define INTE_VIRTUALMPU_320 …
#define INTE_VIRTUALMPU_330 …
#define INTE_MASTERDMAENABLE …
#define INTE_SLAVEDMAENABLE …
#define INTE_MASTERPICENABLE …
#define INTE_SLAVEPICENABLE …
#define INTE_VSBENABLE …
#define INTE_ADLIBENABLE …
#define INTE_MPUENABLE …
#define INTE_FORCEINT …
#define INTE_MRHANDENABLE …
#define INTE_A_GPIOENABLE …
#define INTE_A_MIDITXENABLE2 …
#define INTE_A_MIDIRXENABLE2 …
#define INTE_A_SPDIF_BUFFULL_ENABLE …
#define INTE_A_SPDIF_HALFBUFFULL_ENABLE …
#define INTE_SAMPLERATETRACKER …
#define INTE_FXDSPENABLE …
#define INTE_PCIERRORENABLE …
#define INTE_VOLINCRENABLE …
#define INTE_VOLDECRENABLE …
#define INTE_MUTEENABLE …
#define INTE_MICBUFENABLE …
#define INTE_ADCBUFENABLE …
#define INTE_EFXBUFENABLE …
#define INTE_GPSPDIFENABLE …
#define INTE_CDSPDIFENABLE …
#define INTE_INTERVALTIMERENB …
#define INTE_MIDITXENABLE …
#define INTE_MIDIRXENABLE …
#define WC …
SUB_REG(…)
SUB_REG(…)
#define HCFG …
#define HCFG_LEGACYFUNC_MASK …
#define HCFG_LEGACYFUNC_MPU …
#define HCFG_LEGACYFUNC_SB …
#define HCFG_LEGACYFUNC_AD …
#define HCFG_LEGACYFUNC_MPIC …
#define HCFG_LEGACYFUNC_MDMA …
#define HCFG_LEGACYFUNC_SPCI …
#define HCFG_LEGACYFUNC_SDMA …
#define HCFG_IOCAPTUREADDR …
#define HCFG_LEGACYWRITE …
#define HCFG_LEGACYWORD …
#define HCFG_LEGACYINT …
#define HCFG_PUSH_BUTTON_ENABLE …
#define HCFG_BAUD_RATE …
#define HCFG_EXPANDED_MEM …
#define HCFG_CODECFORMAT_MASK …
#define HCFG_CODECFORMAT_AC97_1 …
#define HCFG_CODECFORMAT_AC97_2 …
#define HCFG_AUTOMUTE_ASYNC …
#define HCFG_AUTOMUTE_SPDIF …
#define HCFG_EMU32_SLAVE …
#define HCFG_SLOW_RAMP …
#define HCFG_PHASE_TRACK_MASK …
#define HCFG_I2S_ASRC_ENABLE …
#define HCFG_CODECFORMAT_AC97 …
#define HCFG_CODECFORMAT_I2S …
#define HCFG_GPINPUT0 …
#define HCFG_GPINPUT1 …
#define HCFG_GPOUTPUT_MASK …
#define HCFG_GPOUT0 …
#define HCFG_GPOUT1 …
#define HCFG_GPOUT2 …
#define HCFG_JOYENABLE …
#define HCFG_PHASETRACKENABLE …
#define HCFG_AC3ENABLE_MASK …
#define HCFG_AC3ENABLE_ZVIDEO …
#define HCFG_AC3ENABLE_CDSPDIF …
#define HCFG_AC3ENABLE_GPSPDIF …
#define HCFG_AUTOMUTE …
#define HCFG_LOCKSOUNDCACHE …
SUB_REG(…)
#define HCFG_MUTEBUTTONENABLE …
#define HCFG_AUDIOENABLE …
#define MUDATA …
#define MUCMD …
#define MUCMD_RESET …
#define MUCMD_ENTERUARTMODE …
#define MUSTAT …
#define MUSTAT_IRDYN …
#define MUSTAT_ORDYN …
#define A_GPIO …
#define A_GPINPUT_MASK …
#define A3_GPINPUT_MASK …
#define A_GPOUTPUT_MASK …
#define A_IOCFG …
#define A_IOCFG_GPOUT0 …
#define A_IOCFG_DISABLE_ANALOG …
#define A_IOCFG_ENABLE_DIGITAL …
#define A_IOCFG_ENABLE_DIGITAL_AUDIGY4 …
#define A_IOCFG_UNKNOWN_20 …
#define A_IOCFG_DISABLE_AC97_FRONT …
#define A_IOCFG_GPOUT1 …
#define A_IOCFG_GPOUT2 …
#define A_IOCFG_MULTIPURPOSE_JACK …
#define A_IOCFG_DIGITAL_JACK …
#define A_IOCFG_FRONT_JACK …
#define A_IOCFG_REAR_JACK …
#define A_IOCFG_PHONES_JACK …
#define TIMER …
#define TIMER_RATE_MASK …
#define AC97DATA …
#define AC97ADDRESS …
#define AC97ADDRESS_READY …
#define AC97ADDRESS_ADDRESS …
#define PTR2 …
#define DATA2 …
#define IPR2 …
#define IPR2_PLAYBACK_CH_0_LOOP …
#define IPR2_PLAYBACK_CH_0_HALF_LOOP …
#define IPR2_CAPTURE_CH_0_LOOP …
#define IPR2_CAPTURE_CH_0_HALF_LOOP …
#define INTE2 …
#define INTE2_PLAYBACK_CH_0_LOOP …
#define INTE2_PLAYBACK_CH_0_HALF_LOOP …
#define INTE2_PLAYBACK_CH_1_LOOP …
#define INTE2_PLAYBACK_CH_1_HALF_LOOP …
#define INTE2_PLAYBACK_CH_2_LOOP …
#define INTE2_PLAYBACK_CH_2_HALF_LOOP …
#define INTE2_PLAYBACK_CH_3_LOOP …
#define INTE2_PLAYBACK_CH_3_HALF_LOOP …
#define INTE2_CAPTURE_CH_0_LOOP …
#define INTE2_CAPTURE_CH_0_HALF_LOOP …
#define HCFG2 …
#define IPR3 …
#define INTE3 …
#define JOYSTICK1 …
#define JOYSTICK2 …
#define JOYSTICK3 …
#define JOYSTICK4 …
#define JOYSTICK5 …
#define JOYSTICK6 …
#define JOYSTICK7 …
#define JOYSTICK8 …
#define JOYSTICK_BUTTONS …
#define JOYSTICK_COMPARATOR …
#define CPF …
SUB_REG(…)
#define CPF_STEREO_MASK …
SUB_REG(…)
#define CPF_FRACADDRESS_MASK …
#define PTRX …
SUB_REG(…)
SUB_REG(…)
SUB_REG(…)
#define CVCF …
SUB_REG(…)
SUB_REG(…)
#define VTFT …
SUB_REG(…)
SUB_REG(…)
#define Z1 …
#define Z2 …
#define PSST …
SUB_REG(…)
SUB_REG(…)
#define DSL …
SUB_REG(…)
SUB_REG(…)
#define CCCA …
SUB_REG(…)
#define CCCA_INTERPROM_MASK …
#define CCCA_INTERPROM_0 …
#define CCCA_INTERPROM_1 …
#define CCCA_INTERPROM_2 …
#define CCCA_INTERPROM_3 …
#define CCCA_INTERPROM_4 …
#define CCCA_INTERPROM_5 …
#define CCCA_INTERPROM_6 …
#define CCCA_INTERPROM_7 …
#define CCCA_8BITSELECT …
SUB_REG(…)
#define CCR …
SUB_REG(…)
#define CCR_CACHELOOPFLAG …
#define CCR_INTERLEAVEDSAMPLES …
#define CCR_WORDSIZEDSAMPLES …
SUB_REG(…)
SUB_REG(…)
#define CCR_LOOPFLAG …
SUB_REG(…)
#define CLP …
SUB_REG(…)
#define FXRT …
#define FXRT_CHANNELA …
#define FXRT_CHANNELB …
#define FXRT_CHANNELC …
#define FXRT_CHANNELD …
#define MAPA …
#define MAPB …
#define MAP_PTE_MASK0 …
#define MAP_PTI_MASK0 …
#define MAP_PTE_MASK1 …
#define MAP_PTI_MASK1 …
#define ENVVOL …
#define ENVVOL_MASK …
#define ATKHLDV …
#define ATKHLDV_PHASE0_MASK …
#define ATKHLDV_HOLDTIME_MASK …
#define ATKHLDV_ATTACKTIME_MASK …
#define DCYSUSV …
#define DCYSUSV_PHASE1_MASK …
#define DCYSUSV_SUSTAINLEVEL_MASK …
#define DCYSUSV_CHANNELENABLE_MASK …
#define DCYSUSV_DECAYTIME_MASK …
#define LFOVAL1 …
#define LFOVAL_MASK …
#define ENVVAL …
#define ENVVAL_MASK …
#define ATKHLDM …
#define ATKHLDM_PHASE0_MASK …
#define ATKHLDM_HOLDTIME …
#define ATKHLDM_ATTACKTIME …
#define DCYSUSM …
#define DCYSUSM_PHASE1_MASK …
#define DCYSUSM_SUSTAINLEVEL_MASK …
#define DCYSUSM_DECAYTIME_MASK …
#define LFOVAL2 …
#define LFOVAL2_MASK …
#define IP …
#define IP_MASK …
#define IP_UNITY …
#define IFATN …
SUB_REG(…)
SUB_REG(…)
#define PEFE …
SUB_REG(…)
SUB_REG(…)
#define FMMOD …
#define FMMOD_MODVIBRATO …
#define FMMOD_MOFILTER …
#define TREMFRQ …
#define TREMFRQ_DEPTH …
#define TREMFRQ_FREQUENCY …
#define FM2FRQ2 …
#define FM2FRQ2_DEPTH …
#define FM2FRQ2_FREQUENCY …
#define TEMPENV …
#define TEMPENV_MASK …
#define CD0 …
#define PTB …
#define PTB_MASK …
#define TCB …
#define TCB_MASK …
#define ADCCR …
#define ADCCR_RCHANENABLE …
#define ADCCR_LCHANENABLE …
#define A_ADCCR_RCHANENABLE …
#define A_ADCCR_LCHANENABLE …
#define A_ADCCR_SAMPLERATE_MASK …
#define ADCCR_SAMPLERATE_MASK …
#define ADCCR_SAMPLERATE_48 …
#define ADCCR_SAMPLERATE_44 …
#define ADCCR_SAMPLERATE_32 …
#define ADCCR_SAMPLERATE_24 …
#define ADCCR_SAMPLERATE_22 …
#define ADCCR_SAMPLERATE_16 …
#define ADCCR_SAMPLERATE_11 …
#define ADCCR_SAMPLERATE_8 …
#define A_ADCCR_SAMPLERATE_12 …
#define A_ADCCR_SAMPLERATE_11 …
#define A_ADCCR_SAMPLERATE_8 …
#define FXWC …
#define A_TBLSZ …
#define TCBS …
#define TCBS_MASK …
#define TCBS_BUFFSIZE_16K …
#define TCBS_BUFFSIZE_32K …
#define TCBS_BUFFSIZE_64K …
#define TCBS_BUFFSIZE_128K …
#define TCBS_BUFFSIZE_256K …
#define TCBS_BUFFSIZE_512K …
#define TCBS_BUFFSIZE_1024K …
#define TCBS_BUFFSIZE_2048K …
#define MICBA …
#define MICBA_MASK …
#define ADCBA …
#define ADCBA_MASK …
#define FXBA …
#define FXBA_MASK …
#define A_HWM …
#define MICBS …
#define ADCBS …
#define FXBS …
#define ADCBS_BUFSIZE_NONE …
#define ADCBS_BUFSIZE_384 …
#define ADCBS_BUFSIZE_448 …
#define ADCBS_BUFSIZE_512 …
#define ADCBS_BUFSIZE_640 …
#define ADCBS_BUFSIZE_768 …
#define ADCBS_BUFSIZE_896 …
#define ADCBS_BUFSIZE_1024 …
#define ADCBS_BUFSIZE_1280 …
#define ADCBS_BUFSIZE_1536 …
#define ADCBS_BUFSIZE_1792 …
#define ADCBS_BUFSIZE_2048 …
#define ADCBS_BUFSIZE_2560 …
#define ADCBS_BUFSIZE_3072 …
#define ADCBS_BUFSIZE_3584 …
#define ADCBS_BUFSIZE_4096 …
#define ADCBS_BUFSIZE_5120 …
#define ADCBS_BUFSIZE_6144 …
#define ADCBS_BUFSIZE_7168 …
#define ADCBS_BUFSIZE_8192 …
#define ADCBS_BUFSIZE_10240 …
#define ADCBS_BUFSIZE_12288 …
#define ADCBS_BUFSIZE_14366 …
#define ADCBS_BUFSIZE_16384 …
#define ADCBS_BUFSIZE_20480 …
#define ADCBS_BUFSIZE_24576 …
#define ADCBS_BUFSIZE_28672 …
#define ADCBS_BUFSIZE_32768 …
#define ADCBS_BUFSIZE_40960 …
#define ADCBS_BUFSIZE_49152 …
#define ADCBS_BUFSIZE_57344 …
#define ADCBS_BUFSIZE_65536 …
#define A_CSBA …
#define A_CSDC …
#define A_CSFE …
#define A_CSHG …
#define CDCS …
#define GPSCS …
#define DBG …
#define A_SPSC …
#define REG53 …
#define A_DBG …
#define SPCS0 …
#define SPCS1 …
#define SPCS2 …
#define SPCS_CLKACCYMASK …
#define SPCS_CLKACCY_1000PPM …
#define SPCS_CLKACCY_50PPM …
#define SPCS_CLKACCY_VARIABLE …
#define SPCS_SAMPLERATEMASK …
#define SPCS_SAMPLERATE_44 …
#define SPCS_SAMPLERATE_48 …
#define SPCS_SAMPLERATE_32 …
#define SPCS_CHANNELNUMMASK …
#define SPCS_CHANNELNUM_UNSPEC …
#define SPCS_CHANNELNUM_LEFT …
#define SPCS_CHANNELNUM_RIGHT …
#define SPCS_SOURCENUMMASK …
#define SPCS_SOURCENUM_UNSPEC …
#define SPCS_GENERATIONSTATUS …
#define SPCS_CATEGORYCODEMASK …
#define SPCS_MODEMASK …
#define SPCS_EMPHASISMASK …
#define SPCS_EMPHASIS_NONE …
#define SPCS_EMPHASIS_50_15 …
#define SPCS_COPYRIGHT …
#define SPCS_NOTAUDIODATA …
#define SPCS_PROFESSIONAL …
#define CLIEL …
#define CLIEH …
#define CLIPL …
#define CLIPH …
#define SOLEL …
#define SOLEH …
#define SPBYPASS …
#define SPBYPASS_SPDIF0_MASK …
#define SPBYPASS_SPDIF1_MASK …
#define SPBYPASS_FORMAT …
#define AC97SLOT …
#define AC97SLOT_REAR_RIGHT …
#define AC97SLOT_REAR_LEFT …
#define AC97SLOT_CNTR …
#define AC97SLOT_LFE …
#define A_PCB …
#define CDSRCS …
#define GPSRCS …
#define ZVSRCS …
#define SRCS_SPDIFVALID …
#define SRCS_SPDIFLOCKED …
#define SRCS_RATELOCKED …
#define SRCS_ESTSAMPLERATE …
#define SRCS_SPDIFRATE_44 …
#define SRCS_SPDIFRATE_48 …
#define SRCS_SPDIFRATE_96 …
#define MICIDX …
SUB_REG(…)
#define ADCIDX …
SUB_REG(…)
#define A_ADCIDX …
SUB_REG(…)
#define A_MICIDX …
SUB_REG(…)
#define FXIDX …
SUB_REG(…)
#define HLIEL …
#define HLIEH …
#define HLIPL …
#define HLIPH …
#define A_SPRI …
#define A_SPRA …
#define A_SPRC …
#define A_DICE …
#define A_TTB …
#define A_TDOF …
#define A_MUDATA1 …
#define A_MUCMD1 …
#define A_MUSTAT1 …
#define A_MUDATA2 …
#define A_MUCMD2 …
#define A_MUSTAT2 …
#define A_FXWC1 …
#define A_FXWC2 …
#define A_EHC …
#define A_SPDIF_SAMPLERATE …
#define A_SPDIF_RATE_MASK …
#define A_SPDIF_48000 …
#define A_SPDIF_192000 …
#define A_SPDIF_96000 …
#define A_SPDIF_44100 …
#define A_SPDIF_MUTED …
SUB_REG_NC(A_EHC, A_I2S_CAPTURE_RATE, 0x00000e00)
#define A_I2S_CAPTURE_48000 …
#define A_I2S_CAPTURE_192000 …
#define A_I2S_CAPTURE_96000 …
#define A_I2S_CAPTURE_44100 …
#define A_EHC_SRC48_MASK …
#define A_EHC_SRC48_BYPASS …
#define A_EHC_SRC48_192 …
#define A_EHC_SRC48_96 …
#define A_EHC_SRC48_44 …
#define A_EHC_SRC48_MUTED …
#define A_EHC_P17V_TVM …
#define A_EHC_P17V_SEL0_MASK …
#define A_EHC_P17V_SEL1_MASK …
#define A_EHC_P17V_SEL2_MASK …
#define A_EHC_P17V_SEL3_MASK …
#define A_EHC_ASYNC_BYPASS …
#define A_SRT3 …
#define A_SRT4 …
#define A_SRT5 …
#define A_SRT_ESTSAMPLERATE …
#define A_SRT_RATELOCKED …
#define A_TTDA …
#define A_TTDD …
#define A_FXRT2 …
#define A_FXRT_CHANNELE …
#define A_FXRT_CHANNELF …
#define A_FXRT_CHANNELG …
#define A_FXRT_CHANNELH …
#define A_SENDAMOUNTS …
#define A_FXSENDAMOUNT_E_MASK …
#define A_FXSENDAMOUNT_F_MASK …
#define A_FXSENDAMOUNT_G_MASK …
#define A_FXSENDAMOUNT_H_MASK …
#define A_FXRT1 …
#define A_FXRT_CHANNELA …
#define A_FXRT_CHANNELB …
#define A_FXRT_CHANNELC …
#define A_FXRT_CHANNELD …
#define MICROCODEBASE …
#define A_MICROCODEBASE …
#define EMU_HANA_DESTHI …
#define EMU_HANA_DESTLO …
#define EMU_HANA_SRCHI …
#define EMU_HANA_SRCLO …
#define EMU_HANA_DOCK_PWR …
#define EMU_HANA_DOCK_PWR_ON …
#define EMU_HANA_WCLOCK …
#define EMU_HANA_WCLOCK_SRC_MASK …
#define EMU_HANA_WCLOCK_INT_48K …
#define EMU_HANA_WCLOCK_INT_44_1K …
#define EMU_HANA_WCLOCK_HANA_SPDIF_IN …
#define EMU_HANA_WCLOCK_HANA_ADAT_IN …
#define EMU_HANA_WCLOCK_SYNC_BNC …
#define EMU_HANA_WCLOCK_2ND_HANA …
#define EMU_HANA_WCLOCK_SRC_RESERVED …
#define EMU_HANA_WCLOCK_OFF …
#define EMU_HANA_WCLOCK_MULT_MASK …
#define EMU_HANA_WCLOCK_1X …
#define EMU_HANA_WCLOCK_2X …
#define EMU_HANA_WCLOCK_4X …
#define EMU_HANA_WCLOCK_MULT_RESERVED …
#define EMU_HANA_DEFCLOCK …
#define EMU_HANA_DEFCLOCK_48K …
#define EMU_HANA_DEFCLOCK_44_1K …
#define EMU_HANA_UNMUTE …
#define EMU_MUTE …
#define EMU_UNMUTE …
#define EMU_HANA_FPGA_CONFIG …
#define EMU_HANA_FPGA_CONFIG_AUDIODOCK …
#define EMU_HANA_FPGA_CONFIG_HANA …
#define EMU_HANA_IRQ_ENABLE …
#define EMU_HANA_IRQ_WCLK_CHANGED …
#define EMU_HANA_IRQ_ADAT …
#define EMU_HANA_IRQ_DOCK …
#define EMU_HANA_IRQ_DOCK_LOST …
#define EMU_HANA_SPDIF_MODE …
#define EMU_HANA_SPDIF_MODE_TX_CONSUMER …
#define EMU_HANA_SPDIF_MODE_TX_PRO …
#define EMU_HANA_SPDIF_MODE_TX_NOCOPY …
#define EMU_HANA_SPDIF_MODE_RX_CONSUMER …
#define EMU_HANA_SPDIF_MODE_RX_PRO …
#define EMU_HANA_SPDIF_MODE_RX_NOCOPY …
#define EMU_HANA_SPDIF_MODE_RX_INVALID …
#define EMU_HANA_OPTICAL_TYPE …
#define EMU_HANA_OPTICAL_IN_SPDIF …
#define EMU_HANA_OPTICAL_IN_ADAT …
#define EMU_HANA_OPTICAL_OUT_SPDIF …
#define EMU_HANA_OPTICAL_OUT_ADAT …
#define EMU_HANA_MIDI_IN …
#define EMU_HANA_MIDI_INA_FROM_HAMOA …
#define EMU_HANA_MIDI_INA_FROM_DOCK1 …
#define EMU_HANA_MIDI_INA_FROM_DOCK2 …
#define EMU_HANA_MIDI_INB_FROM_HAMOA …
#define EMU_HANA_MIDI_INB_FROM_DOCK1 …
#define EMU_HANA_MIDI_INB_FROM_DOCK2 …
#define EMU_HANA_DOCK_LEDS_1 …
#define EMU_HANA_DOCK_LEDS_1_MIDI1 …
#define EMU_HANA_DOCK_LEDS_1_MIDI2 …
#define EMU_HANA_DOCK_LEDS_1_SMPTE_IN …
#define EMU_HANA_DOCK_LEDS_1_SMPTE_OUT …
#define EMU_HANA_DOCK_LEDS_2 …
#define EMU_HANA_DOCK_LEDS_2_44K …
#define EMU_HANA_DOCK_LEDS_2_48K …
#define EMU_HANA_DOCK_LEDS_2_96K …
#define EMU_HANA_DOCK_LEDS_2_192K …
#define EMU_HANA_DOCK_LEDS_2_LOCK …
#define EMU_HANA_DOCK_LEDS_2_EXT …
#define EMU_HANA_DOCK_LEDS_3 …
#define EMU_HANA_DOCK_LEDS_3_CLIP_A …
#define EMU_HANA_DOCK_LEDS_3_CLIP_B …
#define EMU_HANA_DOCK_LEDS_3_SIGNAL_A …
#define EMU_HANA_DOCK_LEDS_3_SIGNAL_B …
#define EMU_HANA_DOCK_LEDS_3_MANUAL_CLIP …
#define EMU_HANA_DOCK_LEDS_3_MANUAL_SIGNAL …
#define EMU_HANA_ADC_PADS …
#define EMU_HANA_DOCK_ADC_PAD1 …
#define EMU_HANA_DOCK_ADC_PAD2 …
#define EMU_HANA_DOCK_ADC_PAD3 …
#define EMU_HANA_0202_ADC_PAD1 …
#define EMU_HANA_DOCK_MISC …
#define EMU_HANA_DOCK_DAC1_MUTE …
#define EMU_HANA_DOCK_DAC2_MUTE …
#define EMU_HANA_DOCK_DAC3_MUTE …
#define EMU_HANA_DOCK_DAC4_MUTE …
#define EMU_HANA_DOCK_PHONES_192_DAC1 …
#define EMU_HANA_DOCK_PHONES_192_DAC2 …
#define EMU_HANA_DOCK_PHONES_192_DAC3 …
#define EMU_HANA_DOCK_PHONES_192_DAC4 …
#define EMU_HANA_MIDI_OUT …
#define EMU_HANA_MIDI_OUT_0202 …
#define EMU_HANA_MIDI_OUT_DOCK1 …
#define EMU_HANA_MIDI_OUT_DOCK2 …
#define EMU_HANA_MIDI_OUT_SYNC2 …
#define EMU_HANA_MIDI_OUT_LOOP …
#define EMU_HANA_DAC_PADS …
#define EMU_HANA_DOCK_DAC_PAD1 …
#define EMU_HANA_DOCK_DAC_PAD2 …
#define EMU_HANA_DOCK_DAC_PAD3 …
#define EMU_HANA_DOCK_DAC_PAD4 …
#define EMU_HANA_0202_DAC_PAD1 …
#define EMU_HANA_IRQ_STATUS …
#define EMU_HANA_OPTION_CARDS …
#define EMU_HANA_OPTION_HAMOA …
#define EMU_HANA_OPTION_SYNC …
#define EMU_HANA_OPTION_DOCK_ONLINE …
#define EMU_HANA_OPTION_DOCK_OFFLINE …
#define EMU_HANA_ID …
#define EMU_HANA_MAJOR_REV …
#define EMU_HANA_MINOR_REV …
#define EMU_DOCK_MAJOR_REV …
#define EMU_DOCK_MINOR_REV …
#define EMU_DOCK_BOARD_ID …
#define EMU_DOCK_BOARD_ID0 …
#define EMU_DOCK_BOARD_ID1 …
#define EMU_HANA_WC_SPDIF_HI …
#define EMU_HANA_WC_SPDIF_LO …
#define EMU_HANA_WC_ADAT_HI …
#define EMU_HANA_WC_ADAT_LO …
#define EMU_HANA_WC_BNC_LO …
#define EMU_HANA_WC_BNC_HI …
#define EMU_HANA2_WC_SPDIF_HI …
#define EMU_HANA2_WC_SPDIF_LO …
#define EMU_HANA_LOCK_STS_LO …
#define EMU_HANA_LOCK_STS_HI …
#define EMU_DST_ALICE2_EMU32_0 …
#define EMU_DST_ALICE2_EMU32_1 …
#define EMU_DST_ALICE2_EMU32_2 …
#define EMU_DST_ALICE2_EMU32_3 …
#define EMU_DST_ALICE2_EMU32_4 …
#define EMU_DST_ALICE2_EMU32_5 …
#define EMU_DST_ALICE2_EMU32_6 …
#define EMU_DST_ALICE2_EMU32_7 …
#define EMU_DST_ALICE2_EMU32_8 …
#define EMU_DST_ALICE2_EMU32_9 …
#define EMU_DST_ALICE2_EMU32_A …
#define EMU_DST_ALICE2_EMU32_B …
#define EMU_DST_ALICE2_EMU32_C …
#define EMU_DST_ALICE2_EMU32_D …
#define EMU_DST_ALICE2_EMU32_E …
#define EMU_DST_ALICE2_EMU32_F …
#define EMU_DST_DOCK_DAC1_LEFT1 …
#define EMU_DST_DOCK_DAC1_LEFT2 …
#define EMU_DST_DOCK_DAC1_LEFT3 …
#define EMU_DST_DOCK_DAC1_LEFT4 …
#define EMU_DST_DOCK_DAC1_RIGHT1 …
#define EMU_DST_DOCK_DAC1_RIGHT2 …
#define EMU_DST_DOCK_DAC1_RIGHT3 …
#define EMU_DST_DOCK_DAC1_RIGHT4 …
#define EMU_DST_DOCK_DAC2_LEFT1 …
#define EMU_DST_DOCK_DAC2_LEFT2 …
#define EMU_DST_DOCK_DAC2_LEFT3 …
#define EMU_DST_DOCK_DAC2_LEFT4 …
#define EMU_DST_DOCK_DAC2_RIGHT1 …
#define EMU_DST_DOCK_DAC2_RIGHT2 …
#define EMU_DST_DOCK_DAC2_RIGHT3 …
#define EMU_DST_DOCK_DAC2_RIGHT4 …
#define EMU_DST_DOCK_DAC3_LEFT1 …
#define EMU_DST_DOCK_DAC3_LEFT2 …
#define EMU_DST_DOCK_DAC3_LEFT3 …
#define EMU_DST_DOCK_DAC3_LEFT4 …
#define EMU_DST_DOCK_PHONES_LEFT1 …
#define EMU_DST_DOCK_PHONES_LEFT2 …
#define EMU_DST_DOCK_DAC3_RIGHT1 …
#define EMU_DST_DOCK_DAC3_RIGHT2 …
#define EMU_DST_DOCK_DAC3_RIGHT3 …
#define EMU_DST_DOCK_DAC3_RIGHT4 …
#define EMU_DST_DOCK_PHONES_RIGHT1 …
#define EMU_DST_DOCK_PHONES_RIGHT2 …
#define EMU_DST_DOCK_DAC4_LEFT1 …
#define EMU_DST_DOCK_DAC4_LEFT2 …
#define EMU_DST_DOCK_DAC4_LEFT3 …
#define EMU_DST_DOCK_DAC4_LEFT4 …
#define EMU_DST_DOCK_SPDIF_LEFT1 …
#define EMU_DST_DOCK_SPDIF_LEFT2 …
#define EMU_DST_DOCK_DAC4_RIGHT1 …
#define EMU_DST_DOCK_DAC4_RIGHT2 …
#define EMU_DST_DOCK_DAC4_RIGHT3 …
#define EMU_DST_DOCK_DAC4_RIGHT4 …
#define EMU_DST_DOCK_SPDIF_RIGHT1 …
#define EMU_DST_DOCK_SPDIF_RIGHT2 …
#define EMU_DST_HANA_SPDIF_LEFT1 …
#define EMU_DST_HANA_SPDIF_LEFT2 …
#define EMU_DST_HANA_SPDIF_LEFT3 …
#define EMU_DST_HANA_SPDIF_LEFT4 …
#define EMU_DST_HANA_SPDIF_RIGHT1 …
#define EMU_DST_HANA_SPDIF_RIGHT2 …
#define EMU_DST_HANA_SPDIF_RIGHT3 …
#define EMU_DST_HANA_SPDIF_RIGHT4 …
#define EMU_DST_HAMOA_DAC_LEFT1 …
#define EMU_DST_HAMOA_DAC_LEFT2 …
#define EMU_DST_HAMOA_DAC_LEFT3 …
#define EMU_DST_HAMOA_DAC_LEFT4 …
#define EMU_DST_HAMOA_DAC_RIGHT1 …
#define EMU_DST_HAMOA_DAC_RIGHT2 …
#define EMU_DST_HAMOA_DAC_RIGHT3 …
#define EMU_DST_HAMOA_DAC_RIGHT4 …
#define EMU_DST_HANA_ADAT …
#define EMU_DST_ALICE_I2S0_LEFT …
#define EMU_DST_ALICE_I2S0_RIGHT …
#define EMU_DST_ALICE_I2S1_LEFT …
#define EMU_DST_ALICE_I2S1_RIGHT …
#define EMU_DST_ALICE_I2S2_LEFT …
#define EMU_DST_ALICE_I2S2_RIGHT …
#define EMU_DST_MDOCK_SPDIF_LEFT1 …
#define EMU_DST_MDOCK_SPDIF_LEFT2 …
#define EMU_DST_MDOCK_SPDIF_RIGHT1 …
#define EMU_DST_MDOCK_SPDIF_RIGHT2 …
#define EMU_DST_MDOCK_ADAT …
#define EMU_DST_MANA_DAC_LEFT …
#define EMU_DST_MANA_DAC_RIGHT …
#define EMU_SRC_SILENCE …
#define EMU_SRC_DOCK_MIC_A1 …
#define EMU_SRC_DOCK_MIC_A2 …
#define EMU_SRC_DOCK_MIC_A3 …
#define EMU_SRC_DOCK_MIC_A4 …
#define EMU_SRC_DOCK_MIC_B1 …
#define EMU_SRC_DOCK_MIC_B2 …
#define EMU_SRC_DOCK_MIC_B3 …
#define EMU_SRC_DOCK_MIC_B4 …
#define EMU_SRC_DOCK_ADC1_LEFT1 …
#define EMU_SRC_DOCK_ADC1_LEFT2 …
#define EMU_SRC_DOCK_ADC1_LEFT3 …
#define EMU_SRC_DOCK_ADC1_LEFT4 …
#define EMU_SRC_DOCK_ADC1_RIGHT1 …
#define EMU_SRC_DOCK_ADC1_RIGHT2 …
#define EMU_SRC_DOCK_ADC1_RIGHT3 …
#define EMU_SRC_DOCK_ADC1_RIGHT4 …
#define EMU_SRC_DOCK_ADC2_LEFT1 …
#define EMU_SRC_DOCK_ADC2_LEFT2 …
#define EMU_SRC_DOCK_ADC2_LEFT3 …
#define EMU_SRC_DOCK_ADC2_LEFT4 …
#define EMU_SRC_DOCK_ADC2_RIGHT1 …
#define EMU_SRC_DOCK_ADC2_RIGHT2 …
#define EMU_SRC_DOCK_ADC2_RIGHT3 …
#define EMU_SRC_DOCK_ADC2_RIGHT4 …
#define EMU_SRC_DOCK_ADC3_LEFT1 …
#define EMU_SRC_DOCK_ADC3_LEFT2 …
#define EMU_SRC_DOCK_ADC3_LEFT3 …
#define EMU_SRC_DOCK_ADC3_LEFT4 …
#define EMU_SRC_DOCK_ADC3_RIGHT1 …
#define EMU_SRC_DOCK_ADC3_RIGHT2 …
#define EMU_SRC_DOCK_ADC3_RIGHT3 …
#define EMU_SRC_DOCK_ADC3_RIGHT4 …
#define EMU_SRC_HAMOA_ADC_LEFT1 …
#define EMU_SRC_HAMOA_ADC_LEFT2 …
#define EMU_SRC_HAMOA_ADC_LEFT3 …
#define EMU_SRC_HAMOA_ADC_LEFT4 …
#define EMU_SRC_HAMOA_ADC_RIGHT1 …
#define EMU_SRC_HAMOA_ADC_RIGHT2 …
#define EMU_SRC_HAMOA_ADC_RIGHT3 …
#define EMU_SRC_HAMOA_ADC_RIGHT4 …
#define EMU_SRC_ALICE_EMU32A …
#define EMU_SRC_ALICE_EMU32B …
#define EMU_SRC_HANA_ADAT …
#define EMU_SRC_HANA_SPDIF_LEFT1 …
#define EMU_SRC_HANA_SPDIF_LEFT2 …
#define EMU_SRC_HANA_SPDIF_LEFT3 …
#define EMU_SRC_HANA_SPDIF_LEFT4 …
#define EMU_SRC_HANA_SPDIF_RIGHT1 …
#define EMU_SRC_HANA_SPDIF_RIGHT2 …
#define EMU_SRC_HANA_SPDIF_RIGHT3 …
#define EMU_SRC_HANA_SPDIF_RIGHT4 …
#define EMU_SRC_MDOCK_SPDIF_LEFT1 …
#define EMU_SRC_MDOCK_SPDIF_LEFT2 …
#define EMU_SRC_MDOCK_SPDIF_RIGHT1 …
#define EMU_SRC_MDOCK_SPDIF_RIGHT2 …
#define EMU_SRC_MDOCK_ADAT …
extern const char * const snd_emu10k1_fxbus[32];
extern const char * const snd_emu10k1_sblive_ins[16];
extern const char * const snd_emu10k1_audigy_ins[16];
extern const char * const snd_emu10k1_sblive_outs[32];
extern const char * const snd_emu10k1_audigy_outs[32];
extern const s8 snd_emu10k1_sblive51_fxbus2_map[16];
enum { … };
struct snd_emu10k1;
struct snd_emu10k1_voice { … };
enum { … };
struct snd_emu10k1_pcm { … };
struct snd_emu10k1_pcm_mixer { … };
#define snd_emu10k1_compose_send_routing(route) …
#define snd_emu10k1_compose_audigy_fxrt1(route) …
#define snd_emu10k1_compose_audigy_fxrt2(route) …
#define snd_emu10k1_compose_audigy_sendamounts(vol) …
struct snd_emu10k1_memblk { … };
#define snd_emu10k1_memblk_offset(blk) …
#define EMU10K1_MAX_TRAM_BLOCKS_PER_CODE …
struct snd_emu10k1_fx8010_ctl { … };
snd_fx8010_irq_handler_t;
struct snd_emu10k1_fx8010_irq { … };
struct snd_emu10k1_fx8010_pcm { … };
struct snd_emu10k1_fx8010 { … };
struct snd_emu10k1_midi { … };
enum { … };
struct snd_emu_chip_details { … };
#define NUM_OUTPUT_DESTS …
#define NUM_INPUT_DESTS …
struct snd_emu1010 { … };
struct snd_emu10k1 { … };
int snd_emu10k1_create(struct snd_card *card,
struct pci_dev *pci,
unsigned short extin_mask,
unsigned short extout_mask,
long max_cache_bytes,
int enable_ir,
uint subsystem);
int snd_emu10k1_pcm(struct snd_emu10k1 *emu, int device);
int snd_emu10k1_pcm_mic(struct snd_emu10k1 *emu, int device);
int snd_emu10k1_pcm_efx(struct snd_emu10k1 *emu, int device);
int snd_p16v_pcm(struct snd_emu10k1 *emu, int device);
int snd_p16v_mixer(struct snd_emu10k1 * emu);
int snd_emu10k1_pcm_multi(struct snd_emu10k1 *emu, int device);
int snd_emu10k1_fx8010_pcm(struct snd_emu10k1 *emu, int device);
int snd_emu10k1_mixer(struct snd_emu10k1 * emu, int pcm_device, int multi_device);
int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device);
int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device);
irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id);
void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice);
int snd_emu10k1_init_efx(struct snd_emu10k1 *emu);
void snd_emu10k1_free_efx(struct snd_emu10k1 *emu);
int snd_emu10k1_fx8010_tram_setup(struct snd_emu10k1 *emu, u32 size);
int snd_emu10k1_done(struct snd_emu10k1 * emu);
unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn);
void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data);
void snd_emu10k1_ptr_write_multiple(struct snd_emu10k1 *emu, unsigned int chn, ...);
unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn);
void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data);
int snd_emu10k1_spi_write(struct snd_emu10k1 * emu, unsigned int data);
int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu, u32 reg, u32 value);
static inline void snd_emu1010_fpga_lock(struct snd_emu10k1 *emu) { mutex_lock(&emu->emu1010.lock); };
static inline void snd_emu1010_fpga_unlock(struct snd_emu10k1 *emu) { mutex_unlock(&emu->emu1010.lock); };
void snd_emu1010_fpga_write_lock(struct snd_emu10k1 *emu, u32 reg, u32 value);
void snd_emu1010_fpga_write(struct snd_emu10k1 *emu, u32 reg, u32 value);
void snd_emu1010_fpga_read(struct snd_emu10k1 *emu, u32 reg, u32 *value);
void snd_emu1010_fpga_link_dst_src_write(struct snd_emu10k1 *emu, u32 dst, u32 src);
u32 snd_emu1010_fpga_link_dst_src_read(struct snd_emu10k1 *emu, u32 dst);
int snd_emu1010_get_raw_rate(struct snd_emu10k1 *emu, u8 src);
void snd_emu1010_update_clock(struct snd_emu10k1 *emu);
void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu, int dock, const struct firmware *fw_entry);
unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc);
void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb);
void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb);
void snd_emu10k1_voice_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_half_loop_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_half_loop_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_half_loop_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum);
#if 0
void snd_emu10k1_voice_set_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_clear_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum);
#endif
void snd_emu10k1_voice_set_loop_stop_multiple(struct snd_emu10k1 *emu, u64 voices);
void snd_emu10k1_voice_clear_loop_stop_multiple(struct snd_emu10k1 *emu, u64 voices);
int snd_emu10k1_voice_clear_loop_stop_multiple_atomic(struct snd_emu10k1 *emu, u64 voices);
void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait);
static inline unsigned int snd_emu10k1_wc(struct snd_emu10k1 *emu) { … }
unsigned short snd_emu10k1_ac97_read(struct snd_ac97 *ac97, unsigned short reg);
void snd_emu10k1_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short data);
#ifdef CONFIG_PM_SLEEP
void snd_emu10k1_suspend_regs(struct snd_emu10k1 *emu);
void snd_emu10k1_resume_init(struct snd_emu10k1 *emu);
void snd_emu10k1_resume_regs(struct snd_emu10k1 *emu);
int snd_emu10k1_efx_alloc_pm_buffer(struct snd_emu10k1 *emu);
void snd_emu10k1_efx_free_pm_buffer(struct snd_emu10k1 *emu);
void snd_emu10k1_efx_suspend(struct snd_emu10k1 *emu);
void snd_emu10k1_efx_resume(struct snd_emu10k1 *emu);
int snd_p16v_alloc_pm_buffer(struct snd_emu10k1 *emu);
void snd_p16v_free_pm_buffer(struct snd_emu10k1 *emu);
void snd_p16v_suspend(struct snd_emu10k1 *emu);
void snd_p16v_resume(struct snd_emu10k1 *emu);
#endif
struct snd_util_memblk *snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *substream);
int snd_emu10k1_free_pages(struct snd_emu10k1 *emu, struct snd_util_memblk *blk);
int snd_emu10k1_alloc_pages_maybe_wider(struct snd_emu10k1 *emu, size_t size,
struct snd_dma_buffer *dmab);
struct snd_util_memblk *snd_emu10k1_synth_alloc(struct snd_emu10k1 *emu, unsigned int size);
int snd_emu10k1_synth_free(struct snd_emu10k1 *emu, struct snd_util_memblk *blk);
int snd_emu10k1_synth_memset(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, int size, u8 value);
int snd_emu10k1_synth_copy_from_user(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, const char __user *data, int size, u32 xor);
int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk);
int snd_emu10k1_voice_alloc(struct snd_emu10k1 *emu, int type, int count, int channels,
struct snd_emu10k1_pcm *epcm, struct snd_emu10k1_voice **rvoice);
int snd_emu10k1_voice_free(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *pvoice);
int snd_emu10k1_midi(struct snd_emu10k1 * emu);
int snd_emu10k1_audigy_midi(struct snd_emu10k1 * emu);
int snd_emu10k1_proc_init(struct snd_emu10k1 * emu);
int snd_emu10k1_fx8010_register_irq_handler(struct snd_emu10k1 *emu,
snd_fx8010_irq_handler_t *handler,
unsigned char gpr_running,
void *private_data,
struct snd_emu10k1_fx8010_irq *irq);
int snd_emu10k1_fx8010_unregister_irq_handler(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_irq *irq);
#endif