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/isa/sb8.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/isa/sb8.c')
-rw-r--r-- | sys/dev/sound/isa/sb8.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/sys/dev/sound/isa/sb8.c b/sys/dev/sound/isa/sb8.c index d975311..21c3e6f 100644 --- a/sys/dev/sound/isa/sb8.c +++ b/sys/dev/sound/isa/sb8.c @@ -107,6 +107,14 @@ static pcm_channel sb_chantemplate = { sbchan_trigger, sbchan_getptr, sbchan_getcaps, + NULL, /* free */ + NULL, /* nop1 */ + NULL, /* nop2 */ + NULL, /* nop3 */ + NULL, /* nop4 */ + NULL, /* nop5 */ + NULL, /* nop6 */ + NULL, /* nop7 */ }; struct sb_info; @@ -152,10 +160,11 @@ static int sbmix_set(snd_mixer *m, unsigned dev, unsigned left, unsigned right); static int sbmix_setrecsrc(snd_mixer *m, u_int32_t src); static snd_mixer sb_mixer = { - "SoundBlaster mixer", - sbmix_init, - sbmix_set, - sbmix_setrecsrc, + "SoundBlaster mixer", + sbmix_init, + NULL, + sbmix_set, + sbmix_setrecsrc, }; static devclass_t pcm_devclass; @@ -412,7 +421,6 @@ sb16_swap(void *v, int dir) static int sb_doattach(device_t dev, struct sb_info *sb) { - snddev_info *d = device_get_softc(dev); void *ih; char status[SND_STATUSLEN]; int bs = DSP_BUFFSIZE; @@ -421,7 +429,7 @@ sb_doattach(device_t dev, struct sb_info *sb) goto no; if (sb_reset_dsp(sb)) goto no; - mixer_init(d, &sb_mixer, sb); + mixer_init(dev, &sb_mixer, sb); bus_setup_intr(dev, sb->irq, INTR_TYPE_TTY, sb_intr, sb, &ih); if ((sb->bd_flags & BD_F_SB16) && !(sb->bd_flags & BD_F_SB16X)) |