aboutsummaryrefslogtreecommitdiff
path: root/sys/riscv
diff options
context:
space:
mode:
authorRuslan Bukin <br@FreeBSD.org>2019-05-01 15:03:12 +0000
committerRuslan Bukin <br@FreeBSD.org>2019-05-01 15:03:12 +0000
commitadf208e786bb8b4604436f0915acd979423e1e3b (patch)
treeeda667610d05de09fcde2bed1134538bd337542c /sys/riscv
parent65f1fc3f3feb55841a55fac2f5fbb09618d9811b (diff)
downloadsrc-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.c16
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));