aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJessica Clarke <jrtc27@FreeBSD.org>2021-10-17 14:32:20 +0000
committerJessica Clarke <jrtc27@FreeBSD.org>2021-10-17 14:32:20 +0000
commit60d962e0410340f107d062e8f4389c0d467613a2 (patch)
treeb2d42fe66979772ddb081fe43d025eff9d4db9c7
parent682c00a6ce2f3870e9c698b283ee2b2a56c28c0b (diff)
downloadsrc-60d962e0410340f107d062e8f4389c0d467613a2.tar.gz
src-60d962e0410340f107d062e8f4389c0d467613a2.zip
LinuxKPI: Implement _ioremap_attr for riscv
Now that riscv implements pmap_mapdev_attr we can enable the non-stub implementation for riscv, which is needed for drm-kmod to not fail at run time for drivers that need to map I/O regions. Reviewed by: hselasky, bz MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D32446
-rw-r--r--sys/compat/linuxkpi/common/include/linux/io.h2
-rw-r--r--sys/compat/linuxkpi/common/src/linux_compat.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/io.h b/sys/compat/linuxkpi/common/include/linux/io.h
index 074417b892f9..e402ebed0665 100644
--- a/sys/compat/linuxkpi/common/include/linux/io.h
+++ b/sys/compat/linuxkpi/common/include/linux/io.h
@@ -390,7 +390,7 @@ _outb(u_char data, u_int port)
}
#endif
-#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) || defined(__aarch64__)
+#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) || defined(__aarch64__) || defined(__riscv)
void *_ioremap_attr(vm_paddr_t phys_addr, unsigned long size, int attr);
#else
#define _ioremap_attr(...) NULL
diff --git a/sys/compat/linuxkpi/common/src/linux_compat.c b/sys/compat/linuxkpi/common/src/linux_compat.c
index 7a062ca36eba..a62cf93dbd82 100644
--- a/sys/compat/linuxkpi/common/src/linux_compat.c
+++ b/sys/compat/linuxkpi/common/src/linux_compat.c
@@ -1822,7 +1822,7 @@ vmmap_remove(void *addr)
return (vmmap);
}
-#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) || defined(__aarch64__)
+#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) || defined(__aarch64__) || defined(__riscv)
void *
_ioremap_attr(vm_paddr_t phys_addr, unsigned long size, int attr)
{
@@ -1845,7 +1845,7 @@ iounmap(void *addr)
vmmap = vmmap_remove(addr);
if (vmmap == NULL)
return;
-#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) || defined(__aarch64__)
+#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) || defined(__aarch64__) || defined(__riscv)
pmap_unmapdev((vm_offset_t)addr, vmmap->vm_size);
#endif
kfree(vmmap);