[ATrpms-users] nVidia 8776 for 2911 kernel

Harry Orenstein holists at verizon.net
Sat Feb 17 03:21:04 CET 2007


Axel,

I posted a request last month for a version of nvidia kmdl for 2.6.19-1.2895 
kernel.  Now I see that there's been a kernel update to 2.6.19-1.2911.  I 
think you may have missed the original request because it got held up during 
my registration for the list.

Now seems like a good time to ask again (but for the updated kernel).  I 
realized after making the request that 8776 is not compatible with 2.6.19 
kernels, but I also saw the attached patch on the nVidia forums that is 
supposed to fix compatibility.  Any chance this could happen?  TIA!!


-- Harry O.
-------------- next part --------------
diff -u ../nv.20061203/Makefile.kbuild ./Makefile.kbuild
--- ../nv.20061203/Makefile.kbuild	2006-10-16 22:31:37.000000000 -0700
+++ ./Makefile.kbuild	2006-12-03 18:07:10.133657000 -0800
@@ -191,6 +191,9 @@
     EXTRA_CFLAGS += -DNV_PM_MESSAGE_T_PRESENT
   endif
 
+  ifeq ($(shell $(CONFTEST) irq_handler_ptregs), 1)
+    EXTRA_CFLAGS += -DNV_IRQ_HANDLER_WITH_PTREGS_PRESENT
+  endif
   ifeq ($(shell $(CONFTEST) pci_choose_state), 1)
     EXTRA_CFLAGS += -DNV_PCI_CHOOSE_STATE_PRESENT
   endif
Only in ../nv.20061203: Module.symvers
diff -u ../nv.20061203/conftest.sh ./conftest.sh
--- ../nv.20061203/conftest.sh	2006-10-16 22:31:37.000000000 -0700
+++ ./conftest.sh	2006-12-03 18:07:10.133657000 -0800
@@ -841,4 +841,28 @@
         fi
     ;;
 
+    irq_handler_ptregs)
+        #
+        # Determine whether irq_handler_t takes a 'struct ptregs *'
+        # argument.
+        #
+
+        echo "#include <linux/autoconf.h>
+        #include <linux/interrupt.h>
+        irq_handler_t conftest_isr;
+        int conftest_irq_handler_ptregs(void) {
+            return conftest_isr(0, NULL);
+        }" > conftest$$.c
+
+        $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
+        rm -f conftest$$.c
+
+        if [ -f conftest$$.o ]; then
+            rm -f conftest$$.o
+            echo 0
+        else
+            echo 1
+        fi
+    ;;
+
 esac
diff -u ../nv.20061203/nv-i2c.c ./nv-i2c.c
--- ../nv.20061203/nv-i2c.c	2006-10-16 22:31:37.000000000 -0700
+++ ./nv-i2c.c	2006-12-03 18:09:14.157408000 -0800
@@ -23,8 +23,6 @@
 static struct i2c_algorithm nv_i2c_algo = {
     .master_xfer      = nv_i2c_algo_xfer,
     .smbus_xfer       = NULL,
-    .slave_send       = NULL,
-    .slave_recv       = NULL,
     .algo_control     = nv_i2c_algo_control,
     .functionality    = nv_i2c_algo_functionality,
 };
diff -u ../nv.20061203/nv-linux.h ./nv-linux.h
--- ../nv.20061203/nv-linux.h	2006-10-16 22:31:37.000000000 -0700
+++ ./nv-linux.h	2006-12-03 18:07:10.133657000 -0800
@@ -14,13 +14,13 @@
 
 #include "nv.h"
 
-#include <linux/config.h>
+#include <linux/autoconf.h>
 #include <linux/version.h>
 #include <linux/utsname.h>
 
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
-#  error This driver does not support pre-2.4 kernels!
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 7)
+#  error This driver does not support 2.4 kernels older than 2.4.7!
 #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
 #  define KERNEL_2_4
 #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
@@ -716,6 +716,10 @@
 #define NV_PM_SUPPORT_OLD_STYLE_APM
 #endif
 
+#if defined(KERNEL_2_4)
+#define NV_IRQ_HANDLER_WITH_PTREGS_PRESENT
+#endif
+
 #ifndef minor
 # define minor(x) MINOR(x)
 #endif
diff -u ../nv.20061203/nv.c ./nv.c
--- ../nv.20061203/nv.c	2006-10-16 22:31:37.000000000 -0700
+++ ./nv.c	2006-12-03 18:07:10.133657000 -0800
@@ -252,7 +252,11 @@
 long          nv_kern_unlocked_ioctl(struct file *, unsigned int, unsigned long);
 long          nv_kern_compat_ioctl(struct file *, unsigned int, unsigned long);
 void          nv_kern_isr_bh(unsigned long);
+#if defined(NV_IRQ_HANDLER_WITH_PTREGS_PRESENT)
 irqreturn_t   nv_kern_isr(int, void *, struct pt_regs *);
+#else
+irqreturn_t   nv_kern_isr(int, void *);
+#endif
 void          nv_kern_rc_timer(unsigned long);
 #if defined(NV_PM_SUPPORT_OLD_STYLE_APM)
 static int    nv_kern_apm_event(struct pm_dev *, pm_request_t, void *);
@@ -2561,8 +2565,10 @@
  */
 irqreturn_t nv_kern_isr(
     int   irq,
-    void *arg,
-    struct pt_regs *regs
+    void *arg
+#if defined(NV_IRQ_HANDLER_WITH_PTREGS_PRESENT)
+    ,struct pt_regs *regs
+#endif
 )
 {
     nv_linux_state_t *nvl = (void *) arg;


More information about the atrpms-users mailing list