[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