diff options
author | cg <cg@FreeBSD.org> | 2001-09-29 08:01:42 +0000 |
---|---|---|
committer | cg <cg@FreeBSD.org> | 2001-09-29 08:01:42 +0000 |
commit | 16faee5a1dcf674cf8bcb0ad2244b280a4f48401 (patch) | |
tree | 26db596c82519fa5d829c75bcf5c19bde59abbec | |
parent | 3113c29f9549f5a7c16cc00242d500baddb6c12a (diff) | |
download | FreeBSD-src-16faee5a1dcf674cf8bcb0ad2244b280a4f48401.zip FreeBSD-src-16faee5a1dcf674cf8bcb0ad2244b280a4f48401.tar.gz |
release isa dma channels on unload.
-rw-r--r-- | sys/dev/sound/isa/mss.c | 10 |
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; |