diff options
author | cg <cg@FreeBSD.org> | 2000-09-01 20:09:24 +0000 |
---|---|---|
committer | cg <cg@FreeBSD.org> | 2000-09-01 20:09:24 +0000 |
commit | a6b7de97e3e709e699c0638c9ff07e8fc3477772 (patch) | |
tree | ba5ec2ebf628be720fad52ae78db04a46cc46680 /sys/dev/sound/pci/solo.c | |
parent | e95936f6ddf2411361330abe8f44903c01b42fe5 (diff) | |
download | FreeBSD-src-a6b7de97e3e709e699c0638c9ff07e8fc3477772.zip FreeBSD-src-a6b7de97e3e709e699c0638c9ff07e8fc3477772.tar.gz |
change mixer api slightly
change channel interface - kobj implementation coming soonish
make pcm_makelinks not panic if modular
add pcm_unregister()
these changes support newpcm kld unloading, but this is only implemented
by ds1.c
Diffstat (limited to 'sys/dev/sound/pci/solo.c')
-rw-r--r-- | sys/dev/sound/pci/solo.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/sys/dev/sound/pci/solo.c b/sys/dev/sound/pci/solo.c index cd69868..58161db 100644 --- a/sys/dev/sound/pci/solo.c +++ b/sys/dev/sound/pci/solo.c @@ -90,6 +90,14 @@ static pcm_channel ess_chantemplate = { esschan_trigger, esschan_getptr, esschan_getcaps, + NULL, /* free */ + NULL, /* nop1 */ + NULL, /* nop2 */ + NULL, /* nop3 */ + NULL, /* nop4 */ + NULL, /* nop5 */ + NULL, /* nop6 */ + NULL, /* nop7 */ }; struct ess_info; @@ -138,10 +146,11 @@ static int essmix_set(snd_mixer *m, unsigned dev, unsigned left, unsigned right) static int essmix_setrecsrc(snd_mixer *m, u_int32_t src); static snd_mixer ess_mixer = { - "ESS mixer", - essmix_init, - essmix_set, - essmix_setrecsrc, + "ESS mixer", + essmix_init, + NULL, + essmix_set, + essmix_setrecsrc, }; static devclass_t pcm_devclass; @@ -908,7 +917,6 @@ ess_probe(device_t dev) static int ess_attach(device_t dev) { - snddev_info *d = device_get_softc(dev); struct ess_info *sc; void *ih; char status[SND_STATUSLEN]; @@ -935,7 +943,7 @@ ess_attach(device_t dev) if (ess_reset_dsp(sc)) goto no; - mixer_init(d, &ess_mixer, sc); + mixer_init(dev, &ess_mixer, sc); port_wr(sc->io, 0x7, 0xb0, 1); /* enable irqs */ #ifdef ESS18XX_DUPLEX |