summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2001-09-29 08:01:42 +0000
committercg <cg@FreeBSD.org>2001-09-29 08:01:42 +0000
commit16faee5a1dcf674cf8bcb0ad2244b280a4f48401 (patch)
tree26db596c82519fa5d829c75bcf5c19bde59abbec /sys
parent3113c29f9549f5a7c16cc00242d500baddb6c12a (diff)
downloadFreeBSD-src-16faee5a1dcf674cf8bcb0ad2244b280a4f48401.zip
FreeBSD-src-16faee5a1dcf674cf8bcb0ad2244b280a4f48401.tar.gz
release isa dma channels on unload.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/sound/isa/mss.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/sound/isa/mss.c b/sys/dev/sound/isa/mss.c
index 5c2596a..78b61c3 100644
--- a/sys/dev/sound/isa/mss.c
+++ b/sys/dev/sound/isa/mss.c
@@ -268,12 +268,16 @@ mss_release_resources(struct mss_info *mss, device_t dev)
mss->irq);
mss->irq = 0;
}
- if (mss->drq2 && mss->drq2 != mss->drq1) {
- bus_release_resource(dev, SYS_RES_DRQ, mss->drq2_rid,
- mss->drq2);
+ if (mss->drq2) {
+ if (mss->drq2 != mss->drq1) {
+ isa_dma_release(rman_get_start(mss->drq2));
+ bus_release_resource(dev, SYS_RES_DRQ, mss->drq2_rid,
+ mss->drq2);
+ }
mss->drq2 = 0;
}
if (mss->drq1) {
+ isa_dma_release(rman_get_start(mss->drq1));
bus_release_resource(dev, SYS_RES_DRQ, mss->drq1_rid,
mss->drq1);
mss->drq1 = 0;
OpenPOWER on IntegriCloud