FreeBSD kernel sound device code
|
#include <sys/param.h>
#include <sys/types.h>
#include <sys/bus.h>
#include <machine/bus.h>
#include <sys/rman.h>
#include <sys/systm.h>
#include <sys/sbuf.h>
#include <sys/queue.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/sysctl.h>
#include <sys/kdb.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/pcivar.h>
#include <machine/clock.h>
#include <dev/sound/chip.h>
#include <dev/sound/pcm/sound.h>
#include <dev/sound/pcm/ac97.h>
#include <dev/sound/pci/emuxkireg.h>
#include <dev/sound/pci/emu10kx.h>
Go to the source code of this file.
Data Structures | |
struct | emu_voice |
struct | emu_memblk |
struct | emu_mem |
struct | emu_rm |
struct | emu_intr_handler |
struct | emu_sc_info |
struct | emu_hwinfo |
Macros | |
#define | HAS_51 0x0001 |
#define | HAS_71 0x0002 |
#define | HAS_AC97 0x0004 |
#define | IS_EMU10K1 0x0008 |
#define | IS_EMU10K2 0x0010 |
#define | IS_CA0102 0x0020 |
#define | IS_CA0108 0x0040 |
#define | IS_UNKNOWN 0x0080 |
#define | BROKEN_DIGITAL 0x0100 |
#define | DIGITAL_ONLY 0x0200 |
#define | IS_CARDBUS 0x0400 |
#define | MODE_ANALOG 1 |
#define | MODE_DIGITAL 2 |
#define | SPDIF_MODE_PCM 1 |
#define | SPDIF_MODE_AC3 2 |
#define | MACS 0x0 |
#define | MACS1 0x1 |
#define | MACW 0x2 |
#define | MACW1 0x3 |
#define | MACINTS 0x4 |
#define | MACINTW 0x5 |
#define | ACC3 0x6 |
#define | MACMV 0x7 |
#define | ANDXOR 0x8 |
#define | TSTNEG 0x9 |
#define | LIMIT 0xA |
#define | LIMIT1 0xB |
#define | LOG 0xC |
#define | EXP 0xD |
#define | INTERP 0xE |
#define | SKIP 0xF |
#define | GPR(i) (sc->gpr_base+(i)) |
#define | INP(i) (sc->input_base+(i)) |
#define | OUTP(i) (sc->output_base+(i)) |
#define | FX(i) (i) |
#define | FX2(i) (sc->efxc_base+(i)) |
#define | DSP_CONST(i) (sc->dsp_zero+(i)) |
#define | COND_NORMALIZED DSP_CONST(0x1) |
#define | COND_BORROW DSP_CONST(0x2) |
#define | COND_MINUS DSP_CONST(0x3) |
#define | COND_LESS_ZERO DSP_CONST(0x4) |
#define | COND_EQ_ZERO DSP_CONST(0x5) |
#define | COND_SATURATION DSP_CONST(0x6) |
#define | COND_NEQ_ZERO DSP_CONST(0x8) |
#define | DSP_ACCUM DSP_CONST(0x16) |
#define | DSP_CCR DSP_CONST(0x17) |
#define | IN_AC97_L 0x00 |
#define | IN_AC97_R 0x01 |
#define | IN_AC97 IN_AC97_L |
#define | IN_SPDIF_CD_L 0x02 |
#define | IN_SPDIF_CD_R 0x03 |
#define | IN_SPDIF_CD IN_SPDIF_CD_L |
#define | IN_ZOOM_L 0x04 |
#define | IN_ZOOM_R 0x05 |
#define | IN_ZOOM IN_ZOOM_L |
#define | IN_TOSLINK_L 0x06 |
#define | IN_TOSLINK_R 0x07 |
#define | IN_TOSLINK IN_TOSLINK_L |
#define | IN_LINE1_L 0x08 |
#define | IN_LINE1_R 0x09 |
#define | IN_LINE1 IN_LINE1_L |
#define | IN_COAX_SPDIF_L 0x0a |
#define | IN_COAX_SPDIF_R 0x0b |
#define | IN_COAX_SPDIF IN_COAX_SPDIF_L |
#define | IN_LINE2_L 0x0c |
#define | IN_LINE2_R 0x0d |
#define | IN_LINE2 IN_LINE2_L |
#define | IN_0E 0x0e |
#define | IN_0F 0x0f |
#define | OUT_AC97_L 0x00 |
#define | OUT_AC97_R 0x01 |
#define | OUT_AC97 OUT_AC97_L |
#define | OUT_A_FRONT OUT_AC97 |
#define | OUT_TOSLINK_L 0x02 |
#define | OUT_TOSLINK_R 0x03 |
#define | OUT_TOSLINK OUT_TOSLINK_L |
#define | OUT_D_CENTER 0x04 |
#define | OUT_D_SUB 0x05 |
#define | OUT_HEADPHONE_L 0x06 |
#define | OUT_HEADPHONE_R 0x07 |
#define | OUT_HEADPHONE OUT_HEADPHONE_L |
#define | OUT_REAR_L 0x08 |
#define | OUT_REAR_R 0x09 |
#define | OUT_REAR OUT_REAR_L |
#define | OUT_ADC_REC_L 0x0a |
#define | OUT_ADC_REC_R 0x0b |
#define | OUT_ADC_REC OUT_ADC_REC_L |
#define | OUT_MIC_CAP 0x0c |
#define | OUT_A_CENTER 0x11 |
#define | OUT_A_SUB 0x12 |
#define | A_IN_AC97_L 0x00 |
#define | A_IN_AC97_R 0x01 |
#define | A_IN_AC97 A_IN_AC97_L |
#define | A_IN_SPDIF_CD_L 0x02 |
#define | A_IN_SPDIF_CD_R 0x03 |
#define | A_IN_SPDIF_CD A_IN_SPDIF_CD_L |
#define | A_IN_O_SPDIF_L 0x04 |
#define | A_IN_O_SPDIF_R 0x05 |
#define | A_IN_O_SPDIF A_IN_O_SPDIF_L |
#define | A_IN_LINE2_L 0x08 |
#define | A_IN_LINE2_R 0x09 |
#define | A_IN_LINE2 A_IN_LINE2_L |
#define | A_IN_R_SPDIF_L 0x0a |
#define | A_IN_R_SPDIF_R 0x0b |
#define | A_IN_R_SPDIF A_IN_R_SPDIF_L |
#define | A_IN_AUX2_L 0x0c |
#define | A_IN_AUX2_R 0x0d |
#define | A_IN_AUX2 A_IN_AUX2_L |
#define | A_OUT_D_FRONT_L 0x00 |
#define | A_OUT_D_FRONT_R 0x01 |
#define | A_OUT_D_FRONT A_OUT_D_FRONT_L |
#define | A_OUT_D_CENTER 0x02 |
#define | A_OUT_D_SUB 0x03 |
#define | A_OUT_D_SIDE_L 0x04 |
#define | A_OUT_D_SIDE_R 0x05 |
#define | A_OUT_D_SIDE A_OUT_D_SIDE_L |
#define | A_OUT_D_REAR_L 0x06 |
#define | A_OUT_D_REAR_R 0x07 |
#define | A_OUT_D_REAR A_OUT_D_REAR_L |
#define | A_OUT_HPHONE_L 0x04 |
#define | A_OUT_HPHONE_R 0x05 |
#define | A_OUT_HPHONE A_OUT_HPHONE_L |
#define | A_OUT_A_FRONT_L 0x08 |
#define | A_OUT_A_FRONT_R 0x09 |
#define | A_OUT_A_FRONT A_OUT_A_FRONT_L |
#define | A_OUT_A_CENTER 0x0a |
#define | A_OUT_A_SUB 0x0b |
#define | A_OUT_A_SIDE_L 0x0c |
#define | A_OUT_A_SIDE_R 0x0d |
#define | A_OUT_A_SIDE A_OUT_A_SIDE_L |
#define | A_OUT_A_REAR_L 0x0e |
#define | A_OUT_A_REAR_R 0x0f |
#define | A_OUT_A_REAR A_OUT_A_REAR_L |
#define | A_OUT_AC97_L 0x10 |
#define | A_OUT_AC97_R 0x11 |
#define | A_OUT_AC97 A_OUT_AC97_L |
#define | A_OUT_ADC_REC_L 0x16 |
#define | A_OUT_ADC_REC_R 0x17 |
#define | A_OUT_ADC_REC A_OUT_ADC_REC_L |
#define | EMU_DATA2 0x24 |
#define | EMU_IPR2 0x28 |
#define | EMU_INTE2 0x2c |
#define | EMU_IPR3 0x38 |
#define | EMU_INTE3 0x3c |
#define | EMU_A2_SRCSel 0x60 |
#define | EMU_A2_SRCMULTI_ENABLE 0x6e |
#define | EMU_A_I2S_CAPTURE_96000 0x00000400 |
#define | EMU_A2_MIXER_I2S_ENABLE 0x7B |
#define | EMU_A2_MIXER_SPDIF_ENABLE 0x7A |
#define | C_FRONT_L 0 |
#define | C_FRONT_R 1 |
#define | C_REC_L 2 |
#define | C_REC_R 3 |
#define | C_REAR_L 4 |
#define | C_REAR_R 5 |
#define | C_CENTER 6 |
#define | C_SUB 7 |
#define | C_SIDE_L 8 |
#define | C_SIDE_R 9 |
#define | NUM_CACHES 10 |
#define | CDSPDIFMUTE 0 |
#define | ANALOGMUTE 1 |
#define | NUM_MUTE 2 |
#define | EMU_MAX_GPR 512 |
#define | EMU_MAX_IRQ_CONSUMERS 32 |
#define | EMU_MTX_DEBUG() |
#define | EMU_RWLOCK() |
#define | EMU_RWUNLOCK() |
#define | EFX_CACHE(CACHE_IDX) |
#define | EFX_ROUTE(TITLE, INP_NR, IN_GPR_IDX, OUT_CACHE_IDX, DEF) |
#define | EFX_OUTPUT(TITLE, OUT_CACHE_IDX, OUT_GPR_IDX, OUTP_NR, DEF) |
#define | EFX_OUTPUTD(OUT_CACHE_IDX, OUT_GPR_IDX, OUTP_NR) |
#define | EFX_SKIP(OPCOUNT, FLAG_GPR) |
#define | EFX_COPY(TO, FROM) |
#define | L2L_POINTS 10 |
Functions | |
static void | emu_setmap (void *arg, bus_dma_segment_t *segs, int nseg, int error) |
static void * | emu_malloc (struct emu_mem *mem, uint32_t sz, bus_addr_t *addr, bus_dmamap_t *map) |
static void | emu_free (struct emu_mem *mem, void *dmabuf, bus_dmamap_t map) |
static void * | emu_memalloc (struct emu_mem *mem, uint32_t sz, bus_addr_t *addr, const char *owner) |
static int | emu_memfree (struct emu_mem *mem, void *membuf) |
static int | emu_memstart (struct emu_mem *mem, void *membuf) |
static int | emu10kx_dev_init (struct emu_sc_info *sc) |
static int | emu10kx_dev_uninit (struct emu_sc_info *sc) |
static int | emu10kx_prepare (struct emu_sc_info *sc, struct sbuf *s) |
static void | emumix_set_mode (struct emu_sc_info *sc, int mode) |
static void | emumix_set_spdif_mode (struct emu_sc_info *sc, int mode) |
static void | emumix_set_fxvol (struct emu_sc_info *sc, unsigned gpr, int32_t vol) |
static void | emumix_set_gpr (struct emu_sc_info *sc, unsigned gpr, int32_t val) |
static int | sysctl_emu_mixer_control (SYSCTL_HANDLER_ARGS) |
static int | emu_rm_init (struct emu_sc_info *sc) |
static int | emu_rm_uninit (struct emu_sc_info *sc) |
static int | emu_rm_gpr_alloc (struct emu_rm *rm, int count) |
static unsigned int | emu_getcard (device_t dev) |
static uint32_t | emu_rd_nolock (struct emu_sc_info *sc, unsigned int regno, unsigned int size) |
static void | emu_wr_nolock (struct emu_sc_info *sc, unsigned int regno, uint32_t data, unsigned int size) |
static void | emu_wr_cbptr (struct emu_sc_info *sc, uint32_t data) |
static void | emu_vstop (struct emu_sc_info *sc, char channel, int enable) |
static void | emu_intr (void *p) |
static void | emu_wrefx (struct emu_sc_info *sc, unsigned int pc, unsigned int data) |
static void | emu_addefxop (struct emu_sc_info *sc, unsigned int op, unsigned int z, unsigned int w, unsigned int x, unsigned int y, uint32_t *pc) |
static void | emu_initefx (struct emu_sc_info *sc) |
static int | emu_cardbus_init (struct emu_sc_info *sc) |
static int | emu_init (struct emu_sc_info *sc) |
static int | emu_uninit (struct emu_sc_info *sc) |
static int | emu_read_ivar (device_t bus __unused, device_t dev, int ivar_index, uintptr_t *result) |
static int | emu_write_ivar (device_t bus __unused, device_t dev __unused, int ivar_index, uintptr_t value __unused) |
static int | emu_pci_probe (device_t dev) |
static int | emu_pci_attach (device_t dev) |
static int | emu_pci_detach (device_t dev) |
static int | emu_modevent (module_t mod __unused, int cmd, void *data __unused) |
uint32_t | emu_rdptr (struct emu_sc_info *sc, unsigned int chn, unsigned int reg) |
void | emu_wrptr (struct emu_sc_info *sc, unsigned int chn, unsigned int reg, uint32_t data) |
uint32_t | emu_rd_p16vptr (struct emu_sc_info *sc, uint16_t chn, uint16_t reg) |
void | emu_wr_p16vptr (struct emu_sc_info *sc, uint16_t chn, uint16_t reg, uint32_t data) |
void | emu_wr (struct emu_sc_info *sc, unsigned int regno, uint32_t data, unsigned int size) |
uint32_t | emu_rd (struct emu_sc_info *sc, unsigned int regno, unsigned int size) |
void | emu_enable_ir (struct emu_sc_info *sc) |
int | emu_timer_create (struct emu_sc_info *sc) |
int | emu_timer_set (struct emu_sc_info *sc, int timer, int delay) |
int | emu_timer_enable (struct emu_sc_info *sc, int timer, int go) |
int | emu_timer_clear (struct emu_sc_info *sc, int timer) |
int | emu_intr_register (struct emu_sc_info *sc, uint32_t inte_mask, uint32_t intr_mask, uint32_t(*func)(void *softc, uint32_t irq), void *isc) |
int | emu_intr_unregister (struct emu_sc_info *sc, int hnumber) |
bus_dma_tag_t | emu_gettag (struct emu_sc_info *sc) |
static uint32_t | emu_rate_to_pitch (uint32_t rate) |
static uint32_t | emu_rate_to_linearpitch (uint32_t rate) |
struct emu_voice * | emu_valloc (struct emu_sc_info *sc) |
void | emu_vfree (struct emu_sc_info *sc, struct emu_voice *v) |
int | emu_vinit (struct emu_sc_info *sc, struct emu_voice *m, struct emu_voice *s, uint32_t sz, struct snd_dbuf *b) |
void | emu_vsetup (struct emu_voice *v, int fmt, int spd) |
void | emu_vroute (struct emu_sc_info *sc, struct emu_route *rt, struct emu_voice *v) |
void | emu_vwrite (struct emu_sc_info *sc, struct emu_voice *v) |
void | emu_vtrigger (struct emu_sc_info *sc, struct emu_voice *v, int go) |
int | emu_vpos (struct emu_sc_info *sc, struct emu_voice *v) |
static int | emu_addefxmixer (struct emu_sc_info *sc, const char *mix_name, const int mix_id, uint32_t defvolume) |
static int | sysctl_emu_digitalswitch_control (SYSCTL_HANDLER_ARGS) |
static void | emu_digitalswitch (struct emu_sc_info *sc) |
static int | emu10kx_open (struct cdev *i_dev, int flags __unused, int mode __unused, struct thread *td __unused) |
static int | emu10kx_close (struct cdev *i_dev, int flags __unused, int mode __unused, struct thread *td __unused) |
static int | emu10kx_read (struct cdev *i_dev, struct uio *buf, int flag __unused) |
static int | log2lin (int log_t) |
void | emumix_set_volume (struct emu_sc_info *sc, int mixer_idx, int volume) |
int | emumix_get_volume (struct emu_sc_info *sc, int mixer_idx) |
DRIVER_MODULE (snd_emu10kx, pci, emu_driver, emu_devclass, emu_modevent, NULL) | |
MODULE_VERSION (snd_emu10kx, SND_EMU10KX_PREFVER) | |
Variables | |
static struct emu_hwinfo | emu_cards [] |
static struct emu_hwinfo | emu_bad_cards [] |
static d_open_t | emu10kx_open |
static d_close_t | emu10kx_close |
static d_read_t | emu10kx_read |
static struct cdevsw | emu10kx_cdevsw |
static int | l2l_df [L2L_POINTS] |
static int | l2l_f [L2L_POINTS] |
static device_method_t | emu_methods [] |
static driver_t | emu_driver |
static devclass_t | emu_devclass |
#define A_IN_AC97 A_IN_AC97_L |
#define A_IN_AUX2 A_IN_AUX2_L |
#define A_IN_LINE2 A_IN_LINE2_L |
#define A_IN_O_SPDIF A_IN_O_SPDIF_L |
#define A_IN_R_SPDIF A_IN_R_SPDIF_L |
#define A_IN_SPDIF_CD A_IN_SPDIF_CD_L |
#define A_OUT_A_FRONT A_OUT_A_FRONT_L |
#define A_OUT_A_REAR A_OUT_A_REAR_L |
#define A_OUT_A_SIDE A_OUT_A_SIDE_L |
#define A_OUT_AC97 A_OUT_AC97_L |
#define A_OUT_ADC_REC A_OUT_ADC_REC_L |
#define A_OUT_D_FRONT A_OUT_D_FRONT_L |
#define A_OUT_D_REAR A_OUT_D_REAR_L |
#define A_OUT_D_SIDE A_OUT_D_SIDE_L |
#define A_OUT_HPHONE A_OUT_HPHONE_L |
#define EFX_CACHE | ( | CACHE_IDX | ) |
#define EFX_COPY | ( | TO, | |
FROM | |||
) |
#define EFX_OUTPUT | ( | TITLE, | |
OUT_CACHE_IDX, | |||
OUT_GPR_IDX, | |||
OUTP_NR, | |||
DEF | |||
) |
#define EFX_OUTPUTD | ( | OUT_CACHE_IDX, | |
OUT_GPR_IDX, | |||
OUTP_NR | |||
) |
#define EFX_ROUTE | ( | TITLE, | |
INP_NR, | |||
IN_GPR_IDX, | |||
OUT_CACHE_IDX, | |||
DEF | |||
) |
#define EFX_SKIP | ( | OPCOUNT, | |
FLAG_GPR | |||
) |
#define EMU_RWLOCK | ( | ) |
#define EMU_RWUNLOCK | ( | ) |
#define IN_COAX_SPDIF IN_COAX_SPDIF_L |
#define IN_LINE1 IN_LINE1_L |
#define IN_LINE2 IN_LINE2_L |
#define IN_SPDIF_CD IN_SPDIF_CD_L |
#define IN_TOSLINK IN_TOSLINK_L |
#define OUT_AC97 OUT_AC97_L |
#define OUT_ADC_REC OUT_ADC_REC_L |
#define OUT_HEADPHONE OUT_HEADPHONE_L |
#define OUT_REAR OUT_REAR_L |
#define OUT_TOSLINK OUT_TOSLINK_L |
DRIVER_MODULE | ( | snd_emu10kx | , |
pci | , | ||
emu_driver | , | ||
emu_devclass | , | ||
emu_modevent | , | ||
NULL | |||
) |
|
static |
Definition at line 2215 of file emu10kx.c.
References emu_sc_info::emu10kx_isopen, emu_sc_info::emu10kx_lock, and emu_sc_info::emu10kx_sbuf.
|
static |
Definition at line 2313 of file emu10kx.c.
References emu_sc_info::cdev, emu_sc_info::dev, emu10kx_cdevsw, emu_sc_info::emu10kx_lock, and PCMMINOR.
Referenced by emu_pci_attach().
|
static |
Definition at line 2329 of file emu10kx.c.
References emu_sc_info::cdev, emu_sc_info::emu10kx_isopen, and emu_sc_info::emu10kx_lock.
Referenced by emu_pci_attach(), and emu_pci_detach().
|
static |
Definition at line 2186 of file emu10kx.c.
References emu_sc_info::emu10kx_bufptr, emu_sc_info::emu10kx_isopen, emu_sc_info::emu10kx_lock, emu10kx_prepare(), emu_sc_info::emu10kx_sbuf, and error.
|
static |
Definition at line 2255 of file emu10kx.c.
References emu_sc_info::broken_digital, emu_sc_info::code_size, emu_sc_info::enable_ir, emu_sc_info::has_51, emu_sc_info::has_71, emu_sc_info::has_ac97, emu_sc_info::is_ca0102, emu_sc_info::is_ca0108, emu_sc_info::is_emu10k1, emu_sc_info::is_emu10k2, emu_sc_info::midi, emu_sc_info::mode, MODE_ANALOG, emu_rm::num_gprs, emu_rm::num_used, emu_sc_info::pcm, emu_sc_info::rm, emu_sc_info::routing_code_end, and RT_COUNT.
Referenced by emu10kx_open().
|
static |
Definition at line 2234 of file emu10kx.c.
References buf, emu_sc_info::emu10kx_bufptr, emu_sc_info::emu10kx_isopen, emu_sc_info::emu10kx_lock, and emu_sc_info::emu10kx_sbuf.
|
static |
Definition at line 1552 of file emu10kx.c.
References emu_sc_info::ctx, emu_rm_gpr_alloc(), emumix_set_fxvol(), emu_sc_info::rm, emu_sc_info::root, and sysctl_emu_mixer_control().
|
static |
Definition at line 1517 of file emu10kx.c.
References emu_sc_info::code_size, emu_sc_info::dev, emu_wrefx(), emu_sc_info::high_operand_shift, and emu_sc_info::opcode_shift.
Referenced by emu_initefx().
|
static |
Definition at line 2630 of file emu10kx.c.
References emu_wr_cbptr().
Referenced by emu_pci_attach().
|
static |
Definition at line 1608 of file emu10kx.c.
References emu_sc_info::ctx, emu_sc_info::root, and sysctl_emu_digitalswitch_control().
Referenced by emu_initefx().
void emu_enable_ir | ( | struct emu_sc_info * | sc | ) |
Definition at line 779 of file emu10kx.c.
References emu_sc_info::dev, EMU_A_IOCFG, EMU_A_IOCFG_GPOUT1, EMU_A_IOCFG_GPOUT2, EMU_HCFG, EMU_HCFG_GPOUT1, EMU_HCFG_GPOUT2, emu_rd_nolock(), emu_wr_nolock(), emu_sc_info::enable_ir, emu_sc_info::is_ca0102, emu_sc_info::is_emu10k1, and emu_sc_info::is_emu10k2.
Referenced by emu_midi_attach().
|
static |
Definition at line 1079 of file emu10kx.c.
References emu_mem::dmat, and emu_sc_info::mem.
Referenced by emu_init(), emu_memfree(), and emu_uninit().
|
static |
Definition at line 564 of file emu10kx.c.
References dev, emu_hwinfo::device, emu_bad_cards, emu_cards, PCIR_DEVICE, PCIR_SUBDEV_0, and emu_hwinfo::subdevice.
Referenced by emu_pci_attach(), and emu_pci_probe().
bus_dma_tag_t emu_gettag | ( | struct emu_sc_info * | sc | ) |
Definition at line 1037 of file emu10kx.c.
References emu_mem::dmat, and emu_sc_info::mem.
Referenced by emufxrchan_init(), and emurchan_init().
|
static |
Definition at line 2650 of file emu10kx.c.
References emu_sc_info::broken_digital, emu_mem::card, emu_sc_info::dev, emu_mem::dmat, EMU_A2_MIXER_I2S_ENABLE, EMU_A2_MIXER_SPDIF_ENABLE, EMU_A2_SRCMULTI_ENABLE, EMU_A2_SRCSel, EMU_A_CHAN_FXRT1, EMU_A_CHAN_FXRT2, EMU_A_CHAN_SENDAMOUNTS, EMU_A_I2S_CAPTURE_96000, EMU_A_IOCFG, EMU_A_SPDIF_48000, EMU_A_SPDIF_SAMPLERATE, EMU_AC97SLOT, EMU_AC97SLOT_CENTER, EMU_AC97SLOT_LFE, EMU_AC97SLOT_REAR_LEFT, EMU_AC97SLOT_REAR_RIGHT, EMU_ADCBA, EMU_ADCBS, EMU_CHAN_ATKHLDM, EMU_CHAN_ATKHLDV, EMU_CHAN_CCCA, EMU_CHAN_CCR, EMU_CHAN_CPF, EMU_CHAN_CVCF, EMU_CHAN_DCYSUSM, EMU_CHAN_DCYSUSV, EMU_CHAN_DSL, EMU_CHAN_ENVVAL, EMU_CHAN_ENVVOL, EMU_CHAN_FM2FRQ2, EMU_CHAN_FMMOD, EMU_CHAN_FXRT, EMU_CHAN_IFATN, EMU_CHAN_IP, EMU_CHAN_LFOVAL1, EMU_CHAN_LFOVAL2, EMU_CHAN_MAP_PTI_MASK, EMU_CHAN_MAPA, EMU_CHAN_MAPB, EMU_CHAN_PEFE, EMU_CHAN_PSST, EMU_CHAN_PTRX, EMU_CHAN_TEMPENV, EMU_CHAN_TREMFRQ, EMU_CHAN_VTFT, EMU_CHAN_Z1, EMU_CHAN_Z2, EMU_CLIEH, EMU_CLIEL, emu_free(), EMU_FXBA, EMU_FXBS, EMU_HCFG, EMU_HCFG_LOCKSOUNDCACHE, EMU_HCFG_LOCKTANKCACHE_MASK, EMU_HCFG_MUTEBUTTONENABLE, emu_initefx(), EMU_INTE, EMU_INTE2, EMU_INTE3, EMU_INTE_INTERTIMERENB, EMU_INTE_PCIERRENABLE, EMU_INTE_SAMPLERATER, emu_malloc(), EMU_MAX_BUFSZ, EMU_MAXPAGES, EMU_MICBA, EMU_MICBS, EMU_PTB, emu_rd(), emu_rdptr(), EMU_RECBS_BUFSIZE_NONE, EMU_SOLEH, EMU_SOLEL, EMU_SPBYPASS, EMU_TCB, EMU_TCBS, emu_wr(), emu_wr_p16vptr(), emu_wrptr(), emumix_set_mode(), emumix_set_spdif_mode(), EMUPAGESIZE, emu_sc_info::has_51, emu_sc_info::has_71, emu_sc_info::is_ca0102, emu_sc_info::is_ca0108, emu_sc_info::is_emu10k2, emu_sc_info::mem, MODE_ANALOG, MODE_DIGITAL, NUM_G, emu_mem::ptb_map, emu_mem::ptb_pages, emu_mem::ptb_pages_addr, emu_mem::silent_map, emu_mem::silent_page, emu_mem::silent_page_addr, and SPDIF_MODE_PCM.
Referenced by emu_pci_attach().
|
static |
Definition at line 1693 of file emu10kx.c.
References A_IN_AC97_L, A_IN_AC97_R, A_IN_AUX2_L, A_IN_AUX2_R, A_IN_LINE2_L, A_IN_LINE2_R, A_IN_O_SPDIF_L, A_IN_O_SPDIF_R, A_IN_R_SPDIF_L, A_IN_R_SPDIF_R, A_IN_SPDIF_CD_L, A_IN_SPDIF_CD_R, A_OUT_A_CENTER, A_OUT_A_FRONT_L, A_OUT_A_FRONT_R, A_OUT_A_REAR_L, A_OUT_A_REAR_R, A_OUT_A_SIDE_L, A_OUT_A_SIDE_R, A_OUT_A_SUB, A_OUT_ADC_REC_L, A_OUT_ADC_REC_R, A_OUT_D_CENTER, A_OUT_D_FRONT_L, A_OUT_D_FRONT_R, A_OUT_D_REAR_L, A_OUT_D_REAR_R, A_OUT_D_SIDE_L, A_OUT_D_SIDE_R, A_OUT_D_SUB, A_OUT_HPHONE_L, A_OUT_HPHONE_R, ACC3, ANALOGMUTE, C_CENTER, C_FRONT_L, C_FRONT_R, C_REAR_L, C_REAR_R, C_REC_L, C_REC_R, C_SIDE_L, C_SIDE_R, C_SUB, emu_sc_info::cache_gpr, CDSPDIFMUTE, emu_sc_info::code_size, emu_sc_info::dbg_level, DSP_CONST, emu_sc_info::dummy_gpr, EFX_CACHE, EFX_COPY, EFX_OUTPUT, EFX_OUTPUTD, EFX_ROUTE, EFX_SKIP, EMU_A_DBG, EMU_A_DBG_SINGLE_STEP, emu_addefxop(), EMU_DBG, EMU_DBG_SINGLE_STEP, emu_digitalswitch(), emu_rm_gpr_alloc(), emu_wrptr(), emumix_set_gpr(), FX, FX2, GPR, emu_sc_info::has_51, emu_sc_info::has_71, IN_AC97_L, IN_AC97_R, IN_COAX_SPDIF_L, IN_COAX_SPDIF_R, IN_LINE1_L, IN_LINE1_R, IN_LINE2_L, IN_LINE2_R, IN_SPDIF_CD_L, IN_SPDIF_CD_R, IN_TOSLINK_L, IN_TOSLINK_R, IN_ZOOM_L, IN_ZOOM_R, INP, emu_sc_info::is_emu10k1, M_FX0_FRONT_L, M_FX0_REC_L, M_FX1_FRONT_R, M_FX1_REC_R, M_FX2_REAR_L, M_FX3_REAR_R, M_FX4_CENTER, M_FX5_SUBWOOFER, M_FX6_SIDE_L, M_FX7_SIDE_R, M_IN0_FRONT_L, M_IN0_FRONT_R, M_IN0_REC_L, M_IN0_REC_R, M_IN1_FRONT_L, M_IN1_FRONT_R, M_IN1_REC_L, M_IN1_REC_R, M_IN2_FRONT_L, M_IN2_FRONT_R, M_IN2_REC_L, M_IN2_REC_R, M_IN3_FRONT_L, M_IN3_FRONT_R, M_IN3_REC_L, M_IN3_REC_R, M_IN4_FRONT_L, M_IN4_FRONT_R, M_IN4_REC_L, M_IN4_REC_R, M_IN5_FRONT_L, M_IN5_FRONT_R, M_IN5_REC_L, M_IN5_REC_R, M_IN6_FRONT_L, M_IN6_FRONT_R, M_IN6_REC_L, M_IN6_REC_R, M_IN7_FRONT_L, M_IN7_FRONT_R, M_IN7_REC_L, M_IN7_REC_R, M_MASTER_CENTER, M_MASTER_FRONT_L, M_MASTER_FRONT_R, M_MASTER_REAR_L, M_MASTER_REAR_R, M_MASTER_REC_L, M_MASTER_REC_R, M_MASTER_SIDE_L, M_MASTER_SIDE_R, M_MASTER_SUBWOOFER, MACS, emu_sc_info::mch_disabled, emu_sc_info::mch_rec, emu_sc_info::mute_gpr, NUM_MUTE, OUT_A_CENTER, OUT_A_SUB, OUT_AC97_L, OUT_AC97_R, OUT_ADC_REC_L, OUT_ADC_REC_R, OUT_D_CENTER, OUT_D_SUB, OUT_HEADPHONE_L, OUT_HEADPHONE_R, OUT_REAR_L, OUT_REAR_R, OUT_TOSLINK_L, OUT_TOSLINK_R, OUTP, emu_sc_info::rm, emu_sc_info::routing_code_end, and SKIP.
Referenced by emu_init().
|
static |
Definition at line 979 of file emu10kx.c.
References emu_sc_info::dbg_level, emu_sc_info::dev, EMU_IPR, EMU_IPR2, EMU_IPR3, EMU_MAX_IRQ_CONSUMERS, emu_rd(), emu_wr(), emu_sc_info::ihandler, emu_intr_handler::intr_mask, emu_intr_handler::irq_func, emu_sc_info::is_ca0102, emu_sc_info::is_ca0108, and emu_intr_handler::softc.
Referenced by emu_pci_attach().
int emu_intr_register | ( | struct emu_sc_info * | sc, |
uint32_t | inte_mask, | ||
uint32_t | intr_mask, | ||
uint32_t(*)(void *softc, uint32_t irq) | func, | ||
void * | isc | ||
) |
Definition at line 918 of file emu10kx.c.
References emu_sc_info::dbg_level, emu_sc_info::dev, EMU_INTE, EMU_MAX_IRQ_CONSUMERS, emu_rd(), emu_wr(), func, emu_sc_info::ihandler, emu_intr_handler::inte_mask, emu_intr_handler::intr_mask, emu_intr_handler::irq_func, emu_sc_info::lock, and emu_intr_handler::softc.
Referenced by emu_midi_attach(), emu_pcm_attach(), emufxrchan_trigger(), and emurchan_trigger().
int emu_intr_unregister | ( | struct emu_sc_info * | sc, |
int | hnumber | ||
) |
Definition at line 947 of file emu10kx.c.
References EMU_INTE, EMU_MAX_IRQ_CONSUMERS, emu_rd(), emu_wr(), emu_sc_info::ihandler, emu_intr_handler::inte_mask, emu_intr_handler::intr_mask, emu_intr_handler::irq_func, emu_sc_info::lock, and emu_intr_handler::softc.
Referenced by emu_midi_attach(), emu_midi_detach(), emufxrchan_trigger(), and emurchan_trigger().
|
static |
Definition at line 1057 of file emu10kx.c.
References addr, emu_mem::card, emu_sc_info::dbg_level, emu_sc_info::dev, emu_mem::dmat, emu_setmap(), error, and emu_sc_info::mem.
Referenced by emu_init(), and emu_memalloc().
|
static |
Definition at line 1086 of file emu10kx.c.
References addr, blksz, emu_mem::bmap, emu_mem::card, emu_sc_info::dbg_level, emu_sc_info::dev, emu_malloc(), EMU_MAX_BUFSZ, EMU_MAXPAGES, EMUPAGESIZE, free, emu_mem::ptb_pages, and start.
Referenced by emu_vinit().
|
static |
Definition at line 1148 of file emu10kx.c.
References emu_mem::bmap, emu_free(), free, emu_mem::ptb_pages, and emu_mem::silent_page_addr.
Referenced by emu_vfree(), and emu_vinit().
|
static |
Definition at line 1172 of file emu10kx.c.
Referenced by emu_vinit().
|
static |
|
static |
Definition at line 3018 of file emu10kx.c.
References emu_sc_info::address_mask, emu_voice::b16, BROKEN_DIGITAL, emu_sc_info::broken_digital, emu_voice::busy, emu_midiinfo::card, emu_pcminfo::card, emu_sc_info::cdev, emu_sc_info::code_base, emu_sc_info::code_size, emu_sc_info::ctx, emu_sc_info::dbg_level, emu_sc_info::dev, dev, emu_sc_info::dsp_zero, emu_sc_info::efxc_base, emu10kx_dev_init(), emu10kx_dev_uninit(), EMU_A_FXGPREGBASE, EMU_A_MICROCODEBASE, EMU_A_MUDATA1, EMU_A_MUDATA2, EMU_A_PTR_ADDR_MASK, emu_cardbus_init(), emu_cards, EMU_FXGPREGBASE, emu_getcard(), emu_init(), emu_intr(), EMU_MAX_IRQ_CONSUMERS, EMU_MICROCODEBASE, EMU_PTR_ADDR_MASK, emu_rm_init(), emu_rm_uninit(), emu_sc_info::enable_ir, emu_voice::end, error, emu_hwinfo::flags, sndcard_func::func, func, emu_sc_info::gpr_base, HAS_51, emu_sc_info::has_51, HAS_71, emu_sc_info::has_71, HAS_AC97, emu_sc_info::has_ac97, emu_sc_info::high_operand_shift, emu_sc_info::ih, emu_sc_info::input_base, emu_sc_info::irq, IS_CA0102, emu_sc_info::is_ca0102, IS_CA0108, emu_sc_info::is_ca0108, IS_CARDBUS, emu_sc_info::is_cardbus, IS_EMU10K1, emu_sc_info::is_emu10k1, IS_EMU10K2, emu_sc_info::is_emu10k2, emu_voice::ismaster, emu_sc_info::lock, emu_sc_info::mch_disabled, emu_sc_info::mch_rec, emu_sc_info::mchannel_fx, emu_sc_info::midi, emu_sc_info::num_fxbuses, NUM_G, emu_sc_info::num_gprs, emu_sc_info::num_inputs, emu_sc_info::num_outputs, emu_sc_info::opcode_shift, emu_sc_info::output_base, PCIR_BAR, emu_sc_info::pcm, emu_midiinfo::port, emu_midiinfo::portnr, RANGE, emu_sc_info::reg, emu_sc_info::rev, emu_sc_info::rm, emu_sc_info::root, emu_pcminfo::route, RT_CENTER, RT_COUNT, RT_FRONT, RT_MCHRECORD, RT_REAR, RT_SIDE, RT_SUB, emu_voice::running, emu_sc_info::rw, SCF_MIDI, SCF_PCM, emu_sc_info::sh, emu_voice::slave, emu_voice::speed, emu_sc_info::st, emu_voice::start, status, emu_voice::stereo, emu_sc_info::timer, emu_sc_info::type, emu_voice::vnum, and emu_sc_info::voice.
|
static |
Definition at line 3418 of file emu10kx.c.
References dev, emu_mem::dmat, emu10kx_dev_uninit(), emu_rm_uninit(), emu_uninit(), free, sndcard_func::func, emu_sc_info::ih, emu_sc_info::irq, emu_sc_info::lock, emu_sc_info::mem, emu_sc_info::midi, PCIR_BAR, emu_sc_info::pcm, r, emu_sc_info::reg, RT_COUNT, emu_sc_info::rw, SCF_MIDI, and SCF_PCM.
|
static |
Definition at line 2990 of file emu10kx.c.
References desc, dev, emu_cards, emu_getcard(), PCIR_DEVVENDOR, and vendor.
|
static |
Definition at line 1244 of file emu10kx.c.
References rate.
Referenced by emu_vtrigger().
|
static |
Definition at line 1187 of file emu10kx.c.
References rate.
Referenced by emu_vtrigger().
uint32_t emu_rd | ( | struct emu_sc_info * | sc, |
unsigned int | regno, | ||
unsigned int | size | ||
) |
Definition at line 763 of file emu10kx.c.
References EMU_DATA, EMU_DATA2, emu_rd_nolock(), regno, and size.
Referenced by emu_init(), emu_intr(), emu_intr_register(), emu_intr_unregister(), emu_timer_enable(), and emumix_set_mode().
|
static |
Definition at line 611 of file emu10kx.c.
References regno, emu_sc_info::sh, size, and emu_sc_info::st.
Referenced by emu_enable_ir(), emu_rd(), emu_rd_p16vptr(), emu_rdptr(), emu_wr_cbptr(), and emu_wrptr().
uint32_t emu_rd_p16vptr | ( | struct emu_sc_info * | sc, |
uint16_t | chn, | ||
uint16_t | reg | ||
) |
Definition at line 706 of file emu10kx.c.
References EMU_A2_PTR, EMU_DATA2, emu_rd_nolock(), EMU_RWLOCK, EMU_RWUNLOCK, emu_wr_nolock(), reg, and val.
uint32_t emu_rdptr | ( | struct emu_sc_info * | sc, |
unsigned int | chn, | ||
unsigned int | reg | ||
) |
Definition at line 649 of file emu10kx.c.
References emu_sc_info::address_mask, EMU_DATA, EMU_PTR, EMU_PTR_CHNO_MASK, emu_rd_nolock(), EMU_RWLOCK, EMU_RWUNLOCK, emu_wr_nolock(), mask, offset, reg, size, and val.
Referenced by emu_init(), and emu_vpos().
|
static |
Definition at line 2940 of file emu10kx.c.
References bus, dev, EMU_VAR_FUNC, EMU_VAR_ISEMU10K1, EMU_VAR_MCH_DISABLED, EMU_VAR_MCH_REC, EMU_VAR_ROUTE, sndcard_func::func, func, emu_sc_info::is_emu10k1, emu_sc_info::mch_disabled, and emu_sc_info::mch_rec.
|
static |
Definition at line 2390 of file emu10kx.c.
References emu_rm::allocmap, count, emu_rm::gpr_lock, emu_rm::last_free_gpr, emu_rm::num_gprs, and emu_rm::num_used.
Referenced by emu_addefxmixer(), and emu_initefx().
|
static |
Definition at line 2346 of file emu10kx.c.
References emu_rm::allocmap, emu_rm::card, emu_sc_info::dev, EMU_MAX_GPR, emu_rm::gpr_lock, emu_rm::last_free_gpr, maxcount, emu_rm::num_gprs, emu_sc_info::num_gprs, emu_rm::num_used, and emu_sc_info::rm.
Referenced by emu_pci_attach().
|
static |
Definition at line 2372 of file emu10kx.c.
References emu_rm::allocmap, emu_sc_info::dbg_level, emu_sc_info::dev, free, emu_rm::gpr_lock, emu_rm::last_free_gpr, and emu_sc_info::rm.
Referenced by emu_pci_attach(), and emu_pci_detach().
|
static |
Definition at line 1043 of file emu10kx.c.
References error.
Referenced by emu_malloc().
int emu_timer_clear | ( | struct emu_sc_info * | sc, |
int | timer | ||
) |
Definition at line 897 of file emu10kx.c.
References EMU_MAX_IRQ_CONSUMERS, emu_timer_enable(), emu_sc_info::lock, RANGE, and emu_sc_info::timer.
Referenced by emupchan_free(), and emurchan_free().
int emu_timer_create | ( | struct emu_sc_info * | sc | ) |
Definition at line 811 of file emu10kx.c.
References EMU_MAX_IRQ_CONSUMERS, emu_sc_info::lock, and emu_sc_info::timer.
Referenced by emupchan_init(), and emurchan_init().
int emu_timer_enable | ( | struct emu_sc_info * | sc, |
int | timer, | ||
int | go | ||
) |
Definition at line 855 of file emu10kx.c.
References EMU_INTE, EMU_INTE_INTERTIMERENB, EMU_MAX_IRQ_CONSUMERS, emu_rd(), EMU_TIMER, emu_wr(), go, emu_sc_info::lock, RANGE, emu_sc_info::timer, and emu_sc_info::timerinterval.
Referenced by emu_pcm_intr(), emu_timer_clear(), emupchan_trigger(), and emurchan_setblocksize().
int emu_timer_set | ( | struct emu_sc_info * | sc, |
int | timer, | ||
int | delay | ||
) |
Definition at line 831 of file emu10kx.c.
References EMU_MAX_IRQ_CONSUMERS, EMU_TIMER, emu_wr(), emu_sc_info::lock, RANGE, emu_sc_info::timer, and emu_sc_info::timerinterval.
Referenced by emupchan_setblocksize(), emupchan_trigger(), and emurchan_setblocksize().
|
static |
Definition at line 2890 of file emu10kx.c.
References emu_sc_info::dev, EMU_ADCBA, EMU_ADCBS, EMU_CHAN_CPF, EMU_CHAN_CVCF, EMU_CHAN_DCYSUSV, EMU_CHAN_PTRX, EMU_CHAN_VTFT, EMU_CLIEH, EMU_CLIEL, emu_free(), EMU_FXBA, EMU_FXBS, EMU_FXWC, EMU_HCFG, EMU_HCFG_LOCKSOUNDCACHE, EMU_HCFG_LOCKTANKCACHE_MASK, EMU_HCFG_MUTEBUTTONENABLE, EMU_INTE, EMU_MICBA, EMU_MICBS, EMU_PTB, EMU_RECBS_BUFSIZE_NONE, EMU_SOLEH, EMU_SOLEL, EMU_TCB, EMU_TCBS, emu_wr(), emu_wrptr(), emu_sc_info::mem, NUM_G, emu_mem::ptb_map, emu_mem::ptb_pages, emu_mem::silent_map, and emu_mem::silent_page.
Referenced by emu_pci_detach().
struct emu_voice * emu_valloc | ( | struct emu_sc_info * | sc | ) |
Definition at line 1251 of file emu10kx.c.
References emu_voice::busy, emu_sc_info::lock, NUM_G, and emu_sc_info::voice.
void emu_vfree | ( | struct emu_sc_info * | sc, |
struct emu_voice * | v | ||
) |
Definition at line 1268 of file emu10kx.c.
References emu_voice::busy, emu_memfree(), emu_sc_info::lock, emu_sc_info::mem, NUM_G, r, emu_voice::slave, emu_voice::vbuf, and emu_sc_info::voice.
Referenced by emupchan_free().
int emu_vinit | ( | struct emu_sc_info * | sc, |
struct emu_voice * | m, | ||
struct emu_voice * | s, | ||
uint32_t | sz, | ||
struct snd_dbuf * | b | ||
) |
Definition at line 1289 of file emu10kx.c.
References b, emu_voice::b16, emu_voice::buf, emu_sc_info::dbg_level, emu_sc_info::dev, emu_memalloc(), emu_memfree(), emu_memstart(), EMUPAGESIZE, emu_voice::end, emu_voice::ismaster, m, emu_sc_info::mem, emu_voice::running, emu_voice::slave, sndbuf_setup(), emu_voice::speed, emu_voice::start, emu_voice::stereo, emu_voice::vbuf, and emu_voice::vol.
int emu_vpos | ( | struct emu_sc_info * | sc, |
struct emu_voice * | v | ||
) |
Definition at line 1500 of file emu10kx.c.
References emu_voice::b16, EMU_CHAN_CCCA_CURRADDR, emu_rdptr(), emu_voice::start, emu_voice::stereo, and emu_voice::vnum.
void emu_vroute | ( | struct emu_sc_info * | sc, |
struct emu_route * | rt, | ||
struct emu_voice * | v | ||
) |
Definition at line 1355 of file emu10kx.c.
References emu_voice::amounts, emu_route::amounts_left, emu_route::amounts_right, emu_vroute(), emu_voice::ismaster, emu_voice::routing, emu_route::routing_left, emu_route::routing_right, emu_voice::slave, and emu_voice::stereo.
Referenced by emu_vroute(), and emupchan_trigger().
void emu_vsetup | ( | struct emu_voice * | v, |
int | fmt, | ||
int | spd | ||
) |
Definition at line 1337 of file emu10kx.c.
References AFMT_16BIT, AFMT_CHANNEL, emu_voice::b16, fmt, emu_voice::slave, spd, emu_voice::speed, and emu_voice::stereo.
|
static |
Definition at line 1445 of file emu10kx.c.
References channel, EMU_SOLEH, EMU_SOLEL, emu_wrptr(), enable, and reg.
Referenced by emu_vtrigger().
void emu_vtrigger | ( | struct emu_sc_info * | sc, |
struct emu_voice * | v, | ||
int | go | ||
) |
Definition at line 1457 of file emu10kx.c.
References emu_voice::b16, EMU_CHAN_CCR_CACHEINVALIDSIZE, EMU_CHAN_CCR_READADDRESS, EMU_CHAN_CD0, EMU_CHAN_CPF_PITCH, EMU_CHAN_CVCF, EMU_CHAN_DCYSUSV, EMU_CHAN_IFATN, EMU_CHAN_IP, EMU_CHAN_PTRX_PITCHTARGET, EMU_CHAN_VTFT, emu_rate_to_linearpitch(), emu_rate_to_pitch(), emu_vstop(), emu_vtrigger(), emu_wrptr(), go, emu_voice::slave, emu_voice::speed, emu_voice::stereo, and emu_voice::vnum.
Referenced by emu_vtrigger().
void emu_vwrite | ( | struct emu_sc_info * | sc, |
struct emu_voice * | v | ||
) |
Definition at line 1374 of file emu10kx.c.
References emu_voice::amounts, emu_voice::b16, emu_voice::ea, EMU_A_CHAN_FXRT1, EMU_A_CHAN_FXRT2, EMU_A_CHAN_SENDAMOUNTS, EMU_CHAN_ATKHLDM, EMU_CHAN_ATKHLDV, EMU_CHAN_ATKHLDV_ATTACKTIME_MASK, EMU_CHAN_ATKHLDV_HOLDTIME_MASK, EMU_CHAN_CCCA, EMU_CHAN_CCCA_8BITSELECT, EMU_CHAN_CPF, EMU_CHAN_CPF_STEREO_MASK, EMU_CHAN_CVCF, EMU_CHAN_CVCF_CURRFILTER_MASK, EMU_CHAN_DCYSUSM, EMU_CHAN_DCYSUSM_DECAYTIME_MASK, EMU_CHAN_DSL, EMU_CHAN_ENVVAL, EMU_CHAN_ENVVOL, EMU_CHAN_FM2FRQ2, EMU_CHAN_FMMOD, EMU_CHAN_FXRT, EMU_CHAN_LFOVAL1, EMU_CHAN_LFOVAL2, EMU_CHAN_MAP_PTI_MASK, EMU_CHAN_MAPA, EMU_CHAN_MAPB, EMU_CHAN_PEFE_FILTERAMOUNT, EMU_CHAN_PEFE_PITCHAMOUNT, EMU_CHAN_PSST, EMU_CHAN_PTRX, EMU_CHAN_TREMFRQ, EMU_CHAN_VTFT, EMU_CHAN_VTFT_FILTERTARGET_MASK, EMU_CHAN_Z1, EMU_CHAN_Z2, emu_vwrite(), emu_wrptr(), emu_voice::end, emu_sc_info::is_emu10k1, emu_sc_info::mem, emu_voice::routing, emu_voice::sa, emu_mem::silent_page_addr, emu_voice::slave, emu_voice::start, emu_voice::stereo, val, and emu_voice::vnum.
Referenced by emu_vwrite().
void emu_wr | ( | struct emu_sc_info * | sc, |
unsigned int | regno, | ||
uint32_t | data, | ||
unsigned int | size | ||
) |
Definition at line 754 of file emu10kx.c.
References data, EMU_A2_PTR, EMU_PTR, emu_wr_nolock(), regno, and size.
Referenced by emu_init(), emu_intr(), emu_intr_register(), emu_intr_unregister(), emu_timer_enable(), emu_timer_set(), emu_uninit(), and emumix_set_mode().
|
static |
Definition at line 733 of file emu10kx.c.
References data, emu_rd_nolock(), emu_wr_nolock(), and val.
Referenced by emu_cardbus_init().
|
static |
Definition at line 627 of file emu10kx.c.
References data, regno, emu_sc_info::sh, size, and emu_sc_info::st.
Referenced by emu_enable_ir(), emu_rd_p16vptr(), emu_rdptr(), emu_wr(), emu_wr_cbptr(), emu_wr_p16vptr(), and emu_wrptr().
void emu_wr_p16vptr | ( | struct emu_sc_info * | sc, |
uint16_t | chn, | ||
uint16_t | reg, | ||
uint32_t | data | ||
) |
Definition at line 721 of file emu10kx.c.
References data, EMU_A2_PTR, EMU_DATA2, EMU_RWLOCK, EMU_RWUNLOCK, emu_wr_nolock(), and reg.
Referenced by emu_init().
|
static |
Definition at line 1511 of file emu10kx.c.
References emu_sc_info::code_base, data, and emu_wrptr().
Referenced by emu_addefxop().
void emu_wrptr | ( | struct emu_sc_info * | sc, |
unsigned int | chn, | ||
unsigned int | reg, | ||
uint32_t | data | ||
) |
Definition at line 676 of file emu10kx.c.
References emu_sc_info::address_mask, data, EMU_DATA, EMU_PTR, EMU_PTR_CHNO_MASK, emu_rd_nolock(), EMU_RWLOCK, EMU_RWUNLOCK, emu_wr_nolock(), mask, offset, reg, and size.
Referenced by emu_init(), emu_initefx(), emu_uninit(), emu_vstop(), emu_vtrigger(), emu_vwrite(), emu_wrefx(), emumix_set_gpr(), and emumix_set_spdif_mode().
int emumix_get_volume | ( | struct emu_sc_info * | sc, |
int | mixer_idx | ||
) |
Definition at line 2621 of file emu10kx.c.
References emu_sc_info::mixer_volcache, and NUM_MIXERS.
Referenced by emu_dspmixer_setrecsrc(), and sysctl_emu_mixer_control().
|
static |
Definition at line 2587 of file emu10kx.c.
References emumix_set_gpr(), and log2lin().
Referenced by emu_addefxmixer(), and emumix_set_volume().
|
static |
Definition at line 2595 of file emu10kx.c.
References emu_sc_info::dbg_level, emu_sc_info::dev, emu_wrptr(), GPR, and val.
Referenced by emu_initefx(), emumix_set_fxvol(), and emumix_set_mode().
|
static |
Definition at line 2437 of file emu10kx.c.
References ANALOGMUTE, emu_sc_info::broken_digital, emu_sc_info::dev, EMU_A_IOCFG, EMU_A_IOCFG_DISABLE_ANALOG, EMU_A_IOCFG_GPOUT1, EMU_HCFG, EMU_HCFG_AUDIOENABLE, EMU_HCFG_AUTOMUTE, EMU_HCFG_CODECFMT_I2S, EMU_HCFG_GPOUT0, EMU_HCFG_JOYENABLE, EMU_HCFG_LOCKTANKCACHE_MASK, emu_rd(), emu_wr(), emumix_set_gpr(), emumix_set_spdif_mode(), emu_sc_info::is_ca0102, emu_sc_info::is_ca0108, emu_sc_info::is_emu10k1, emu_sc_info::is_emu10k2, emu_sc_info::mode, MODE_ANALOG, MODE_DIGITAL, emu_sc_info::mute_gpr, emu_sc_info::rev, and SPDIF_MODE_PCM.
Referenced by emu_init(), and sysctl_emu_digitalswitch_control().
|
static |
Definition at line 2510 of file emu10kx.c.
References emu_sc_info::dev, EMU_SPCS0, EMU_SPCS1, EMU_SPCS2, EMU_SPCS_CHANNELNUM_LEFT, EMU_SPCS_CLKACCY_1000PPM, EMU_SPCS_COPYRIGHT, EMU_SPCS_EMPHASIS_NONE, EMU_SPCS_GENERATIONSTATUS, EMU_SPCS_SAMPLERATE_48, EMU_SPCS_SOURCENUM_UNSPEC, emu_wrptr(), SPDIF_MODE_AC3, and SPDIF_MODE_PCM.
Referenced by emu_init(), and emumix_set_mode().
void emumix_set_volume | ( | struct emu_sc_info * | sc, |
int | mixer_idx, | ||
int | volume | ||
) |
Definition at line 2610 of file emu10kx.c.
References emumix_set_fxvol(), emu_sc_info::mixer_gpr, emu_sc_info::mixer_volcache, NUM_MIXERS, and RANGE.
Referenced by emu_ac97_write_emulation(), emu_dspmixer_set(), emu_dspmixer_setrecsrc(), and sysctl_emu_mixer_control().
|
static |
Definition at line 2565 of file emu10kx.c.
References l2l_df, l2l_f, and L2L_POINTS.
Referenced by emumix_set_fxvol().
MODULE_VERSION | ( | snd_emu10kx | , |
SND_EMU10KX_PREFVER | |||
) |
|
static |
Definition at line 1580 of file emu10kx.c.
References emumix_set_mode(), emu_sc_info::mode, MODE_ANALOG, MODE_DIGITAL, and req.
Referenced by emu_digitalswitch().
|
static |
Definition at line 1529 of file emu10kx.c.
References emumix_get_volume(), emumix_set_volume(), and req.
Referenced by emu_addefxmixer().
|
static |
Definition at line 2177 of file emu10kx.c.
Referenced by emu10kx_dev_init().
|
static |
Definition at line 549 of file emu10kx.c.
Referenced by emu_getcard().
|
static |
Definition at line 470 of file emu10kx.c.
Referenced by emu_getcard(), emu_pci_attach(), and emu_pci_probe().
|
static |
|
static |
|
static |
|
static |