FreeBSD kernel sound device code
|
#include <dev/sound/pcm/sound.h>
#include <dev/sound/pcm/ac97.h>
#include <dev/sound/pci/spicds.h>
#include <dev/sound/pci/envy24.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/pcivar.h>
#include "mixer_if.h"
Go to the source code of this file.
Data Structures | |
struct | envy24_sample |
struct | sc_chinfo |
struct | codec_entry |
struct | cfg_info |
struct | sc_info |
struct | envy24_emldma |
struct | envy24_delta_ak4524_codec |
Macros | |
#define | ENVY24_PLAY_CHNUM 10 |
#define | ENVY24_REC_CHNUM 12 |
#define | ENVY24_PLAY_BUFUNIT (4 /* byte/sample */ * 10 /* channel */) |
#define | ENVY24_REC_BUFUNIT (4 /* byte/sample */ * 12 /* channel */) |
#define | ENVY24_SAMPLE_NUM 4096 |
#define | ENVY24_TIMEOUT 1000 |
#define | ENVY24_DEFAULT_FORMAT SND_FORMAT(AFMT_S16_LE, 2, 0) |
#define | ENVY24_NAMELEN 32 |
#define | SDA_GPIO 0x10 |
#define | SCL_GPIO 0x20 |
Typedefs | |
typedef struct envy24_sample | sample32_t |
Functions | |
SND_DECLARE_FILE ("$FreeBSD$") | |
static | MALLOC_DEFINE (M_ENVY24, "envy24", "envy24 audio") |
static void | envy24_p8u (struct sc_chinfo *) |
static void | envy24_p16sl (struct sc_chinfo *) |
static void | envy24_p32sl (struct sc_chinfo *) |
static void | envy24_r16sl (struct sc_chinfo *) |
static void | envy24_r32sl (struct sc_chinfo *) |
static void * | envy24chan_init (kobj_t, void *, struct snd_dbuf *, struct pcm_channel *, int) |
static int | envy24chan_setformat (kobj_t, void *, u_int32_t) |
static u_int32_t | envy24chan_setspeed (kobj_t, void *, u_int32_t) |
static u_int32_t | envy24chan_setblocksize (kobj_t, void *, u_int32_t) |
static int | envy24chan_trigger (kobj_t, void *, int) |
static u_int32_t | envy24chan_getptr (kobj_t, void *) |
static struct pcmchan_caps * | envy24chan_getcaps (kobj_t, void *) |
static int | envy24mixer_init (struct snd_mixer *) |
static int | envy24mixer_reinit (struct snd_mixer *) |
static int | envy24mixer_uninit (struct snd_mixer *) |
static int | envy24mixer_set (struct snd_mixer *, unsigned, unsigned, unsigned) |
static u_int32_t | envy24mixer_setrecsrc (struct snd_mixer *, u_int32_t) |
static void * | envy24_delta_ak4524_create (device_t, void *, int, int) |
static void | envy24_delta_ak4524_destroy (void *) |
static void | envy24_delta_ak4524_init (void *) |
static void | envy24_delta_ak4524_reinit (void *) |
static void | envy24_delta_ak4524_setvolume (void *, int, unsigned int, unsigned int) |
static u_int32_t | envy24_rdcs (struct sc_info *sc, int regno, int size) |
static void | envy24_wrcs (struct sc_info *sc, int regno, u_int32_t data, int size) |
static u_int32_t | envy24_rdmt (struct sc_info *sc, int regno, int size) |
static void | envy24_wrmt (struct sc_info *sc, int regno, u_int32_t data, int size) |
static u_int32_t | envy24_rdci (struct sc_info *sc, int regno) |
static void | envy24_wrci (struct sc_info *sc, int regno, u_int32_t data) |
static int | envy24_rdi2c (struct sc_info *sc, u_int32_t dev, u_int32_t addr) |
static int | envy24_rdrom (struct sc_info *sc, u_int32_t addr) |
static struct cfg_info * | envy24_rom2cfg (struct sc_info *sc) |
static void | envy24_cfgfree (struct cfg_info *cfg) |
static int | envy24_slavecd (struct sc_info *sc) |
static u_int32_t | envy24_gpiord (struct sc_info *sc) |
static void | envy24_gpiowr (struct sc_info *sc, u_int32_t data) |
static void | envy24_gpiosetmask (struct sc_info *sc, u_int32_t mask) |
static void | envy24_gpiosetdir (struct sc_info *sc, u_int32_t dir) |
static void | envy24_gpio_i2c_ctl (void *codec, unsigned int scl, unsigned int sda) |
static void | i2c_wrbit (void *codec, void(*ctrl)(void *, unsigned int, unsigned int), int bit) |
static void | i2c_start (void *codec, void(*ctrl)(void *, unsigned int, unsigned int)) |
static void | i2c_stop (void *codec, void(*ctrl)(void *, unsigned int, unsigned int)) |
static void | i2c_ack (void *codec, void(*ctrl)(void *, unsigned int, unsigned int)) |
static void | i2c_wr (void *codec, void(*ctrl)(void *, unsigned int, unsigned int), u_int32_t dev, int reg, u_int8_t val) |
static void | envy24_delta_ak4524_ctl (void *codec, unsigned int cs, unsigned int cclk, unsigned int cdti) |
static u_int32_t | envy24_setspeed (struct sc_info *sc, u_int32_t speed) |
static void | envy24_setvolume (struct sc_info *sc, unsigned ch) |
static void | envy24_mutevolume (struct sc_info *sc, unsigned ch) |
static u_int32_t | envy24_gethwptr (struct sc_info *sc, int dir) |
static void | envy24_updintr (struct sc_info *sc, int dir) |
static int | envy24_checkintr (struct sc_info *sc, int dir) |
static void | envy24_start (struct sc_info *sc, int dir) |
static void | envy24_stop (struct sc_info *sc, int dir) |
static int | envy24_route (struct sc_info *sc, int dac, int class, int adc, int rev) |
static int | envy24chan_free (kobj_t obj, void *data) |
CHANNEL_DECLARE (envy24chan) | |
MIXER_DECLARE (envy24mixer) | |
static void | envy24_intr (void *p) |
static int | envy24_pci_probe (device_t dev) |
static void | envy24_dmapsetmap (void *arg, bus_dma_segment_t *segs, int nseg, int error) |
static void | envy24_dmarsetmap (void *arg, bus_dma_segment_t *segs, int nseg, int error) |
static void | envy24_dmafree (struct sc_info *sc) |
static int | envy24_dmainit (struct sc_info *sc) |
static void | envy24_putcfg (struct sc_info *sc) |
static int | envy24_init (struct sc_info *sc) |
static int | envy24_alloc_resource (struct sc_info *sc) |
static int | envy24_pci_attach (device_t dev) |
static int | envy24_pci_detach (device_t dev) |
DRIVER_MODULE (snd_envy24, pci, envy24_driver, pcm_devclass, 0, 0) | |
MODULE_DEPEND (snd_envy24, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER) | |
MODULE_DEPEND (snd_envy24, snd_spicds, 1, 1, 1) | |
MODULE_VERSION (snd_envy24, 1) | |
Variables | |
static unsigned | envy24_chanmap [ENVY24_CHAN_NUM] |
static int | envy24_mixmap [] |
static u_int32_t | envy24_speed [] |
static struct codec_entry | delta_codec |
static struct cfg_info | cfg_table [] |
static u_int32_t | envy24_recfmt [] |
static struct pcmchan_caps | envy24_reccaps = {8000, 96000, envy24_recfmt, 0} |
static u_int32_t | envy24_playfmt [] |
static struct pcmchan_caps | envy24_playcaps = {8000, 96000, envy24_playfmt, 0} |
static struct envy24_emldma | envy24_pemltab [] |
static struct envy24_emldma | envy24_remltab [] |
struct { | |
u_int32_t speed | |
u_int32_t code | |
} | envy24_speedtab [] |
static kobj_method_t | envy24chan_methods [] |
static kobj_method_t | envy24mixer_methods [] |
static device_method_t | envy24_methods [] |
static driver_t | envy24_driver |
#define ENVY24_DEFAULT_FORMAT SND_FORMAT(AFMT_S16_LE, 2, 0) |
#define ENVY24_PLAY_BUFUNIT (4 /* byte/sample */ * 10 /* channel */) |
#define ENVY24_REC_BUFUNIT (4 /* byte/sample */ * 12 /* channel */) |
typedef struct envy24_sample sample32_t |
CHANNEL_DECLARE | ( | envy24chan | ) |
DRIVER_MODULE | ( | snd_envy24 | , |
pci | , | ||
envy24_driver | , | ||
pcm_devclass | , | ||
0 | , | ||
0 | |||
) |
|
static |
Definition at line 2484 of file envy24.c.
References BUS_SPACE_MAXADDR_ENVY24, BUS_SPACE_MAXSIZE_ENVY24, sc_info::cs, sc_info::csh, sc_info::csid, sc_info::cst, sc_info::ddma, sc_info::ddmah, sc_info::ddmaid, sc_info::ddmat, sc_info::dev, sc_info::dmat, sc_info::ds, sc_info::dsh, sc_info::dsid, sc_info::dst, envy24_intr(), sc_info::ih, sc_info::irq, sc_info::irqid, sc_info::mt, sc_info::mth, sc_info::mtid, sc_info::mtt, PCIR_CCS, PCIR_DDMA, PCIR_DS, PCIR_MT, and snd_setup_intr().
Referenced by envy24_pci_attach().
|
static |
Definition at line 628 of file envy24.c.
References cfg_info::free, and free.
Referenced by envy24_pci_attach(), and envy24_pci_detach().
|
static |
Definition at line 1273 of file envy24.c.
References sc_info::dev, dir, ENVY24_MT_INT, ENVY24_MT_INT_PMASK, ENVY24_MT_INT_PSTAT, ENVY24_MT_INT_RMASK, ENVY24_MT_INT_RSTAT, envy24_rdmt(), envy24_wrmt(), intr, mask, and PCMDIR_PLAY.
Referenced by envy24_intr().
|
static |
Definition at line 931 of file envy24.c.
References sc_info::adc, sc_info::dac, sc_info::dev, dev, envy24_delta_ak4524_codec::dir, dir, envy24_delta_ak4524_ctl(), free, envy24_delta_ak4524_codec::info, envy24_delta_ak4524_codec::num, envy24_delta_ak4524_codec::parent, PCMDIR_PLAY, PCMDIR_REC, and spicds_create().
|
static |
Definition at line 913 of file envy24.c.
References envy24_delta_ak4524_codec::cclk, envy24_delta_ak4524_codec::cdti, envy24_delta_ak4524_codec::cs, data, sc_info::dev, envy24_gpiord(), envy24_gpiowr(), and envy24_delta_ak4524_codec::parent.
Referenced by envy24_delta_ak4524_create().
|
static |
Definition at line 963 of file envy24.c.
References sc_info::adc, sc_info::dac, sc_info::dev, envy24_delta_ak4524_codec::dir, free, envy24_delta_ak4524_codec::info, envy24_delta_ak4524_codec::num, envy24_delta_ak4524_codec::parent, PCMDIR_PLAY, and spicds_destroy().
|
static |
Definition at line 985 of file envy24.c.
References AK452X_DVC_DEMOFF, AK452X_FORMAT_1X, AK452X_FORMAT_256FSN, AK452X_FORMAT_I2S, cfg_info::cclk, envy24_delta_ak4524_codec::cclk, cfg_info::cdti, envy24_delta_ak4524_codec::cdti, sc_info::cfg, cfg_info::cif, cfg_info::cs, envy24_delta_ak4524_codec::cs, sc_info::dev, ENVY24_GPIO_AK4524_CCLK, ENVY24_GPIO_AK4524_CS0, ENVY24_GPIO_AK4524_CS1, ENVY24_GPIO_CS8414_STATUS, envy24_gpio_i2c_ctl(), envy24_gpiosetdir(), envy24_gpiosetmask(), i2c_wr(), envy24_delta_ak4524_codec::info, envy24_delta_ak4524_codec::num, envy24_delta_ak4524_codec::parent, PCA9554_DIR, PCA9554_I2CDEV, PCA9554_OUT, spicds_init(), spicds_setcif(), spicds_setdvc(), spicds_setformat(), spicds_settype(), cfg_info::subdevice, cfg_info::subvendor, and cfg_info::type.
|
static |
Definition at line 1040 of file envy24.c.
References sc_info::dev, envy24_delta_ak4524_codec::info, envy24_delta_ak4524_codec::parent, and spicds_reinit().
|
static |
Definition at line 1053 of file envy24.c.
References sc_info::dev, dir, envy24_delta_ak4524_codec::info, left, envy24_delta_ak4524_codec::parent, right, and spicds_set().
|
static |
Definition at line 2204 of file envy24.c.
References sc_info::dev, sc_info::dmat, sc_info::paddr, sc_info::pbuf, sc_info::pmap, sc_info::raddr, sc_info::rbuf, and sc_info::rmap.
Referenced by envy24_dmainit(), envy24_pci_attach(), and envy24_pci_detach().
|
static |
Definition at line 2239 of file envy24.c.
References sc_info::blk, sc_info::dev, sc_info::dmat, envy24_dmafree(), envy24_dmapsetmap(), envy24_dmarsetmap(), ENVY24_MT_PADDR, ENVY24_MT_PCNT, ENVY24_MT_RADDR, ENVY24_MT_RCNT, ENVY24_PLAY_BUFUNIT, envy24_rdmt(), ENVY24_REC_BUFUNIT, ENVY24_SAMPLE_NUM, envy24_wrmt(), sc_info::paddr, sc_info::pbuf, sc_info::pmap, sc_info::psize, sc_info::raddr, sc_info::rbuf, sc_info::rmap, and sc_info::rsize.
Referenced by envy24_init().
|
static |
Definition at line 2170 of file envy24.c.
References sc_info::dev, sc_info::paddr, and sc_info::pmap.
Referenced by envy24_dmainit().
|
static |
Definition at line 2187 of file envy24.c.
References sc_info::dev, sc_info::raddr, and sc_info::rmap.
Referenced by envy24_dmainit().
|
static |
Definition at line 1173 of file envy24.c.
References sc_info::dev, dir, ENVY24_MT_PCNT, ENVY24_MT_RCNT, ENVY24_PLAY_BUFUNIT, envy24_rdmt(), ENVY24_REC_BUFUNIT, PCMDIR_PLAY, sc_info::psize, regno, and sc_info::rsize.
Referenced by envy24chan_getptr(), and envy24chan_trigger().
|
static |
Definition at line 809 of file envy24.c.
References data, sc_info::dev, envy24_gpiord(), envy24_gpiowr(), envy24_delta_ak4524_codec::parent, SCL_GPIO, and SDA_GPIO.
Referenced by envy24_delta_ak4524_init().
|
static |
Definition at line 750 of file envy24.c.
References ENVY24_CCI_GPIODAT, and envy24_rdci().
Referenced by envy24_delta_ak4524_ctl(), and envy24_gpio_i2c_ctl().
|
static |
Definition at line 790 of file envy24.c.
References dir, ENVY24_CCI_GPIOCTL, and envy24_wrci().
Referenced by envy24_delta_ak4524_init(), and envy24_init().
|
static |
Definition at line 775 of file envy24.c.
References ENVY24_CCI_GPIOMASK, envy24_wrci(), and mask.
Referenced by envy24_delta_ak4524_init(), and envy24_init().
|
static |
Definition at line 756 of file envy24.c.
References data, sc_info::dev, ENVY24_CCI_GPIODAT, and envy24_wrci().
Referenced by envy24_delta_ak4524_ctl(), envy24_gpio_i2c_ctl(), and envy24_init().
|
static |
Definition at line 2387 of file envy24.c.
References cfg_info::acl, sc_info::adc, sc_info::adcn, sc_info::caps, sc_info::cfg, cfg_table, cfg_info::codec, codec_entry::create, sc_info::dac, sc_info::dacn, data, sc_info::dev, ENVY24_CCS_CTL, ENVY24_CCS_CTL_NATIVE, ENVY24_CCS_CTL_RESET, ENVY24_CCS_IMASK, ENVY24_CCS_IMASK_PMT, envy24_dmainit(), envy24_gpiosetdir(), envy24_gpiosetmask(), envy24_gpiowr(), envy24_playfmt, envy24_putcfg(), envy24_rdcs(), envy24_recfmt, envy24_rom2cfg(), envy24_route(), ENVY24_ROUTE_CLASS_DMA, ENVY24_ROUTE_CLASS_MIX, ENVY24_ROUTE_DAC_1, ENVY24_ROUTE_DAC_SPDIF, envy24_wrcs(), pcmchan_caps::fmtlist, cfg_info::gpiodir, cfg_info::gpiomask, cfg_info::gpiostate, cfg_info::i2s, codec_entry::init, sc_info::intr, PCIM_LAC_DISABLE, PCIM_SCFG_ADC, PCIM_SCFG_DAC, PCIR_ACL, PCIR_I2S, PCIR_LAC, PCIR_SCFG, PCIR_SPDIF, PCMDIR_PLAY, PCMDIR_REC, sc_info::run, cfg_info::scfg, cfg_info::spdif, sc_info::speed, cfg_info::subdevice, and cfg_info::subvendor.
Referenced by envy24_pci_attach().
|
static |
Definition at line 2068 of file envy24.c.
References sc_chinfo::blk, sc_info::blk, sc_info::chan, sc_chinfo::channel, chn_intr(), sc_info::dev, ENVY24_CHAN_PLAY_DAC1, ENVY24_CHAN_PLAY_SPDIF, ENVY24_CHAN_REC_ADC1, ENVY24_CHAN_REC_SPDIF, envy24_checkintr(), ENVY24_MT_PCNT, ENVY24_MT_RCNT, envy24_rdmt(), envy24_updintr(), feed, sc_info::intr, sc_info::lock, PCMDIR_PLAY, PCMDIR_REC, sc_info::psize, sc_info::rsize, sc_chinfo::run, snd_mtxlock, and snd_mtxunlock.
Referenced by envy24_alloc_resource().
|
static |
Definition at line 1158 of file envy24.c.
References sc_info::dev, ENVY24_MT_VOLIDX, ENVY24_MT_VOLUME, ENVY24_VOL_MUTE, and envy24_wrmt().
Referenced by envy24chan_trigger().
|
static |
Definition at line 1435 of file envy24.c.
References sc_chinfo::buffer, envy24_sample::buffer, sc_chinfo::data, data, sc_info::dev, ENVY24_PLAY_CHNUM, sc_chinfo::num, sc_chinfo::offset, sc_chinfo::parent, sc_info::pbuf, sc_chinfo::size, slot, sndbuf_getready(), sndbuf_getreadyptr(), and src.
|
static |
Definition at line 1405 of file envy24.c.
References sc_chinfo::buffer, envy24_sample::buffer, sc_chinfo::data, data, ENVY24_PLAY_CHNUM, sc_chinfo::num, sc_chinfo::offset, sc_chinfo::parent, sc_info::pbuf, sc_chinfo::size, slot, sndbuf_getready(), sndbuf_getreadyptr(), and src.
|
static |
Definition at line 1480 of file envy24.c.
References sc_chinfo::buffer, envy24_sample::buffer, sc_chinfo::data, data, ENVY24_PLAY_CHNUM, sc_chinfo::num, sc_chinfo::offset, sc_chinfo::parent, sc_info::pbuf, sc_chinfo::size, slot, sndbuf_getready(), sndbuf_getreadyptr(), and src.
|
static |
Definition at line 2549 of file envy24.c.
References sc_info::adc, sc_info::adcn, sc_info::cfg, sc_info::chnum, cfg_info::codec, sc_info::cs, sc_info::csid, sc_info::dac, sc_info::dacn, sc_info::ddma, sc_info::ddmaid, codec_entry::destroy, sc_info::dev, dev, sc_info::dmat, sc_info::ds, sc_info::dsid, envy24_alloc_resource(), envy24_cfgfree(), envy24_dmafree(), envy24_init(), free, sc_info::ih, sc_info::irq, sc_info::irqid, sc_info::lock, mixer_init(), sc_info::mt, sc_info::mtid, pcm_addchan(), pcm_register(), pcm_setstatus(), PCMDIR_PLAY, PCMDIR_REC, snd_mtxcreate(), snd_mtxfree(), SND_STATUSLEN, and status.
|
static |
Definition at line 2649 of file envy24.c.
References sc_info::adc, sc_info::adcn, sc_info::cfg, cfg_info::codec, sc_info::cs, sc_info::csid, sc_info::dac, sc_info::dacn, sc_info::ddma, sc_info::ddmaid, codec_entry::destroy, dev, sc_info::dmat, sc_info::ds, sc_info::dsid, envy24_cfgfree(), envy24_dmafree(), free, sc_info::ih, sc_info::irq, sc_info::irqid, sc_info::lock, sc_info::mt, sc_info::mtid, pcm_getdevinfo(), pcm_unregister(), r, and snd_mtxfree().
|
static |
Definition at line 2137 of file envy24.c.
References cfg_table, dev, name, PCID_ENVY24, PCIV_ENVY24, cfg_info::subdevice, and cfg_info::subvendor.
|
static |
Definition at line 2302 of file envy24.c.
References cfg_info::acl, sc_info::adcn, sc_info::cfg, sc_info::dacn, sc_info::dev, cfg_info::gpiodir, cfg_info::gpiomask, cfg_info::gpiostate, cfg_info::i2s, PCIM_ACL_IMODE, PCIM_ACL_MTC, PCIM_ACL_OMODE, PCIM_I2S_16BIT, PCIM_I2S_18BIT, PCIM_I2S_20BIT, PCIM_I2S_24BIT, PCIM_I2S_96KHZ, PCIM_I2S_ID, PCIM_I2S_RES, PCIM_I2S_VOL, PCIM_SCFG_AC97, PCIM_SCFG_MPU, PCIM_SCFG_XIN2, PCIM_SPDIF_ID, PCIM_SPDIF_IN, PCIM_SPDIF_OUT, cfg_info::scfg, cfg_info::spdif, cfg_info::subdevice, and cfg_info::subvendor.
Referenced by envy24_init().
|
static |
Definition at line 1540 of file envy24.c.
References sc_chinfo::buffer, envy24_sample::buffer, sc_chinfo::data, data, ENVY24_CHAN_REC_ADC1, ENVY24_REC_CHNUM, sc_chinfo::num, sc_chinfo::offset, sc_chinfo::parent, sc_info::rbuf, sc_chinfo::size, slot, sndbuf_getfree(), sndbuf_getfreeptr(), and src.
|
static |
Definition at line 1510 of file envy24.c.
References sc_chinfo::buffer, envy24_sample::buffer, sc_chinfo::data, data, ENVY24_CHAN_REC_ADC1, ENVY24_REC_CHNUM, sc_chinfo::num, sc_chinfo::offset, sc_chinfo::parent, sc_info::rbuf, sc_chinfo::size, slot, sndbuf_getfree(), sndbuf_getfreeptr(), and src.
|
static |
Definition at line 468 of file envy24.c.
References ENVY24_CCS_DATA, ENVY24_CCS_INDEX, envy24_rdcs(), envy24_wrcs(), and regno.
Referenced by envy24_gpiord().
|
static |
Definition at line 406 of file envy24.c.
References sc_info::csh, sc_info::cst, regno, and size.
Referenced by envy24_init(), envy24_rdci(), envy24_rdi2c(), and envy24_rdrom().
|
static |
Definition at line 486 of file envy24.c.
References addr, data, sc_info::dev, dev, ENVY24_CCS_I2CADDR, ENVY24_CCS_I2CDATA, ENVY24_CCS_I2CDEV, ENVY24_CCS_I2CDEV_ADDR, ENVY24_CCS_I2CDEV_RD, ENVY24_CCS_I2CSTAT, ENVY24_CCS_I2CSTAT_BSY, envy24_rdcs(), ENVY24_TIMEOUT, and envy24_wrcs().
Referenced by envy24_rdrom().
|
static |
Definition at line 437 of file envy24.c.
References sc_info::mth, sc_info::mtt, regno, and size.
Referenced by envy24_checkintr(), envy24_dmainit(), envy24_gethwptr(), envy24_intr(), envy24_route(), envy24_setspeed(), envy24_slavecd(), envy24_start(), envy24_stop(), and envy24_updintr().
|
static |
Definition at line 561 of file envy24.c.
References addr, data, sc_info::dev, ENVY24_CCS_I2CDEV_ROM, ENVY24_CCS_I2CSTAT, ENVY24_CCS_I2CSTAT_ROM, envy24_rdcs(), and envy24_rdi2c().
Referenced by envy24_rom2cfg().
Definition at line 580 of file envy24.c.
References cfg_info::acl, cfg_table, cfg_info::codec, sc_info::dev, ENVY24_E2PROM_ACL, ENVY24_E2PROM_GPIODIR, ENVY24_E2PROM_GPIOMASK, ENVY24_E2PROM_GPIOSTATE, ENVY24_E2PROM_I2S, ENVY24_E2PROM_SCFG, ENVY24_E2PROM_SIZE, ENVY24_E2PROM_SPDIF, ENVY24_E2PROM_SUBDEVICE, ENVY24_E2PROM_SUBVENDOR, envy24_rdrom(), cfg_info::free, cfg_info::gpiodir, cfg_info::gpiomask, cfg_info::gpiostate, cfg_info::i2s, cfg_info::name, cfg_info::scfg, size, cfg_info::spdif, cfg_info::subdevice, and cfg_info::subvendor.
Referenced by envy24_init().
|
static |
Definition at line 1343 of file envy24.c.
References class, sc_info::dev, ENVY24_MT_PSDOUT, ENVY24_MT_RECORD, ENVY24_MT_SPDOUT, envy24_rdmt(), ENVY24_ROUTE_CLASS_MIX, ENVY24_ROUTE_DAC_1, ENVY24_ROUTE_DAC_SPDIF, ENVY24_ROUTE_LEFT, ENVY24_ROUTE_RIGHT, envy24_wrmt(), left, mask, reg, and right.
Referenced by envy24_init().
|
static |
Definition at line 1098 of file envy24.c.
References code, sc_info::dev, ENVY24_MT_RATE, ENVY24_MT_RATE_MASK, ENVY24_MT_RATE_SPDIF, envy24_rdmt(), envy24_slavecd(), envy24_speedtab, envy24_wrmt(), and speed.
Referenced by envy24chan_trigger().
|
static |
Definition at line 1139 of file envy24.c.
References sc_info::cfg, sc_info::dev, ENVY24_MT_VOLIDX, ENVY24_MT_VOLUME, envy24_wrmt(), sc_info::left, sc_info::right, cfg_info::subdevice, and cfg_info::subvendor.
Referenced by envy24chan_trigger(), and envy24mixer_set().
|
static |
Definition at line 666 of file envy24.c.
References data, sc_info::dev, ENVY24_MT_AC97CMD, ENVY24_MT_AC97CMD_CLD, ENVY24_MT_AC97CMD_RDY, ENVY24_MT_AC97CMD_WRM, envy24_rdmt(), ENVY24_TIMEOUT, and envy24_wrmt().
Referenced by envy24_setspeed().
|
static |
Definition at line 1300 of file envy24.c.
References sc_info::dev, dir, ENVY24_MT_PADDR, ENVY24_MT_PCNT, ENVY24_MT_PCTL, ENVY24_MT_PCTL_PSTART, ENVY24_MT_PCTL_RSTART, envy24_rdmt(), envy24_wrmt(), and PCMDIR_PLAY.
Referenced by envy24chan_trigger().
|
static |
Definition at line 1324 of file envy24.c.
References sc_info::dev, dir, ENVY24_MT_PCTL, envy24_rdmt(), envy24_wrmt(), and PCMDIR_PLAY.
Referenced by envy24chan_trigger().
|
static |
Definition at line 1203 of file envy24.c.
References sc_info::blk, sc_info::dev, dir, ENVY24_MT_INT, ENVY24_MT_PCNT, ENVY24_MT_PTERM, ENVY24_MT_RCNT, ENVY24_MT_RTERM, envy24_rdmt(), envy24_wrmt(), intr, mask, PCMDIR_PLAY, sc_info::psize, sc_info::rsize, and size.
Referenced by envy24_intr(), and envy24chan_trigger().
|
static |
Definition at line 475 of file envy24.c.
References data, ENVY24_CCS_DATA, ENVY24_CCS_INDEX, envy24_wrcs(), and regno.
Referenced by envy24_gpiosetdir(), envy24_gpiosetmask(), and envy24_gpiowr().
|
static |
Definition at line 421 of file envy24.c.
References sc_info::csh, sc_info::cst, data, regno, and size.
Referenced by envy24_init(), envy24_rdci(), envy24_rdi2c(), and envy24_wrci().
|
static |
Definition at line 452 of file envy24.c.
References data, sc_info::mth, sc_info::mtt, regno, and size.
Referenced by envy24_checkintr(), envy24_dmainit(), envy24_mutevolume(), envy24_route(), envy24_setspeed(), envy24_setvolume(), envy24_slavecd(), envy24_start(), envy24_stop(), envy24_updintr(), and envy24mixer_init().
|
static |
Definition at line 1617 of file envy24.c.
References sc_info::ch, sc_chinfo::data, data, sc_info::dev, free, sc_info::lock, sc_chinfo::parent, snd_mtxlock, and snd_mtxunlock.
|
static |
Definition at line 1904 of file envy24.c.
References sc_info::caps, sc_info::ch, data, sc_info::dev, sc_chinfo::dir, envy24_playcaps, envy24_reccaps, sc_info::lock, sc_chinfo::parent, PCMDIR_PLAY, sc_info::run, snd_mtxlock, and snd_mtxunlock.
|
static |
Definition at line 1882 of file envy24.c.
References sc_info::ch, data, sc_info::dev, sc_chinfo::dir, envy24_gethwptr(), sc_info::lock, sc_chinfo::parent, snd_mtxlock, snd_mtxunlock, and sc_chinfo::unit.
|
static |
Definition at line 1573 of file envy24.c.
References b, sc_chinfo::blk, sc_chinfo::buffer, c, sc_info::chan, sc_chinfo::channel, sc_info::chnum, sc_chinfo::data, sc_info::dev, devinfo, sc_chinfo::dir, dir, ENVY24_CHAN_PLAY_SPDIF, ENVY24_CHAN_REC_ADC1, envy24_chanmap, ENVY24_SAMPLE_NUM, sc_info::lock, sc_chinfo::num, sc_chinfo::parent, PCMDIR_PLAY, PCMDIR_REC, sc_chinfo::size, snd_mtxlock, snd_mtxunlock, sndbuf_setup(), and sc_chinfo::unit.
|
static |
Definition at line 1727 of file envy24.c.
References sc_chinfo::blk, blocksize, sc_chinfo::buffer, data, sc_info::dev, sc_chinfo::dir, ENVY24_PLAY_BUFUNIT, ENVY24_REC_BUFUNIT, PCMDIR_PLAY, prev, sc_chinfo::size, sndbuf_resize(), and sc_chinfo::unit.
|
static |
Definition at line 1636 of file envy24.c.
References sc_chinfo::blk, sc_chinfo::buffer, sc_info::ch, data, sc_info::dev, sc_chinfo::dir, sc_chinfo::emldma, envy24_emldma::emldma, envy24_pemltab, ENVY24_PLAY_BUFUNIT, ENVY24_REC_BUFUNIT, envy24_remltab, ENVY24_SAMPLE_NUM, format, sc_chinfo::format, envy24_emldma::format, sc_info::lock, sc_chinfo::parent, PCMDIR_PLAY, sc_chinfo::size, snd_mtxlock, snd_mtxunlock, sndbuf_resize(), sc_chinfo::unit, and envy24_emldma::unit.
|
static |
Definition at line 1702 of file envy24.c.
References data, sc_info::dev, envy24_speed, sc_chinfo::parent, prev, sc_chinfo::speed, speed, and val.
|
static |
Definition at line 1770 of file envy24.c.
References sc_chinfo::blk, sc_info::blk, sc_info::caps, sc_info::ch, sc_info::chan, sc_chinfo::channel, data, sc_info::dev, sc_chinfo::dir, sc_chinfo::emldma, ENVY24_CHAN_NUM, envy24_gethwptr(), envy24_mutevolume(), ENVY24_SAMPLE_NUM, envy24_setspeed(), envy24_setvolume(), envy24_start(), envy24_stop(), envy24_updintr(), error, fail, go, sc_info::intr, sc_info::lock, pcmchan_caps::maxspeed, pcmchan_caps::minspeed, sc_chinfo::num, sc_chinfo::offset, sc_chinfo::parent, PCMDIR_PLAY, PCMTRIG_ABORT, PCMTRIG_EMLDMARD, PCMTRIG_EMLDMAWR, PCMTRIG_START, sc_chinfo::run, sc_info::run, sc_chinfo::size, slot, snd_mtxlock, snd_mtxunlock, sc_chinfo::speed, sc_info::speed, pcm_channel::speed, and sc_chinfo::unit.
|
static |
Definition at line 1949 of file envy24.c.
References sc_info::dev, ENVY24_MIX_MASK, ENVY24_MIX_REC_MASK, ENVY24_MT_VOLRATE, envy24_wrmt(), sc_info::lock, m, mix_getdevinfo(), mix_setdevs(), mix_setrecdevs(), snd_mtxlock, and snd_mtxunlock.
|
static |
Definition at line 1971 of file envy24.c.
References sc_info::dev, m, and mix_getdevinfo().
|
static |
Definition at line 1999 of file envy24.c.
References sc_info::cfg, sc_info::ch, sc_info::chan, cfg_info::codec, sc_info::dac, sc_info::dacn, sc_info::dev, dev, ENVY24_CHAN_PLAY_SPDIF, envy24_chanmap, envy24_mixmap, envy24_setvolume(), ENVY24_VOL_MIN, ENVY24_VOL_MUTE, sc_info::left, left, sc_info::lock, m, mix_getdevinfo(), PCMDIR_PLAY, sc_info::right, right, sc_chinfo::run, codec_entry::setvolume, snd_mtxlock, and snd_mtxunlock.
|
static |
Definition at line 2041 of file envy24.c.
References sc_info::ch, sc_info::dev, ENVY24_CHAN_PLAY_SPDIF, envy24_mixmap, m, mix_getdevinfo(), sc_info::src, and src.
|
static |
Definition at line 1985 of file envy24.c.
References sc_info::dev, m, and mix_getdevinfo().
|
static |
|
static |
|
static |
|
static |
Definition at line 884 of file envy24.c.
References ctrl, dev, i2c_ack(), i2c_start(), i2c_stop(), i2c_wrbit(), mask, reg, and val.
Referenced by envy24_delta_ak4524_init().
|
static |
|
static |
MIXER_DECLARE | ( | envy24mixer | ) |
MODULE_DEPEND | ( | snd_envy24 | , |
snd_spicds | , | ||
1 | , | ||
1 | , | ||
1 | |||
) |
MODULE_DEPEND | ( | snd_envy24 | , |
sound | , | ||
SOUND_MINVER | , | ||
SOUND_PREFVER | , | ||
SOUND_MAXVER | |||
) |
MODULE_VERSION | ( | snd_envy24 | , |
1 | |||
) |
SND_DECLARE_FILE | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 283 of file envy24.c.
Referenced by envy24_init(), envy24_pci_probe(), and envy24_rom2cfg().
u_int32_t code |
Definition at line 1079 of file envy24.c.
Referenced by envy24_setspeed().
|
static |
|
static |
Definition at line 224 of file envy24.c.
Referenced by envy24chan_init(), and envy24mixer_set().
|
static |
|
static |
|
static |
Definition at line 239 of file envy24.c.
Referenced by envy24mixer_set(), and envy24mixer_setrecsrc().
|
static |
Definition at line 389 of file envy24.c.
Referenced by envy24chan_setformat().
|
static |
Definition at line 381 of file envy24.c.
Referenced by envy24chan_getcaps().
|
static |
Definition at line 374 of file envy24.c.
Referenced by envy24_init().
|
static |
Definition at line 372 of file envy24.c.
Referenced by envy24chan_getcaps().
|
static |
Definition at line 367 of file envy24.c.
Referenced by envy24_init().
|
static |
Definition at line 396 of file envy24.c.
Referenced by envy24chan_setformat().
|
static |
Definition at line 268 of file envy24.c.
Referenced by envy24chan_setspeed().
struct { ... } envy24_speedtab[] |
Referenced by envy24_setspeed().
|
static |
|
static |
u_int32_t speed |
Definition at line 1078 of file envy24.c.
Referenced by envy24_setspeed(), and envy24chan_setspeed().