x11/nvidia-driver fix
Emiel Kollof
coolvibe at hackerheaven.org
Wed Feb 25 11:13:26 PST 2004
This cvs diff against the nvidia-driver port fixes compilation and
operation of the x11/nvidia-driver port. Module loads, X works, and GLX
works a treat too:
critter# glxgears
11602 frames in 5.0 seconds = 2320.400 FPS
Please test and commit. :)
Cheers,
Emiel
--
Index: files/patch-dfly
===================================================================
RCS file: /home/dcvs/dfports/x11/nvidia-driver/files/patch-dfly,v
retrieving revision 1.1
diff -u -r1.1 patch-dfly
--- files/patch-dfly 12 Feb 2004 00:42:24 -0000 1.1
+++ files/patch-dfly 25 Feb 2004 18:56:15 -0000
@@ -1,6 +1,18 @@
+diff -urN ./module/Makefile ../../nvidia-patched/module/Makefile
+--- ./module/Makefile Wed May 28 18:51:52 2003
++++ ../../nvidia-patched/module/Makefile Wed Feb 25 19:35:22 2004
+@@ -6,7 +6,7 @@
+ KMOD= nvidia
+ SRCS= nvidia_ctl.c nvidia_dev.c nvidia_linux.c nvidia_os.c nvidia_os_pci.c nvidia_os_registry.c nvidia_pci.c nvidia_subr.c nvidia_sysctl.c
+ SRCS+= device_if.h bus_if.h pci_if.h vnode_if.h
+-CFLAGS+= -I${NVIDIA_ROOT}/src -D__KERNEL__ -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVEL=4365 -DNVCPU_X86 -DNV_BSD -DNV_INT64_OK -DNV_UNIX
++CFLAGS+= -I${NVIDIA_ROOT}/src -D__KERNEL__ -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVEL=4365 -DNVCPU_X86 -DNV_BSD -DNV_INT64_OK -DNV_UNIX -Werror
+ NVOBJ= ${NVIDIA_ROOT}/obj/nv-kernel.o
+ OBJS+= NVIDIA.o
+ NOOBJ= true
diff -urN ./src/nv-dragonfly.h ../../nvidia-patched/src/nv-dragonfly.h
--- ./src/nv-dragonfly.h Thu Jan 1 01:00:00 1970
-+++ ../../nvidia-patched/src/nv-dragonfly.h Tue Feb 10 22:25:38 2004
++++ ../../nvidia-patched/src/nv-dragonfly.h Wed Feb 25 19:32:38 2004
@@ -0,0 +1,295 @@
+/* _NVRM_COPYRIGHT_BEGIN_
+ *
@@ -299,7 +311,7 @@
+
diff -urN ./src/nvidia_ctl.c ../../nvidia-patched/src/nvidia_ctl.c
--- ./src/nvidia_ctl.c Wed May 28 18:51:52 2003
-+++ ../../nvidia-patched/src/nvidia_ctl.c Tue Feb 10 22:14:00 2004
++++ ../../nvidia-patched/src/nvidia_ctl.c Wed Feb 25 19:32:38 2004
@@ -11,7 +11,11 @@
#include "nv-misc.h"
#include "os-interface.h"
@@ -379,7 +391,7 @@
}
diff -urN ./src/nvidia_dev.c ../../nvidia-patched/src/nvidia_dev.c
--- ./src/nvidia_dev.c Wed May 28 18:51:52 2003
-+++ ../../nvidia-patched/src/nvidia_dev.c Tue Feb 10 22:15:53 2004
++++ ../../nvidia-patched/src/nvidia_dev.c Wed Feb 25 19:32:38 2004
@@ -11,7 +11,11 @@
#include "nv-misc.h"
#include "os-interface.h"
@@ -439,7 +451,7 @@
int nvidia_dev_open(
diff -urN ./src/nvidia_linux.c ../../nvidia-patched/src/nvidia_linux.c
--- ./src/nvidia_linux.c Wed May 28 18:51:52 2003
-+++ ../../nvidia-patched/src/nvidia_linux.c Tue Feb 10 22:16:38 2004
++++ ../../nvidia-patched/src/nvidia_linux.c Wed Feb 25 19:32:38 2004
@@ -11,7 +11,11 @@
#include "nv-misc.h"
#include "os-interface.h"
@@ -466,7 +478,7 @@
struct linux_ioctl_handler nvidia_handler = {
diff -urN ./src/nvidia_os.c ../../nvidia-patched/src/nvidia_os.c
--- ./src/nvidia_os.c Wed May 28 18:51:52 2003
-+++ ../../nvidia-patched/src/nvidia_os.c Tue Feb 10 22:18:50 2004
++++ ../../nvidia-patched/src/nvidia_os.c Wed Feb 25 19:51:00 2004
@@ -11,7 +11,11 @@
#include "nv-misc.h"
#include "os-interface.h"
@@ -488,9 +500,21 @@
return suser(curproc);
#else
return suser(curthread);
+@@ -301,7 +305,11 @@
+ *pte |= PG_N;
+ va += PAGE_SIZE;
+ } while (va < (vm_offset_t) vm + size);
++#if defined(__FreeBSD__) && !defined(__DragonFly__)
+ invltlb();
++#else /* DragonFly BSD */
++ cpu_invltlb();
++#endif
+ }
+
+ return vm;
diff -urN ./src/nvidia_os_pci.c ../../nvidia-patched/src/nvidia_os_pci.c
--- ./src/nvidia_os_pci.c Wed May 28 18:51:52 2003
-+++ ../../nvidia-patched/src/nvidia_os_pci.c Tue Feb 10 22:20:42 2004
++++ ../../nvidia-patched/src/nvidia_os_pci.c Wed Feb 25 19:32:38 2004
@@ -11,7 +11,11 @@
#include "nv-misc.h"
#include "os-interface.h"
@@ -505,7 +529,7 @@
VOID* os_pci_init_handle(
diff -urN ./src/nvidia_os_registry.c ../../nvidia-patched/src/nvidia_os_registry.c
--- ./src/nvidia_os_registry.c Wed May 28 18:51:52 2003
-+++ ../../nvidia-patched/src/nvidia_os_registry.c Tue Feb 10 22:21:20 2004
++++ ../../nvidia-patched/src/nvidia_os_registry.c Wed Feb 25 19:32:38 2004
@@ -11,7 +11,11 @@
#include "nv-misc.h"
#include "os-interface.h"
@@ -520,7 +544,7 @@
/*
diff -urN ./src/nvidia_pci.c ../../nvidia-patched/src/nvidia_pci.c
--- ./src/nvidia_pci.c Wed May 28 18:51:52 2003
-+++ ../../nvidia-patched/src/nvidia_pci.c Tue Feb 10 22:22:11 2004
++++ ../../nvidia-patched/src/nvidia_pci.c Wed Feb 25 19:32:38 2004
@@ -11,7 +11,11 @@
#include "nv-misc.h"
#include "os-interface.h"
@@ -559,7 +583,7 @@
status = nvidia_detach(dev);
diff -urN ./src/nvidia_subr.c ../../nvidia-patched/src/nvidia_subr.c
--- ./src/nvidia_subr.c Wed May 28 18:51:52 2003
-+++ ../../nvidia-patched/src/nvidia_subr.c Tue Feb 10 22:22:58 2004
++++ ../../nvidia-patched/src/nvidia_subr.c Wed Feb 25 19:32:38 2004
@@ -11,7 +11,11 @@
#include "nv-misc.h"
#include "os-interface.h"
@@ -624,7 +648,7 @@
diff -urN ./src/nvidia_sysctl.c ../../nvidia-patched/src/nvidia_sysctl.c
--- ./src/nvidia_sysctl.c Wed May 28 18:51:52 2003
-+++ ../../nvidia-patched/src/nvidia_sysctl.c Tue Feb 10 22:23:53 2004
++++ ../../nvidia-patched/src/nvidia_sysctl.c Wed Feb 25 19:50:41 2004
@@ -11,7 +11,11 @@
#include "nv-misc.h"
#include "os-interface.h"
@@ -637,3 +661,15 @@
struct sysctl_ctx_list sysctl_ctx;
+@@ -231,7 +235,11 @@
+ * It also doesn't make sense to to iterate over multiple
+ * functions if this isn't a multi-function device.
+ */
++#if defined(__FreeBSD__) && !defined(__DragonFly__)
+ hdrtype = pci_read_config(dev, PCIR_HEADERTYPE, 1);
++#else
++ hdrtype = pci_read_config(dev, PCIR_HDRTYPE, 1);
++#endif
+
+ if ((hdrtype & PCIM_MFDEV) == 0)
+ break;
More information about the Submit
mailing list