FreeBSD kernel sound device code
|
#include <dev/sound/pcm/sound.h>
#include <dev/sound/pcm/ac97.h>
#include <dev/sound/pci/es137x.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/pcivar.h>
#include <sys/sysctl.h>
#include "mixer_if.h"
Go to the source code of this file.
Data Structures | |
struct | es_chinfo |
struct | es_info |
Macros | |
#define | MEM_MAP_REG 0x14 |
#define | ES1370_PCI_ID 0x50001274 |
#define | ES1371_PCI_ID 0x13711274 |
#define | ES1371_PCI_ID2 0x13713274 |
#define | CT5880_PCI_ID 0x58801274 |
#define | CT4730_PCI_ID 0x89381102 |
#define | ES1371REV_ES1371_A 0x02 |
#define | ES1371REV_ES1371_B 0x09 |
#define | ES1371REV_ES1373_8 0x08 |
#define | ES1371REV_ES1373_A 0x04 |
#define | ES1371REV_ES1373_B 0x06 |
#define | ES1371REV_CT5880_A 0x07 |
#define | CT5880REV_CT5880_C 0x02 |
#define | CT5880REV_CT5880_D 0x03 |
#define | CT5880REV_CT5880_E 0x04 |
#define | CT4730REV_CT4730_A 0x00 |
#define | ES_DEFAULT_BUFSZ 4096 |
#define | ES_DAC1 0 |
#define | ES_DAC2 1 |
#define | ES_ADC 2 |
#define | ES_NCHANS 3 |
#define | ES_DMA_SEGS_MIN 2 |
#define | ES_DMA_SEGS_MAX 256 |
#define | ES_BLK_MIN 64 |
#define | ES_BLK_ALIGN (~(ES_BLK_MIN - 1)) |
#define | ES1370_DAC1_MINSPEED 5512 |
#define | ES1370_DAC1_MAXSPEED 44100 |
#define | ES_FIXED_RATE(cfgv) (((cfgv) & 0xffff0000) >> 16) |
#define | ES_SET_FIXED_RATE(cfgv, nv) (((cfgv) & ~0xffff0000) | (((nv) & 0xffff) << 16)) |
#define | ES_SINGLE_PCM_MIX(cfgv) (((cfgv) & 0x8000) >> 15) |
#define | ES_SET_SINGLE_PCM_MIX(cfgv, nv) (((cfgv) & ~0x8000) | (((nv) ? 1 : 0) << 15)) |
#define | ES_DAC_FIRST(cfgv) (((cfgv) & 0x4000) >> 14) |
#define | ES_SET_DAC_FIRST(cfgv, nv) (((cfgv) & ~0x4000) | (((nv) & 0x1) << 14)) |
#define | ES_DAC_SECOND(cfgv) (((cfgv) & 0x2000) >> 13) |
#define | ES_SET_DAC_SECOND(cfgv, nv) (((cfgv) & ~0x2000) | (((nv) & 0x1) << 13)) |
#define | ES_NUMPLAY(cfgv) (((cfgv) & 0x1800) >> 11) |
#define | ES_SET_NUMPLAY(cfgv, nv) (((cfgv) & ~0x1800) | (((nv) & 0x3) << 11)) |
#define | ES_NUMREC(cfgv) (((cfgv) & 0x600) >> 9) |
#define | ES_SET_NUMREC(cfgv, nv) (((cfgv) & ~0x600) | (((nv) & 0x3) << 9)) |
#define | ES_IS_ES1370(cfgv) (((cfgv) & 0x100) >> 8) |
#define | ES_SET_IS_ES1370(cfgv, nv) (((cfgv) & ~0x100) | (((nv) ? 1 : 0) << 8)) |
#define | ES_GP(cfgv) ((cfgv) & 0xff) |
#define | ES_SET_GP(cfgv, nv) (((cfgv) & ~0xff) | ((nv) & 0xff)) |
#define | ES_DAC1_ENABLED(cfgv) |
#define | ES_DAC2_ENABLED(cfgv) |
#define | ES_DEFAULT_DAC_CFG 0 |
#define | ES_LOCK(sc) snd_mtxlock((sc)->lock) |
#define | ES_UNLOCK(sc) snd_mtxunlock((sc)->lock) |
#define | ES_LOCK_ASSERT(sc) snd_mtxassert((sc)->lock) |
#define | es_chan_active(es) |
Functions | |
SND_DECLARE_FILE ("$FreeBSD$") | |
static void | es_intr (void *) |
static uint32_t | es1371_wait_src_ready (struct es_info *) |
static void | es1371_src_write (struct es_info *, unsigned short, unsigned short) |
static unsigned int | es1371_adc_rate (struct es_info *, unsigned int, int) |
static unsigned int | es1371_dac_rate (struct es_info *, unsigned int, int) |
static int | es1371_init (struct es_info *) |
static int | es1370_init (struct es_info *) |
static int | es1370_wrcodec (struct es_info *, unsigned char, unsigned char) |
static __inline uint32_t | es_rd (struct es_info *es, int regno, int size) |
static __inline void | es_wr (struct es_info *es, int regno, uint32_t data, int size) |
static int | es1370_mixinit (struct snd_mixer *m) |
static int | es1370_mixset (struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) |
static uint32_t | es1370_mixsetrecsrc (struct snd_mixer *m, uint32_t src) |
MIXER_DECLARE (es1370_mixer) | |
static void * | eschan_init (kobj_t obj, void *devinfo, struct snd_dbuf *b, struct pcm_channel *c, int dir) |
static int | eschan_setformat (kobj_t obj, void *data, uint32_t format) |
static uint32_t | eschan1370_setspeed (kobj_t obj, void *data, uint32_t speed) |
static uint32_t | eschan1371_setspeed (kobj_t obj, void *data, uint32_t speed) |
static int | eschan_setfragments (kobj_t obj, void *data, uint32_t blksz, uint32_t blkcnt) |
static uint32_t | eschan_setblocksize (kobj_t obj, void *data, uint32_t blksz) |
static __inline int | es_poll_channel (struct es_chinfo *ch) |
static void | es_poll_callback (void *arg) |
static int | eschan_trigger (kobj_t obj, void *data, int go) |
static uint32_t | eschan_getptr (kobj_t obj, void *data) |
static struct pcmchan_caps * | eschan_getcaps (kobj_t obj, void *data) |
CHANNEL_DECLARE (eschan1370) | |
CHANNEL_DECLARE (eschan1371) | |
static int | es1371_wrcd (kobj_t obj, void *s, int addr, uint32_t data) |
static int | es1371_rdcd (kobj_t obj, void *s, int addr) |
AC97_DECLARE (es1371_ac97) | |
static unsigned int | es1371_src_read (struct es_info *es, unsigned short reg) |
static int | es_pci_probe (device_t dev) |
static int | sysctl_es137x_spdif_enable (SYSCTL_HANDLER_ARGS) |
static int | sysctl_es137x_latency_timer (SYSCTL_HANDLER_ARGS) |
static int | sysctl_es137x_fixed_rate (SYSCTL_HANDLER_ARGS) |
static int | sysctl_es137x_single_pcm_mixer (SYSCTL_HANDLER_ARGS) |
static int | sysctl_es_polling (SYSCTL_HANDLER_ARGS) |
static void | es_init_sysctls (device_t dev) |
static int | es_pci_attach (device_t dev) |
static int | es_pci_detach (device_t dev) |
DRIVER_MODULE (snd_es137x, pci, es_driver, pcm_devclass, 0, 0) | |
MODULE_DEPEND (snd_es137x, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER) | |
MODULE_VERSION (snd_es137x, 1) | |
Variables | |
static uint32_t | es_fmt [] |
static struct pcmchan_caps | es_caps = {4000, 48000, es_fmt, 0} |
struct { | |
unsigned volidx:4 | |
unsigned left:4 | |
unsigned right:4 | |
unsigned stereo:1 | |
unsigned recmask:13 | |
unsigned avail:1 | |
} | mixtable [SOUND_MIXER_NRDEVICES] |
static kobj_method_t | es1370_mixer_methods [] |
static kobj_method_t | eschan1370_methods [] |
static kobj_method_t | eschan1371_methods [] |
static kobj_method_t | es1371_ac97_methods [] |
static device_method_t | es_methods [] |
static driver_t | es_driver |
#define ES_BLK_ALIGN (~(ES_BLK_MIN - 1)) |
#define es_chan_active | ( | es | ) |
#define ES_DAC1_ENABLED | ( | cfgv | ) |
#define ES_DAC2_ENABLED | ( | cfgv | ) |
#define ES_FIXED_RATE | ( | cfgv | ) | (((cfgv) & 0xffff0000) >> 16) |
#define ES_LOCK | ( | sc | ) | snd_mtxlock((sc)->lock) |
#define ES_LOCK_ASSERT | ( | sc | ) | snd_mtxassert((sc)->lock) |
#define ES_SET_DAC_FIRST | ( | cfgv, | |
nv | |||
) | (((cfgv) & ~0x4000) | (((nv) & 0x1) << 14)) |
#define ES_SET_DAC_SECOND | ( | cfgv, | |
nv | |||
) | (((cfgv) & ~0x2000) | (((nv) & 0x1) << 13)) |
#define ES_SET_FIXED_RATE | ( | cfgv, | |
nv | |||
) | (((cfgv) & ~0xffff0000) | (((nv) & 0xffff) << 16)) |
#define ES_SET_GP | ( | cfgv, | |
nv | |||
) | (((cfgv) & ~0xff) | ((nv) & 0xff)) |
#define ES_SET_IS_ES1370 | ( | cfgv, | |
nv | |||
) | (((cfgv) & ~0x100) | (((nv) ? 1 : 0) << 8)) |
#define ES_SET_NUMPLAY | ( | cfgv, | |
nv | |||
) | (((cfgv) & ~0x1800) | (((nv) & 0x3) << 11)) |
#define ES_SET_NUMREC | ( | cfgv, | |
nv | |||
) | (((cfgv) & ~0x600) | (((nv) & 0x3) << 9)) |
#define ES_SET_SINGLE_PCM_MIX | ( | cfgv, | |
nv | |||
) | (((cfgv) & ~0x8000) | (((nv) ? 1 : 0) << 15)) |
#define ES_SINGLE_PCM_MIX | ( | cfgv | ) | (((cfgv) & 0x8000) >> 15) |
#define ES_UNLOCK | ( | sc | ) | snd_mtxunlock((sc)->lock) |
AC97_DECLARE | ( | es1371_ac97 | ) |
CHANNEL_DECLARE | ( | eschan1370 | ) |
CHANNEL_DECLARE | ( | eschan1371 | ) |
DRIVER_MODULE | ( | snd_es137x | , |
pci | , | ||
es_driver | , | ||
pcm_devclass | , | ||
0 | , | ||
0 | |||
) |
|
static |
Definition at line 959 of file es137x.c.
References CODEC_ADSEL, CODEC_CSEL, CODEC_MGAIN, CODEC_RES_PD, es_info::ctrl, CTRL_CDC_EN, CTRL_JYSTK_EN, CTRL_SERR_DIS, CTRL_SH_PCLKDIV, CTRL_SH_WTSRSEL, DAC2_SRTODIV, es_info::dev, DSP_DEFAULT_SPEED, ES1370_REG_CONTROL, ES1370_REG_SERIAL_CONTROL, es1370_wrcodec(), es_caps, ES_LOCK, ES_NUMPLAY, ES_SET_FIXED_RATE, ES_SET_IS_ES1370, ES_SET_SINGLE_PCM_MIX, ES_UNLOCK, es_wr(), es_info::escfg, pcmchan_caps::maxspeed, pcmchan_caps::minspeed, r, and es_info::sctrl.
Referenced by es_pci_attach().
|
static |
Definition at line 314 of file es137x.c.
References avail, ES_SINGLE_PCM_MIX, es_info::escfg, m, mix_getdevinfo(), mix_setdevs(), mix_setrecdevs(), mixtable, and recmask.
|
static |
Definition at line 348 of file es137x.c.
References avail, dev, es1370_wrcodec(), ES_DAC1_ENABLED, ES_LOCK, ES_SINGLE_PCM_MIX, ES_UNLOCK, es_info::escfg, left, m, mix_getdevinfo(), mixtable, r, right, and stereo.
|
static |
Definition at line 384 of file es137x.c.
References CODEC_LIMIX1, CODEC_LIMIX2, CODEC_OMIX1, CODEC_OMIX2, CODEC_RIMIX1, CODEC_RIMIX2, es1370_wrcodec(), ES_DAC1_ENABLED, ES_LOCK, ES_SINGLE_PCM_MIX, ES_UNLOCK, es_info::escfg, m, mix_getdevinfo(), mix_getrecdevs(), mixtable, and src.
|
static |
Definition at line 421 of file es137x.c.
References CODEC_INDEX_SHIFT, data, es_info::dev, ES1370_REG_CODEC, ES1370_REG_STATUS, ES_LOCK_ASSERT, es_rd(), es_wr(), and STAT_CSTAT.
Referenced by es1370_init(), es1370_mixset(), and es1370_mixsetrecsrc().
|
static |
Definition at line 1227 of file es137x.c.
References es1371_src_read(), es1371_src_write(), ES_LOCK_ASSERT, ES_SMPREG_ADC, ES_SMPREG_INT_REGS, ES_SMPREG_TRUNC_N, ES_SMPREG_VFREQ_FRAC, ES_SMPREG_VOL_ADC, n, rate, and set.
Referenced by es1371_init(), and eschan1371_setspeed().
|
static |
Definition at line 1267 of file es137x.c.
References ES1371_DIS_P1, ES1371_DIS_P2, ES1371_DIS_R1, ES1371_DIS_SRC, ES1371_REG_SMPRATE, es1371_src_read(), es1371_src_write(), es1371_wait_src_ready(), ES_DAC1, ES_LOCK_ASSERT, ES_SMPREG_DAC1, ES_SMPREG_DAC2, ES_SMPREG_INT_REGS, ES_SMPREG_VFREQ_FRAC, es_wr(), r, rate, and set.
Referenced by es1371_init(), and eschan1371_setspeed().
|
static |
Definition at line 1024 of file es137x.c.
References CT4730_PCI_ID, CT5880_PCI_ID, CT5880REV_CT5880_C, CT5880REV_CT5880_D, CT5880REV_CT5880_E, es_info::ctrl, CTRL_JYSTK_EN, es_info::dev, devid, ES1370_REG_CONTROL, ES1370_REG_SERIAL_CONTROL, ES1370_REG_STATUS, es1371_adc_rate(), es1371_dac_rate(), ES1371_DIS_SRC, ES1371_PCI_ID, ES1371_REG_CODEC, ES1371_REG_LEGACY, ES1371_REG_SMPRATE, es1371_src_write(), ES1371_SYNC_RES, es1371_wait_src_ready(), ES1371REV_CT5880_A, ES1371REV_ES1373_8, ES_ADC, ES_DAC1, ES_DAC2, ES_LOCK, ES_SET_IS_ES1370, ES_SMPREG_DAC1, ES_SMPREG_DAC2, ES_SMPREG_INT_REGS, ES_SMPREG_TRUNC_N, ES_SMPREG_VOL_ADC, ES_SMPREG_VOL_DAC1, ES_SMPREG_VOL_DAC2, ES_UNLOCK, es_wr(), es_info::escfg, es_info::num, revid, and es_info::sctrl.
Referenced by es_pci_attach().
|
static |
Definition at line 1150 of file es137x.c.
References addr, CODEC_PIDAT_MASK, CODEC_PIDAT_SHIFT, CODEC_POADD_MASK, CODEC_POADD_SHIFT, CODEC_PORD, CODEC_RDY, CODEC_WIP, ES1371_DIS_P1, ES1371_DIS_P2, ES1371_DIS_R1, ES1371_DIS_SRC, ES1371_REG_CODEC, ES1371_REG_SMPRATE, es1371_wait_src_ready(), es_rd(), and es_wr().
|
static |
Definition at line 1204 of file es137x.c.
References ES1371_DIS_P1, ES1371_DIS_P2, ES1371_DIS_R1, ES1371_DIS_SRC, ES1371_REG_SMPRATE, ES1371_SRC_RAM_ADDRO, ES1371_SRC_RAM_DATAI, es1371_wait_src_ready(), es_wr(), r, and reg.
Referenced by es1371_adc_rate(), and es1371_dac_rate().
|
static |
Definition at line 1216 of file es137x.c.
References data, ES1371_DIS_P1, ES1371_DIS_P2, ES1371_DIS_R1, ES1371_DIS_SRC, ES1371_REG_SMPRATE, ES1371_SRC_RAM_ADDRO, ES1371_SRC_RAM_DATAO, ES1371_SRC_RAM_WE, es1371_wait_src_ready(), es_wr(), r, and reg.
Referenced by es1371_adc_rate(), es1371_dac_rate(), and es1371_init().
|
static |
Definition at line 1296 of file es137x.c.
References es_info::dev, ES1371_REG_SMPRATE, ES1371_SRC_RAM_BUSY, es_rd(), and r.
Referenced by es1371_dac_rate(), es1371_init(), es1371_rdcd(), es1371_src_read(), es1371_src_write(), and es1371_wrcd().
|
static |
Definition at line 1112 of file es137x.c.
References addr, CODEC_POADD_MASK, CODEC_POADD_SHIFT, CODEC_PODAT_MASK, CODEC_PODAT_SHIFT, CODEC_WIP, data, ES1371_DIS_P1, ES1371_DIS_P2, ES1371_DIS_R1, ES1371_DIS_SRC, ES1371_REG_CODEC, ES1371_REG_SMPRATE, es1371_wait_src_ready(), es_rd(), and es_wr().
|
static |
Definition at line 1630 of file es137x.c.
References es_info::ch, es_chinfo::channel, CT5880_PCI_ID, CT5880REV_CT5880_C, CT5880REV_CT5880_D, CT5880REV_CT5880_E, dev, devid, ES1370_PCI_ID, ES1371_PCI_ID, ES1371REV_CT5880_A, ES1371REV_ES1373_8, ES_ADC, ES_DAC1, ES_DAC2, PCIR_LATTIMER, pcm_getdevinfo(), r, revid, sysctl_es137x_fixed_rate(), sysctl_es137x_latency_timer(), sysctl_es137x_single_pcm_mixer(), sysctl_es137x_spdif_enable(), and sysctl_es_polling().
Referenced by es_pci_attach().
|
static |
Definition at line 921 of file es137x.c.
References es_info::ch, es_chinfo::channel, chn_intr(), ES1370_REG_SERIAL_CONTROL, ES1370_REG_STATUS, ES_ADC, ES_DAC1, ES_DAC2, ES_LOCK, es_rd(), ES_UNLOCK, es_wr(), es_info::polling, es_info::sctrl, STAT_ADC, STAT_DAC1, STAT_DAC2, and STAT_INTR.
Referenced by es_pci_attach().
|
static |
Definition at line 1707 of file es137x.c.
References AC97_CREATE, ac97_destroy(), ac97_getmixerclass(), es_info::blkcnt, es_info::bufsz, CT4730_PCI_ID, CT5880_PCI_ID, es_info::dev, dev, devid, es1370_init(), ES1370_PCI_ID, es1371_init(), ES1371_PCI_ID, ES1371_PCI_ID2, ES_BLK_ALIGN, ES_BLK_MIN, ES_DAC1, ES_DAC2, ES_DAC2_ENABLED, ES_DAC_FIRST, ES_DAC_SECOND, ES_DEFAULT_BUFSZ, ES_DEFAULT_DAC_CFG, ES_DMA_SEGS_MAX, ES_DMA_SEGS_MIN, es_init_sysctls(), es_intr(), ES_SET_DAC_FIRST, ES_SET_DAC_SECOND, ES_SET_FIXED_RATE, ES_SET_GP, ES_SET_NUMPLAY, ES_SET_NUMREC, es_info::escfg, free, es_info::ih, es_info::irq, es_info::irqid, es_info::lock, MEM_MAP_REG, mixer_init(), es_info::parent_dmat, PCIR_BAR, pcm_addchan(), pcm_getbuffersize(), PCM_KLDSTRING, pcm_register(), pcm_setstatus(), PCMDIR_PLAY, PCMDIR_REC, es_info::poll_ticks, es_info::poll_timer, es_info::polling, es_info::reg, es_info::regid, es_info::regtype, es_info::sh, snd_mtxcreate(), snd_mtxfree(), snd_setup_intr(), SND_STATUSLEN, es_info::st, and status.
|
static |
Definition at line 1901 of file es137x.c.
References dev, ES_LOCK, ES_UNLOCK, free, es_info::ih, es_info::irq, es_info::irqid, es_info::lock, es_info::num, es_info::parent_dmat, pcm_getdevinfo(), pcm_unregister(), es_info::poll_timer, es_info::polling, r, es_info::reg, es_info::regid, es_info::regtype, and snd_mtxfree().
|
static |
Definition at line 1318 of file es137x.c.
References CT4730_PCI_ID, CT4730REV_CT4730_A, CT5880_PCI_ID, CT5880REV_CT5880_C, CT5880REV_CT5880_D, CT5880REV_CT5880_E, dev, ES1370_PCI_ID, ES1371_PCI_ID, ES1371_PCI_ID2, ES1371REV_CT5880_A, ES1371REV_ES1371_A, ES1371REV_ES1371_B, ES1371REV_ES1373_8, ES1371REV_ES1373_A, and ES1371REV_ES1373_B.
|
static |
Definition at line 724 of file es137x.c.
References es_info::ch, es_chinfo::channel, chn_intr(), es_chan_active, ES_LOCK, ES_NCHANS, es_poll_callback(), es_poll_channel(), ES_UNLOCK, es_info::poll_timer, es_info::polling, and trigger.
Referenced by es_poll_callback(), and eschan_trigger().
|
static |
Definition at line 689 of file es137x.c.
References es_chinfo::active, es_chinfo::blkcnt, es_chinfo::blksz, blksz, es_info::ch, es_chinfo::channel, es_chinfo::dir, ES1370_REG_ADC_FRAMECNT, ES1370_REG_DAC1_FRAMECNT, ES1370_REG_DAC2_FRAMECNT, ES1370_REG_MEMPAGE, ES_DAC1, es_rd(), es_wr(), es_chinfo::index, es_chinfo::parent, PCMDIR_PLAY, es_chinfo::prevptr, es_chinfo::ptr, and reg.
Referenced by es_poll_callback().
|
static |
Definition at line 279 of file es137x.c.
References regno, es_info::sh, size, and es_info::st.
Referenced by es1370_wrcodec(), es1371_rdcd(), es1371_wait_src_ready(), es1371_wrcd(), es_intr(), es_poll_channel(), eschan_getptr(), and sysctl_es137x_spdif_enable().
|
static |
Definition at line 294 of file es137x.c.
References data, regno, es_info::sh, size, and es_info::st.
Referenced by es1370_init(), es1370_wrcodec(), es1371_dac_rate(), es1371_init(), es1371_rdcd(), es1371_src_read(), es1371_src_write(), es1371_wrcd(), es_intr(), es_poll_channel(), eschan1370_setspeed(), eschan_getptr(), eschan_init(), eschan_setformat(), eschan_trigger(), sysctl_es137x_fixed_rate(), and sysctl_es137x_spdif_enable().
|
static |
Definition at line 570 of file es137x.c.
References es_chinfo::caps, es_info::ch, es_info::ctrl, CTRL_SH_PCLKDIV, CTRL_SH_WTSRSEL, DAC2_SRTODIV, data, ES1370_REG_CONTROL, ES_DAC1, ES_LOCK, ES_UNLOCK, es_wr(), es_chinfo::index, pcmchan_caps::maxspeed, pcmchan_caps::minspeed, es_chinfo::parent, and speed.
|
static |
Definition at line 615 of file es137x.c.
References es_info::ch, data, es_chinfo::dir, es1371_adc_rate(), es1371_dac_rate(), ES_LOCK, ES_UNLOCK, es_chinfo::index, es_chinfo::parent, PCMDIR_PLAY, and speed.
|
static |
Definition at line 885 of file es137x.c.
References es_chinfo::caps, and data.
|
static |
Definition at line 855 of file es137x.c.
References es_info::ch, data, es_chinfo::dir, ES1370_REG_ADC_FRAMECNT, ES1370_REG_DAC1_FRAMECNT, ES1370_REG_DAC2_FRAMECNT, ES1370_REG_MEMPAGE, ES_BLK_ALIGN, ES_DAC1, ES_LOCK, es_rd(), ES_UNLOCK, es_wr(), es_chinfo::index, es_chinfo::parent, PCMDIR_PLAY, es_info::polling, es_chinfo::ptr, and reg.
|
static |
Definition at line 444 of file es137x.c.
References b, es_chinfo::blkcnt, es_info::blkcnt, es_chinfo::blksz, es_chinfo::buffer, es_chinfo::bufsz, es_info::bufsz, c, es_chinfo::caps, es_info::ch, es_chinfo::channel, es_info::dev, devinfo, es_chinfo::dir, dir, ES1370_DAC1_MAXSPEED, ES1370_DAC1_MINSPEED, ES1370_REG_ADC_FRAMEADR, ES1370_REG_ADC_FRAMECNT, ES1370_REG_DAC1_FRAMEADR, ES1370_REG_DAC1_FRAMECNT, ES1370_REG_DAC2_FRAMEADR, ES1370_REG_DAC2_FRAMECNT, ES1370_REG_MEMPAGE, ES_ADC, es_caps, ES_DAC1, ES_DAC2, ES_DAC_FIRST, ES_DAC_SECOND, ES_FIXED_RATE, ES_GP, ES_IS_ES1370, ES_LOCK, ES_SET_GP, ES_UNLOCK, es_wr(), es_info::escfg, es_chinfo::index, pcmchan_caps::maxspeed, pcmchan_caps::minspeed, es_chinfo::num, es_info::num, es_chinfo::parent, es_info::parent_dmat, PCMDIR_PLAY, sndbuf_alloc(), and sndbuf_getbufaddr().
|
static |
Definition at line 674 of file es137x.c.
References es_info::blkcnt, es_chinfo::blksz, blksz, es_info::ch, data, eschan_setfragments(), and es_chinfo::parent.
|
static |
Definition at line 536 of file es137x.c.
References AFMT_CHANNEL, es_info::ch, data, es_chinfo::dir, ES1370_REG_SERIAL_CONTROL, ES_DAC1, ES_LOCK, ES_UNLOCK, es_wr(), es_chinfo::fmt, format, es_chinfo::index, es_chinfo::parent, PCMDIR_PLAY, es_info::sctrl, SCTRL_P1SEB, SCTRL_P1SMB, SCTRL_P2SEB, SCTRL_P2SMB, SCTRL_R1SEB, and SCTRL_R1SMB.
|
static |
Definition at line 635 of file es137x.c.
References es_chinfo::blkcnt, blkcnt, es_chinfo::blksz, blksz, es_chinfo::buffer, es_chinfo::bufsz, es_info::ch, data, es_info::dev, ES_BLK_ALIGN, ES_BLK_MIN, ES_DMA_SEGS_MAX, ES_DMA_SEGS_MIN, es_chinfo::parent, sndbuf_getblkcnt(), sndbuf_getblksz(), sndbuf_getmaxsize(), sndbuf_getsize(), and sndbuf_resize().
Referenced by eschan_setblocksize().
|
static |
Definition at line 757 of file es137x.c.
References es_chinfo::active, AFMT_16BIT, AFMT_CHANNEL, b, es_chinfo::blksz, es_chinfo::buffer, es_chinfo::bufsz, es_info::ch, es_info::ctrl, CTRL_ADC_EN, CTRL_DAC1_EN, CTRL_DAC2_EN, data, es_chinfo::dir, ES1370_REG_ADC_FRAMECNT, ES1370_REG_ADC_SCOUNT, ES1370_REG_CONTROL, ES1370_REG_DAC1_FRAMECNT, ES1370_REG_DAC1_SCOUNT, ES1370_REG_DAC2_FRAMECNT, ES1370_REG_DAC2_SCOUNT, ES1370_REG_MEMPAGE, ES1370_REG_SERIAL_CONTROL, es_chan_active, ES_DAC1, ES_LOCK, es_poll_callback(), ES_UNLOCK, es_wr(), es_chinfo::fmt, go, es_chinfo::index, es_chinfo::parent, PCMDIR_PLAY, PCMTRIG_COMMON, PCMTRIG_START, es_info::poll_ticks, es_info::poll_timer, es_info::polling, es_chinfo::prevptr, es_chinfo::ptr, es_info::sctrl, SCTRL_P1INTEN, SCTRL_P1LOOPSEL, SCTRL_P1PAUSE, SCTRL_P1SCTRLD, SCTRL_P2DACSEN, SCTRL_P2ENDINC, SCTRL_P2INTEN, SCTRL_P2LOOPSEL, SCTRL_P2PAUSE, SCTRL_P2STINC, SCTRL_R1INTEN, SCTRL_SH_P2ENDINC, and sndbuf_getalign().
MIXER_DECLARE | ( | es1370_mixer | ) |
MODULE_DEPEND | ( | snd_es137x | , |
sound | , | ||
SOUND_MINVER | , | ||
SOUND_PREFVER | , | ||
SOUND_MAXVER | |||
) |
MODULE_VERSION | ( | snd_es137x | , |
1 | |||
) |
SND_DECLARE_FILE | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 1462 of file es137x.c.
References es_chinfo::caps, es_info::ch, es_info::ctrl, CTRL_ADC_EN, CTRL_DAC2_EN, CTRL_SH_PCLKDIV, DAC2_SRTODIV, dev, ES1370_REG_CONTROL, ES_ADC, es_caps, ES_DAC2, ES_FIXED_RATE, ES_LOCK, ES_SET_FIXED_RATE, ES_UNLOCK, es_wr(), es_info::escfg, pcmchan_caps::maxspeed, pcmchan_caps::minspeed, pcm_getdevinfo(), req, and val.
Referenced by es_init_sysctls().
|
static |
Definition at line 1435 of file es137x.c.
References dev, ES_LOCK, ES_UNLOCK, PCIR_LATTIMER, pcm_getdevinfo(), req, and val.
Referenced by es_init_sysctls().
|
static |
Definition at line 1510 of file es137x.c.
References es_info::ctrl, CTRL_ADC_EN, CTRL_DAC1_EN, CTRL_DAC2_EN, dev, snddev_info::devinfo, ES_LOCK, ES_SET_SINGLE_PCM_MIX, ES_SINGLE_PCM_MIX, ES_UNLOCK, es_info::escfg, snd_mixer::level, m, mix_get(), mix_getdevs(), mix_getrecdevs(), mix_getrecsrc(), mix_set(), mix_setdevs(), mix_setrecdevs(), mix_setrecsrc(), mixer_busy(), snddev_info::mixer_dev, PCM_ACQUIRE_QUICK, PCM_REGISTERED, PCM_RELEASE_QUICK, snd_mixer::recsrc, req, set, and val.
Referenced by es_init_sysctls().
|
static |
Definition at line 1397 of file es137x.c.
References es_info::ctrl, dev, ENABLE_SPDIF, ES1370_REG_CONTROL, ES1370_REG_STATUS, ES_LOCK, es_rd(), ES_UNLOCK, es_wr(), pcm_getdevinfo(), r, RECEN_B, req, and SPDIFEN_B.
Referenced by es_init_sysctls().
|
static |
Definition at line 1595 of file es137x.c.
References dev, es_chan_active, ES_LOCK, ES_UNLOCK, pcm_getdevinfo(), es_info::polling, req, and val.
Referenced by es_init_sysctls().
unsigned avail |
Definition at line 264 of file es137x.c.
Referenced by es1370_mixinit(), and es1370_mixset().
|
static |
|
static |
|
static |
Definition at line 256 of file es137x.c.
Referenced by es1370_init(), eschan_init(), and sysctl_es137x_fixed_rate().
|
static |
|
static |
|
static |
|
static |
|
static |
unsigned left |
Definition at line 260 of file es137x.c.
Referenced by ac97_setmixer(), ac97mix_set(), ad1816mix_set(), alsmix_set(), burgundy_set(), chn_setvolume(), chn_setvolume_multi(), chn_syncstate(), cmimix_set(), dsp_ioctl_channel(), emu_ac97_write_emulation(), emu_dspmixer_set(), emu_efxmixer_set(), envy24_delta_ak4524_setvolume(), envy24_route(), envy24ht_spi_setvolume(), envy24htmixer_set(), envy24mixer_set(), es1370_mixset(), essmix_set(), hdaa_audio_ctl_amp_set(), hdaa_audio_ctl_amp_set_internal(), hdaa_audio_ctl_dest_volume(), hdaa_audio_ctl_dev_set(), hdaa_audio_ctl_ossmixer_set(), hdaa_audio_ctl_source_volume(), hdspemixer_set(), mix_set(), mix_set_locked(), mixer_hwvol_step_locked(), mixer_ioctl_channel(), mixer_set_softpcmvol(), mss_mixer_set(), mssmix_set(), onyx_set(), sb16mix_set(), sbmix_set(), sbpromix_set(), screamer_set(), snapper_set(), spicds_set(), sv_gain(), sv_mix_set(), tumbler_set(), ua_mixer_set(), uaudio_mixer_set(), ymmix_set(), and z_resampler_feed().
const struct { ... } mixtable[SOUND_MIXER_NRDEVICES] |
Referenced by es1370_mixinit(), es1370_mixset(), and es1370_mixsetrecsrc().
unsigned recmask |
Definition at line 263 of file es137x.c.
Referenced by emu_dspmixer_setrecsrc(), es1370_mixinit(), and hdaa_audio_ctl_ossmixer_init().
unsigned right |
Definition at line 261 of file es137x.c.
Referenced by ac97_setmixer(), ac97mix_set(), ad1816mix_set(), alsmix_set(), burgundy_set(), chn_setvolume(), chn_setvolume_multi(), chn_syncstate(), cmimix_set(), dsp_ioctl_channel(), emu_ac97_write_emulation(), emu_dspmixer_set(), emu_efxmixer_set(), envy24_delta_ak4524_setvolume(), envy24_route(), envy24ht_spi_setvolume(), envy24htmixer_set(), envy24mixer_set(), es1370_mixset(), essmix_set(), hdaa_audio_ctl_amp_set(), hdaa_audio_ctl_amp_set_internal(), hdaa_audio_ctl_dest_volume(), hdaa_audio_ctl_dev_set(), hdaa_audio_ctl_ossmixer_set(), hdaa_audio_ctl_source_volume(), hdspemixer_set(), mix_set(), mix_set_locked(), mixer_hwvol_step_locked(), mixer_ioctl_channel(), mixer_set_softpcmvol(), mss_mixer_set(), mssmix_set(), onyx_set(), sb16mix_set(), sbpromix_set(), screamer_set(), snapper_set(), spicds_set(), sv_gain(), sv_mix_set(), tumbler_set(), ua_mixer_set(), uaudio_mixer_set(), and ymmix_set().
unsigned stereo |
Definition at line 262 of file es137x.c.
Referenced by cmimix_set(), cmimix_setrecsrc(), es1370_mixset(), ess_setupch(), sb_speed(), sb_start(), and sv_gain().