FreeBSD kernel sound device code
|
#include <dev/sound/pcm/sound.h>
#include <dev/sound/pcm/ac97.h>
#include <dev/sound/pci/neomagic.h>
#include <dev/sound/pci/neomagic-coeff.h>
#include <dev/pci/pcireg.h>
#include <dev/pci/pcivar.h>
Go to the source code of this file.
Data Structures | |
struct | sc_chinfo |
struct | sc_info |
Macros | |
#define | NM_BUFFSIZE 16384 |
#define | NM256AV_PCI_ID 0x800510c8 |
#define | NM256ZX_PCI_ID 0x800610c8 |
#define | NUM_BADCARDS (sizeof(badcards) / sizeof(u_int32_t)) |
Functions | |
SND_DECLARE_FILE ("$FreeBSD$") | |
static int | nm_loadcoeff (struct sc_info *sc, int dir, int num) |
static int | nm_setch (struct sc_chinfo *ch) |
static int | nm_init (struct sc_info *) |
static void | nm_intr (void *) |
static u_int32_t | nm_rd (struct sc_info *, int, int) |
static void | nm_wr (struct sc_info *, int, u_int32_t, int) |
static u_int32_t | nm_rdbuf (struct sc_info *, int, int) |
static void | nm_wrbuf (struct sc_info *, int, u_int32_t, int) |
static int | nm_waitcd (struct sc_info *sc) |
static u_int32_t | nm_initcd (kobj_t obj, void *devinfo) |
static int | nm_rdcd (kobj_t obj, void *devinfo, int regno) |
static int | nm_wrcd (kobj_t obj, void *devinfo, int regno, u_int32_t data) |
AC97_DECLARE (nm_ac97) | |
static void | nm_ackint (struct sc_info *sc, u_int32_t num) |
static void * | nmchan_init (kobj_t obj, void *devinfo, struct snd_dbuf *b, struct pcm_channel *c, int dir) |
static int | nmchan_free (kobj_t obj, void *data) |
static int | nmchan_setformat (kobj_t obj, void *data, u_int32_t format) |
static u_int32_t | nmchan_setspeed (kobj_t obj, void *data, u_int32_t speed) |
static u_int32_t | nmchan_setblocksize (kobj_t obj, void *data, u_int32_t blocksize) |
static int | nmchan_trigger (kobj_t obj, void *data, int go) |
static u_int32_t | nmchan_getptr (kobj_t obj, void *data) |
static struct pcmchan_caps * | nmchan_getcaps (kobj_t obj, void *data) |
CHANNEL_DECLARE (nmchan) | |
static int | nm_pci_probe (device_t dev) |
static int | nm_pci_attach (device_t dev) |
static int | nm_pci_detach (device_t dev) |
static int | nm_pci_suspend (device_t dev) |
static int | nm_pci_resume (device_t dev) |
DRIVER_MODULE (snd_neomagic, pci, nm_driver, pcm_devclass, 0, 0) | |
MODULE_DEPEND (snd_neomagic, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER) | |
MODULE_VERSION (snd_neomagic, 1) | |
Variables | |
static u_int32_t | badcards [] |
static int | samplerates [9] |
static u_int32_t | nm_fmt [] |
static struct pcmchan_caps | nm_caps = {4000, 48000, nm_fmt, 0} |
static kobj_method_t | nm_ac97_methods [] |
static kobj_method_t | nmchan_methods [] |
static device_method_t | nm_methods [] |
static driver_t | nm_driver |
#define NM256AV_PCI_ID 0x800510c8 |
Definition at line 49 of file neomagic.c.
#define NM256ZX_PCI_ID 0x800610c8 |
Definition at line 50 of file neomagic.c.
#define NM_BUFFSIZE 16384 |
Definition at line 47 of file neomagic.c.
#define NUM_BADCARDS (sizeof(badcards) / sizeof(u_int32_t)) |
Definition at line 104 of file neomagic.c.
AC97_DECLARE | ( | nm_ac97 | ) |
CHANNEL_DECLARE | ( | nmchan | ) |
DRIVER_MODULE | ( | snd_neomagic | , |
pci | , | ||
nm_driver | , | ||
pcm_devclass | , | ||
0 | , | ||
0 | |||
) |
MODULE_DEPEND | ( | snd_neomagic | , |
sound | , | ||
SOUND_MINVER | , | ||
SOUND_PREFVER | , | ||
SOUND_MAXVER | |||
) |
MODULE_VERSION | ( | snd_neomagic | , |
1 | |||
) |
|
static |
Definition at line 293 of file neomagic.c.
References NM256AV_PCI_ID, NM256ZX_PCI_ID, NM_INT_REG, nm_wr(), and sc_info::type.
Referenced by nm_intr().
|
static |
Definition at line 543 of file neomagic.c.
References sc_info::ac97_base, sc_info::ac97_busy, sc_info::ac97_status, sc_info::acbuf, sc_info::badintr, sc_info::buftop, sc_info::cbuf, sc_info::dev, sc_info::irsz, sc_info::misc1int, sc_info::misc2int, NM256AV_PCI_ID, NM256ZX_PCI_ID, NM2_MISC_INT_1, NM2_MISC_INT_2, NM2_MIXER_READY_MASK, NM2_MIXER_STATUS_OFFSET, NM2_PLAYBACK_INT, NM2_RECORD_INT, NM_BUFFSIZE, NM_MAX_COEFFICIENT, NM_MISC_INT_1, NM_MISC_INT_2, NM_MIXER_OFFSET, NM_MIXER_READY_MASK, NM_MIXER_STATUS_OFFSET, NM_PLAYBACK_INT, nm_rd(), nm_rdbuf(), NM_RECORD_ENABLE_REG, NM_RECORD_INT, NM_SIG_MASK, NM_SIGNATURE, NM_TOTAL_COEFF_COUNT, nm_wr(), sc_info::pbuf, sc_info::playint, sc_info::rbuf, sc_info::recint, and sc_info::type.
Referenced by nm_pci_attach().
|
static |
Definition at line 227 of file neomagic.c.
References devinfo, and nm_wr().
|
static |
Definition at line 489 of file neomagic.c.
References sc_chinfo::blksize, sc_chinfo::channel, chn_intr(), sc_info::dev, sc_info::irsz, sc_info::misc1int, sc_info::misc2int, nm_ackint(), NM_BUFFSIZE, NM_INT_REG, NM_PBUFFER_WMARK, NM_RBUFFER_WMARK, nm_rd(), nm_wr(), sc_info::pbuf, sc_info::pch, sc_info::playint, sc_info::rbuf, sc_info::rch, sc_info::recint, status, and sc_chinfo::wmark.
Referenced by nm_pci_attach().
|
static |
Definition at line 303 of file neomagic.c.
References addr, sc_info::cbuf, coefficients, coefficientSizes, dir, nm_wr(), nm_wrbuf(), PCMDIR_PLAY, and PCMDIR_REC.
Referenced by nm_setch().
|
static |
Definition at line 666 of file neomagic.c.
References AC97_CREATE, ac97_destroy(), ac97_getmixerclass(), sc_info::buf, sc_info::bufid, sc_info::dev, dev, free, sc_info::ih, sc_info::irq, sc_info::irqid, mixer_init(), nm_init(), nm_intr(), PCIR_BAR, pcm_addchan(), PCM_KLDSTRING, pcm_register(), pcm_setstatus(), PCMDIR_PLAY, PCMDIR_REC, sc_info::reg, sc_info::regid, snd_setup_intr(), SND_STATUSLEN, status, and sc_info::type.
|
static |
Definition at line 729 of file neomagic.c.
References sc_info::buf, sc_info::bufid, dev, free, sc_info::ih, sc_info::irq, sc_info::irqid, pcm_getdevinfo(), pcm_unregister(), r, sc_info::reg, and sc_info::regid.
|
static |
Definition at line 600 of file neomagic.c.
References badcards, DEB, dev, free, NM256AV_PCI_ID, NM256ZX_PCI_ID, NM_MIXER_PRESENCE, NM_PRESENCE_MASK, NM_PRESENCE_VALUE, nm_rd(), nm_wr(), NUM_BADCARDS, PCIR_BAR, sc_info::reg, and sc_info::regid.
|
static |
Definition at line 768 of file neomagic.c.
References sc_chinfo::active, dev, mixer_reinit(), NM_AUDIO_MUTE_REG, NM_PLAYBACK_ENABLE_FLAG, NM_PLAYBACK_ENABLE_REG, NM_PLAYBACK_FREERUN, NM_RECORD_ENABLE_FLAG, NM_RECORD_ENABLE_REG, NM_RECORD_FREERUN, nm_wr(), sc_info::pch, pcm_getdevinfo(), and sc_info::rch.
|
static |
Definition at line 749 of file neomagic.c.
References sc_chinfo::active, dev, NM_AUDIO_MUTE_BOTH, NM_AUDIO_MUTE_REG, NM_PLAYBACK_ENABLE_REG, NM_RECORD_ENABLE_REG, nm_wr(), sc_info::pch, pcm_getdevinfo(), and sc_info::rch.
|
static |
Definition at line 134 of file neomagic.c.
References sc_info::reg, regno, and size.
Referenced by nm_init(), nm_intr(), nm_pci_probe(), nm_rdcd(), nm_waitcd(), and nmchan_getptr().
|
static |
Definition at line 171 of file neomagic.c.
References sc_info::buf, regno, and size.
Referenced by nm_init().
|
static |
Definition at line 248 of file neomagic.c.
References sc_info::ac97_base, sc_info::dev, devinfo, nm_rd(), nm_waitcd(), and regno.
|
static |
Definition at line 325 of file neomagic.c.
References AFMT_16BIT, AFMT_CHANNEL, base, sc_info::ch, sc_chinfo::dir, sc_chinfo::fmt, nm_loadcoeff(), NM_PLAYBACK_REG_OFFSET, NM_RATE_BITS_16, NM_RATE_MASK, NM_RATE_REG_OFFSET, NM_RATE_STEREO, NM_RECORD_REG_OFFSET, nm_wr(), sc_chinfo::parent, PCMDIR_PLAY, samplerates, and sc_chinfo::spd.
Referenced by nmchan_setformat(), and nmchan_setspeed().
|
static |
Definition at line 210 of file neomagic.c.
References sc_info::ac97_busy, sc_info::ac97_status, fail, and nm_rd().
Referenced by nm_rdcd(), and nm_wrcd().
|
static |
Definition at line 152 of file neomagic.c.
References data, sc_info::reg, regno, and size.
Referenced by nm_ackint(), nm_init(), nm_initcd(), nm_intr(), nm_loadcoeff(), nm_pci_probe(), nm_pci_resume(), nm_pci_suspend(), nm_setch(), nm_wrcd(), and nmchan_trigger().
|
static |
Definition at line 189 of file neomagic.c.
References sc_info::buf, data, regno, and size.
Referenced by nm_loadcoeff().
|
static |
Definition at line 264 of file neomagic.c.
References sc_info::ac97_base, data, sc_info::dev, devinfo, nm_waitcd(), nm_wr(), and regno.
|
static |
Definition at line 375 of file neomagic.c.
|
static |
Definition at line 469 of file neomagic.c.
References nm_caps.
|
static |
Definition at line 457 of file neomagic.c.
References sc_info::ch, data, sc_chinfo::dir, NM_PBUFFER_CURRP, NM_RBUFFER_CURRP, nm_rd(), sc_chinfo::parent, sc_info::pbuf, PCMDIR_PLAY, and sc_info::rbuf.
|
static |
Definition at line 352 of file neomagic.c.
References sc_chinfo::active, b, sc_chinfo::blksize, sc_info::buf, sc_chinfo::buffer, c, sc_chinfo::channel, sc_info::dev, devinfo, sc_chinfo::dir, dir, NM_BUFFSIZE, sc_chinfo::parent, sc_info::pbuf, sc_info::pch, PCMDIR_PLAY, sc_info::rbuf, sc_info::rch, sndbuf_getbuf(), sndbuf_setup(), and sc_chinfo::wmark.
|
static |
Definition at line 399 of file neomagic.c.
References sc_chinfo::blksize, blocksize, and data.
|
static |
Definition at line 381 of file neomagic.c.
References data, sc_chinfo::fmt, format, and nm_setch().
|
static |
Definition at line 390 of file neomagic.c.
References data, nm_setch(), sc_chinfo::spd, and speed.
|
static |
Definition at line 409 of file neomagic.c.
References sc_chinfo::active, AFMT_16BIT, AFMT_CHANNEL, sc_chinfo::blksize, sc_info::ch, data, sc_chinfo::dir, sc_chinfo::fmt, go, NM_AUDIO_MUTE_BOTH, NM_AUDIO_MUTE_REG, NM_BUFFSIZE, NM_PBUFFER_CURRP, NM_PBUFFER_END, NM_PBUFFER_START, NM_PBUFFER_WMARK, NM_PLAYBACK_ENABLE_FLAG, NM_PLAYBACK_ENABLE_REG, NM_PLAYBACK_FREERUN, NM_RBUFFER_CURRP, NM_RBUFFER_END, NM_RBUFFER_START, NM_RBUFFER_WMARK, NM_RECORD_ENABLE_FLAG, NM_RECORD_ENABLE_REG, NM_RECORD_FREERUN, nm_wr(), sc_chinfo::parent, sc_info::pbuf, PCMDIR_PLAY, PCMTRIG_COMMON, PCMTRIG_START, sc_info::rbuf, and sc_chinfo::wmark.
SND_DECLARE_FILE | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 98 of file neomagic.c.
Referenced by nm_pci_probe().
|
static |
Definition at line 282 of file neomagic.c.
|
static |
Definition at line 128 of file neomagic.c.
Referenced by nmchan_getcaps().
|
static |
Definition at line 814 of file neomagic.c.
|
static |
Definition at line 121 of file neomagic.c.
|
static |
Definition at line 804 of file neomagic.c.
|
static |
Definition at line 474 of file neomagic.c.
|
static |
Definition at line 107 of file neomagic.c.
Referenced by nm_setch().