FreeBSD kernel sound device code
|
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/bus.h>
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/module.h>
#include <sys/mutex.h>
#include <sys/rman.h>
#include <dev/ofw/ofw_bus.h>
#include <dev/sound/pcm/sound.h>
#include <dev/sound/macio/aoa.h>
#include <dev/sound/macio/davbusreg.h>
#include <machine/intr_machdep.h>
#include <machine/resource.h>
#include <machine/bus.h>
#include "mixer_if.h"
Go to the source code of this file.
Data Structures | |
struct | davbus_softc |
Functions | |
static int | davbus_probe (device_t) |
static int | davbus_attach (device_t) |
static void | davbus_cint (void *) |
DRIVER_MODULE (pcm_davbus, macio, pcm_davbus_driver, pcm_devclass, 0, 0) | |
MODULE_DEPEND (pcm_davbus, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER) | |
static int | burgundy_init (struct snd_mixer *m) |
static int | burgundy_uninit (struct snd_mixer *m) |
static int | burgundy_reinit (struct snd_mixer *m) |
static void | burgundy_write_locked (struct davbus_softc *, u_int, u_int) |
static void | burgundy_set_outputs (struct davbus_softc *d, u_int mask) |
static u_int | burgundy_read_status (struct davbus_softc *d, u_int status) |
static int | burgundy_set (struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) |
static u_int32_t | burgundy_setrecsrc (struct snd_mixer *m, u_int32_t src) |
MIXER_DECLARE (burgundy_mixer) | |
static int | screamer_init (struct snd_mixer *m) |
static int | screamer_uninit (struct snd_mixer *m) |
static int | screamer_reinit (struct snd_mixer *m) |
static void | screamer_write_locked (struct davbus_softc *, u_int, u_int) |
static void | screamer_set_outputs (struct davbus_softc *d, u_int mask) |
static u_int | screamer_read_status (struct davbus_softc *d, u_int status) |
static int | screamer_set (struct snd_mixer *m, unsigned dev, unsigned left, unsigned right) |
static u_int32_t | screamer_setrecsrc (struct snd_mixer *m, u_int32_t src) |
MIXER_DECLARE (screamer_mixer) | |
Variables | |
static device_method_t | pcm_davbus_methods [] |
static driver_t | pcm_davbus_driver |
static kobj_method_t | burgundy_mixer_methods [] |
static kobj_method_t | screamer_mixer_methods [] |
|
static |
Definition at line 139 of file davbus.c.
References BURGUNDY_ISA_SF0, BURGUNDY_ISS_UNITY, BURGUNDY_ISSAL_REG, BURGUNDY_ISSAR_REG, BURGUNDY_MIX0_REG, BURGUNDY_MIX1_REG, BURGUNDY_MIX2_REG, BURGUNDY_MIX3_REG, BURGUNDY_MIX_ISA, BURGUNDY_MXS2L_REG, BURGUNDY_MXS2R_REG, BURGUNDY_MXS_UNITY, BURGUNDY_OS0_MIX2, BURGUNDY_OS1_MIX2, BURGUNDY_OS_REG, BURGUNDY_OSS0L_REG, BURGUNDY_OSS0R_REG, BURGUNDY_OSS1L_REG, BURGUNDY_OSS1R_REG, BURGUNDY_OSS_UNITY, burgundy_read_status(), BURGUNDY_SDIN_REG, burgundy_set_outputs(), burgundy_write_locked(), DAVBUS_CODEC_STATUS, m, mix_getdevinfo(), mix_setdevs(), davbus_softc::mutex, davbus_softc::read_status, davbus_softc::reg, and davbus_softc::set_outputs.
|
static |
Definition at line 265 of file davbus.c.
References status.
Referenced by burgundy_init().
|
static |
Definition at line 274 of file davbus.c.
References BURGUNDY_OL13_REG, BURGUNDY_OL14_REG, BURGUNDY_OL15_REG, BURGUNDY_OL16_REG, BURGUNDY_OL17_REG, burgundy_write_locked(), dev, DPRINTF, left, m, mix_getdevinfo(), davbus_softc::mutex, and right.
|
static |
Definition at line 231 of file davbus.c.
References BURGUNDY_MUTE_REG, BURGUNDY_P14L_EN, BURGUNDY_P14R_EN, BURGUNDY_P17M_EN, burgundy_write_locked(), DPRINTF, mask, and davbus_softc::output_mask.
Referenced by burgundy_init().
|
static |
|
static |
Definition at line 205 of file davbus.c.
References addr, BURGUNDY_CTRL_RESET, BURGUNDY_CTRL_WRITE, data, DAVBUS_CODEC_BUSY, DAVBUS_CODEC_CTRL, offset, davbus_softc::reg, reg, size, and val.
Referenced by burgundy_init(), burgundy_set(), and burgundy_set_outputs().
|
static |
Definition at line 495 of file davbus.c.
References davbus_softc::aoa, aoa_attach(), aoa_interrupt(), davbus_cint(), DAVBUS_INPUT_SUBFRAME0, DAVBUS_INTR_PORTCHG, DAVBUS_OUTPUT_SUBFRAME0, DAVBUS_RATE_44100, DAVBUS_SOUND_CTRL, davbus_softc::device_id, DPRINTF, mixer_init(), davbus_softc::mutex, davbus_softc::node, davbus_softc::reg, rid, aoa_softc::sc_dev, aoa_softc::sc_odma, snd_setup_intr(), and davbus_softc::soundnode.
|
static |
Definition at line 577 of file davbus.c.
References DAVBUS_CODEC_STATUS, DAVBUS_PORTCHG, DAVBUS_SOUND_CTRL, mask, davbus_softc::mutex, davbus_softc::read_status, davbus_softc::reg, reg, davbus_softc::set_outputs, and status.
Referenced by davbus_attach().
|
static |
DRIVER_MODULE | ( | pcm_davbus | , |
macio | , | ||
pcm_davbus_driver | , | ||
pcm_devclass | , | ||
0 | , | ||
0 | |||
) |
MIXER_DECLARE | ( | burgundy_mixer | ) |
MIXER_DECLARE | ( | screamer_mixer | ) |
MODULE_DEPEND | ( | pcm_davbus | , |
sound | , | ||
SOUND_MINVER | , | ||
SOUND_PREFVER | , | ||
SOUND_MAXVER | |||
) |
|
static |
Definition at line 335 of file davbus.c.
References DAVBUS_CODEC_STATUS, m, mix_getdevinfo(), mix_setdevs(), davbus_softc::mutex, davbus_softc::read_status, davbus_softc::reg, SCREAMER_CODEC_ADDR0, SCREAMER_CODEC_ADDR2, SCREAMER_CODEC_ADDR4, SCREAMER_CODEC_ADDR5, SCREAMER_CODEC_ADDR6, SCREAMER_DEFAULT_CD_GAIN, SCREAMER_INPUT_CD, screamer_read_status(), screamer_set_outputs(), screamer_write_locked(), and davbus_softc::set_outputs.
|
static |
Definition at line 436 of file davbus.c.
References davbus_softc::device_id, and status.
Referenced by screamer_init().
|
static |
Definition at line 462 of file davbus.c.
References dev, DPRINTF, left, m, mix_getdevinfo(), davbus_softc::mutex, right, SCREAMER_CODEC_ADDR2, SCREAMER_CODEC_ADDR4, and screamer_write_locked().
|
static |
Definition at line 397 of file davbus.c.
References davbus_softc::device_id, DPRINTF, mask, davbus_softc::output_mask, SCREAMER_CODEC_ADDR1, SCREAMER_MUTE_HEADPHONES, SCREAMER_MUTE_SPEAKER, SCREAMER_PROG_OUTPUT0, SCREAMER_PROG_OUTPUT1, and screamer_write_locked().
Referenced by screamer_init().
|
static |
|
static |
Definition at line 377 of file davbus.c.
References DAVBUS_CODEC_BUSY, DAVBUS_CODEC_CTRL, davbus_softc::reg, reg, SCREAMER_CODEC_EMSEL0, and val.
Referenced by screamer_init(), screamer_set(), and screamer_set_outputs().
|
static |
|
static |
|
static |
|
static |