diff options
author | Ruslan Bukin <br@FreeBSD.org> | 2019-05-01 15:03:12 +0000 |
---|---|---|
committer | Ruslan Bukin <br@FreeBSD.org> | 2019-05-01 15:03:12 +0000 |
commit | adf208e786bb8b4604436f0915acd979423e1e3b (patch) | |
tree | eda667610d05de09fcde2bed1134538bd337542c /sys/riscv | |
parent | 65f1fc3f3feb55841a55fac2f5fbb09618d9811b (diff) | |
download | src-adf208e786bb8b4604436f0915acd979423e1e3b.tar.gz src-adf208e786bb8b4604436f0915acd979423e1e3b.zip |
Deactivate IRQ resource by calling to intr_deactivate_irq().
This is the part of INTRNG support that was missed.
Sponsored by: DARPA, AFRL
Notes
Notes:
svn path=/head/; revision=346994
Diffstat (limited to 'sys/riscv')
-rw-r--r-- | sys/riscv/riscv/nexus.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sys/riscv/riscv/nexus.c b/sys/riscv/riscv/nexus.c index 040c6d0f1fb8..9549f37e0df1 100644 --- a/sys/riscv/riscv/nexus.c +++ b/sys/riscv/riscv/nexus.c @@ -357,13 +357,17 @@ nexus_deactivate_resource(device_t bus, device_t child, int type, int rid, bus_size_t psize; bus_space_handle_t vaddr; - psize = (bus_size_t)rman_get_size(r); - vaddr = rman_get_bushandle(r); + if (type == SYS_RES_MEMORY || type == SYS_RES_IOPORT) { + psize = (bus_size_t)rman_get_size(r); + vaddr = rman_get_bushandle(r); - if (vaddr != 0) { - bus_space_unmap(&memmap_bus, vaddr, psize); - rman_set_virtual(r, NULL); - rman_set_bushandle(r, 0); + if (vaddr != 0) { + bus_space_unmap(&memmap_bus, vaddr, psize); + rman_set_virtual(r, NULL); + rman_set_bushandle(r, 0); + } + } else if (type == SYS_RES_IRQ) { + intr_deactivate_irq(child, r); } return (rman_deactivate_resource(r)); |