summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/isa
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2000-09-01 20:09:24 +0000
committercg <cg@FreeBSD.org>2000-09-01 20:09:24 +0000
commita6b7de97e3e709e699c0638c9ff07e8fc3477772 (patch)
treeba5ec2ebf628be720fad52ae78db04a46cc46680 /sys/dev/sound/isa
parente95936f6ddf2411361330abe8f44903c01b42fe5 (diff)
downloadFreeBSD-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')
-rw-r--r--sys/dev/sound/isa/ad1816.c20
-rw-r--r--sys/dev/sound/isa/ess.c20
-rw-r--r--sys/dev/sound/isa/mss.c29
-rw-r--r--sys/dev/sound/isa/sb.c20
-rw-r--r--sys/dev/sound/isa/sb16.c20
-rw-r--r--sys/dev/sound/isa/sb8.c20
6 files changed, 89 insertions, 40 deletions
diff --git a/sys/dev/sound/isa/ad1816.c b/sys/dev/sound/isa/ad1816.c
index ec7a61e..3cebbe3 100644
--- a/sys/dev/sound/isa/ad1816.c
+++ b/sys/dev/sound/isa/ad1816.c
@@ -67,10 +67,11 @@ static int ad1816mix_init(snd_mixer *m);
static int ad1816mix_set(snd_mixer *m, unsigned dev, unsigned left, unsigned right);
static int ad1816mix_setrecsrc(snd_mixer *m, u_int32_t src);
static snd_mixer ad1816_mixer = {
- "ad1816 mixer",
- ad1816mix_init,
- ad1816mix_set,
- ad1816mix_setrecsrc,
+ "ad1816 mixer",
+ ad1816mix_init,
+ NULL,
+ ad1816mix_set,
+ ad1816mix_setrecsrc,
};
static devclass_t pcm_devclass;
@@ -108,6 +109,14 @@ static pcm_channel ad1816_chantemplate = {
ad1816chan_trigger,
ad1816chan_getptr,
ad1816chan_getcaps,
+ NULL, /* free */
+ NULL, /* nop1 */
+ NULL, /* nop2 */
+ NULL, /* nop3 */
+ NULL, /* nop4 */
+ NULL, /* nop5 */
+ NULL, /* nop6 */
+ NULL, /* nop7 */
};
#define AD1816_MUTE 31 /* value for mute */
@@ -566,7 +575,6 @@ static int
ad1816_attach(device_t dev)
{
struct ad1816_info *ad1816;
- snddev_info *d = device_get_softc(dev);
void *ih;
char status[SND_STATUSLEN];
@@ -581,7 +589,7 @@ ad1816_attach(device_t dev)
if (!ad1816_alloc_resources(ad1816, dev)) goto no;
ad1816_init(ad1816, dev);
- mixer_init(d, &ad1816_mixer, ad1816);
+ mixer_init(dev, &ad1816_mixer, ad1816);
bus_setup_intr(dev, ad1816->irq, INTR_TYPE_TTY, ad1816_intr, ad1816, &ih);
if (bus_dma_tag_create(/*parent*/NULL, /*alignment*/2, /*boundary*/0,
/*lowaddr*/BUS_SPACE_MAXADDR_24BIT,
diff --git a/sys/dev/sound/isa/ess.c b/sys/dev/sound/isa/ess.c
index 2252cd9..abef688 100644
--- a/sys/dev/sound/isa/ess.c
+++ b/sys/dev/sound/isa/ess.c
@@ -92,6 +92,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;
@@ -139,10 +147,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;
@@ -365,7 +374,6 @@ ess_alloc_resources(struct ess_info *sc, device_t dev)
static int
ess_doattach(device_t dev, struct ess_info *sc)
{
- snddev_info *d = device_get_softc(dev);
void *ih;
char status[SND_STATUSLEN], buf[64];
int ver;
@@ -374,7 +382,7 @@ ess_doattach(device_t dev, struct ess_info *sc)
goto no;
if (ess_reset_dsp(sc))
goto no;
- mixer_init(d, &ess_mixer, sc);
+ mixer_init(dev, &ess_mixer, sc);
sc->duplex = 0;
sc->newspeed = 0;
diff --git a/sys/dev/sound/isa/mss.c b/sys/dev/sound/isa/mss.c
index 71f9dd5..93347c5 100644
--- a/sys/dev/sound/isa/mss.c
+++ b/sys/dev/sound/isa/mss.c
@@ -108,20 +108,22 @@ static int mssmix_init(snd_mixer *m);
static int mssmix_set(snd_mixer *m, unsigned dev, unsigned left, unsigned right);
static int mssmix_setrecsrc(snd_mixer *m, u_int32_t src);
static snd_mixer mss_mixer = {
- "MSS mixer",
- mssmix_init,
- mssmix_set,
- mssmix_setrecsrc,
+ "MSS mixer",
+ mssmix_init,
+ NULL,
+ mssmix_set,
+ mssmix_setrecsrc,
};
static int ymmix_init(snd_mixer *m);
static int ymmix_set(snd_mixer *m, unsigned dev, unsigned left, unsigned right);
static int ymmix_setrecsrc(snd_mixer *m, u_int32_t src);
static snd_mixer yamaha_mixer = {
- "OPL3-SAx mixer",
- ymmix_init,
- ymmix_set,
- ymmix_setrecsrc,
+ "OPL3-SAx mixer",
+ ymmix_init,
+ NULL,
+ ymmix_set,
+ ymmix_setrecsrc,
};
static devclass_t pcm_devclass;
@@ -178,6 +180,14 @@ static pcm_channel mss_chantemplate = {
msschan_trigger,
msschan_getptr,
msschan_getcaps,
+ NULL, /* free */
+ NULL, /* nop1 */
+ NULL, /* nop2 */
+ NULL, /* nop3 */
+ NULL, /* nop4 */
+ NULL, /* nop5 */
+ NULL, /* nop6 */
+ NULL, /* nop7 */
};
#define MD_AD1848 0x91
@@ -862,7 +872,6 @@ ymf_test(device_t dev, struct mss_info *mss)
static int
mss_doattach(device_t dev, struct mss_info *mss)
{
- snddev_info *d = device_get_softc(dev);
void *ih;
int flags = device_get_flags(dev);
char status[SND_STATUSLEN];
@@ -902,7 +911,7 @@ mss_doattach(device_t dev, struct mss_info *mss)
io_wr(mss, 0, bits);
printf("drq/irq conf %x\n", io_rd(mss, 0));
}
- mixer_init(d, (mss->bd_id == MD_YM0020)? &yamaha_mixer : &mss_mixer, mss);
+ mixer_init(dev, (mss->bd_id == MD_YM0020)? &yamaha_mixer : &mss_mixer, mss);
switch (mss->bd_id) {
case MD_OPTI931:
bus_setup_intr(dev, mss->irq, INTR_TYPE_TTY, opti931_intr, mss, &ih);
diff --git a/sys/dev/sound/isa/sb.c b/sys/dev/sound/isa/sb.c
index d975311..21c3e6f 100644
--- a/sys/dev/sound/isa/sb.c
+++ b/sys/dev/sound/isa/sb.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))
diff --git a/sys/dev/sound/isa/sb16.c b/sys/dev/sound/isa/sb16.c
index d975311..21c3e6f 100644
--- a/sys/dev/sound/isa/sb16.c
+++ b/sys/dev/sound/isa/sb16.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))
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))
OpenPOWER on IntegriCloud