summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2000-01-05 04:01:34 +0000
committercg <cg@FreeBSD.org>2000-01-05 04:01:34 +0000
commit5cf59636dd5db7470e709027a977269a8b1d2213 (patch)
tree8b33805d604ab163e5bfb420f3de739f8964e558
parent0710fece79cda2b25b170e7eee3b31964f09aa13 (diff)
downloadFreeBSD-src-5cf59636dd5db7470e709027a977269a8b1d2213.zip
FreeBSD-src-5cf59636dd5db7470e709027a977269a8b1d2213.tar.gz
argh, forgot the bus_dma_tag_creates.
also, panic if channel init fails instead of derefing null.
-rw-r--r--sys/dev/sound/isa/mss.c2
-rw-r--r--sys/dev/sound/isa/sb.c3
-rw-r--r--sys/dev/sound/isa/sb16.c3
-rw-r--r--sys/dev/sound/isa/sb8.c3
-rw-r--r--sys/dev/sound/pcm/channel.c1
5 files changed, 8 insertions, 4 deletions
diff --git a/sys/dev/sound/isa/mss.c b/sys/dev/sound/isa/mss.c
index 8f02d45..b124124 100644
--- a/sys/dev/sound/isa/mss.c
+++ b/sys/dev/sound/isa/mss.c
@@ -890,7 +890,7 @@ mss_doattach(device_t dev, struct mss_info *mss)
/*lowaddr*/BUS_SPACE_MAXADDR_24BIT,
/*highaddr*/BUS_SPACE_MAXADDR,
/*filter*/NULL, /*filterarg*/NULL,
- /*maxsize*/DSP_BUFFSIZE, /*nsegments*/1,
+ /*maxsize*/MSS_BUFFSIZE, /*nsegments*/1,
/*maxsegz*/0x3ffff,
/*flags*/0, &mss->parent_dmat) != 0) {
device_printf(dev, "unable to create dma tag\n");
diff --git a/sys/dev/sound/isa/sb.c b/sys/dev/sound/isa/sb.c
index 1b501a40..b5142d9 100644
--- a/sys/dev/sound/isa/sb.c
+++ b/sys/dev/sound/isa/sb.c
@@ -464,6 +464,7 @@ sb_doattach(device_t dev, struct sb_info *sb)
snddev_info *d = device_get_softc(dev);
void *ih;
char status[SND_STATUSLEN];
+ int bs = (sb->bd_flags & BD_F_ESS)? ESS_BUFFSIZE : DSP_BUFFSIZE;
if (sb_alloc_resources(sb, dev)) goto no;
if (sb_reset_dsp(sb)) goto no;
@@ -482,7 +483,7 @@ sb_doattach(device_t dev, struct sb_info *sb)
/*lowaddr*/BUS_SPACE_MAXADDR_24BIT,
/*highaddr*/BUS_SPACE_MAXADDR,
/*filter*/NULL, /*filterarg*/NULL,
- /*maxsize*/DSP_BUFFSIZE, /*nsegments*/1,
+ /*maxsize*/bs, /*nsegments*/1,
/*maxsegz*/0x3ffff,
/*flags*/0, &sb->parent_dmat) != 0) {
device_printf(dev, "unable to create dma tag\n");
diff --git a/sys/dev/sound/isa/sb16.c b/sys/dev/sound/isa/sb16.c
index 1b501a40..b5142d9 100644
--- a/sys/dev/sound/isa/sb16.c
+++ b/sys/dev/sound/isa/sb16.c
@@ -464,6 +464,7 @@ sb_doattach(device_t dev, struct sb_info *sb)
snddev_info *d = device_get_softc(dev);
void *ih;
char status[SND_STATUSLEN];
+ int bs = (sb->bd_flags & BD_F_ESS)? ESS_BUFFSIZE : DSP_BUFFSIZE;
if (sb_alloc_resources(sb, dev)) goto no;
if (sb_reset_dsp(sb)) goto no;
@@ -482,7 +483,7 @@ sb_doattach(device_t dev, struct sb_info *sb)
/*lowaddr*/BUS_SPACE_MAXADDR_24BIT,
/*highaddr*/BUS_SPACE_MAXADDR,
/*filter*/NULL, /*filterarg*/NULL,
- /*maxsize*/DSP_BUFFSIZE, /*nsegments*/1,
+ /*maxsize*/bs, /*nsegments*/1,
/*maxsegz*/0x3ffff,
/*flags*/0, &sb->parent_dmat) != 0) {
device_printf(dev, "unable to create dma tag\n");
diff --git a/sys/dev/sound/isa/sb8.c b/sys/dev/sound/isa/sb8.c
index 1b501a40..b5142d9 100644
--- a/sys/dev/sound/isa/sb8.c
+++ b/sys/dev/sound/isa/sb8.c
@@ -464,6 +464,7 @@ sb_doattach(device_t dev, struct sb_info *sb)
snddev_info *d = device_get_softc(dev);
void *ih;
char status[SND_STATUSLEN];
+ int bs = (sb->bd_flags & BD_F_ESS)? ESS_BUFFSIZE : DSP_BUFFSIZE;
if (sb_alloc_resources(sb, dev)) goto no;
if (sb_reset_dsp(sb)) goto no;
@@ -482,7 +483,7 @@ sb_doattach(device_t dev, struct sb_info *sb)
/*lowaddr*/BUS_SPACE_MAXADDR_24BIT,
/*highaddr*/BUS_SPACE_MAXADDR,
/*filter*/NULL, /*filterarg*/NULL,
- /*maxsize*/DSP_BUFFSIZE, /*nsegments*/1,
+ /*maxsize*/bs, /*nsegments*/1,
/*maxsegz*/0x3ffff,
/*flags*/0, &sb->parent_dmat) != 0) {
device_printf(dev, "unable to create dma tag\n");
diff --git a/sys/dev/sound/pcm/channel.c b/sys/dev/sound/pcm/channel.c
index dc63bd5..3f48edd 100644
--- a/sys/dev/sound/pcm/channel.c
+++ b/sys/dev/sound/pcm/channel.c
@@ -1021,6 +1021,7 @@ chn_init(pcm_channel *c, void *devinfo, int dir)
c->feeder = &feeder_root;
c->buffer.chan = -1;
c->devinfo = c->init(devinfo, &c->buffer, c, dir);
+ if (c->devinfo == NULL) panic("c->init() failed");
chn_setdir(c, dir);
/* And the secondary buffer. */
OpenPOWER on IntegriCloud