diff options
author | Martin Schlemmer <azarah@gentoo.org> | 2003-01-20 19:33:41 +0000 |
---|---|---|
committer | Martin Schlemmer <azarah@gentoo.org> | 2003-01-20 19:33:41 +0000 |
commit | 51c3fbff25b9826a2d1be3c6465e4c5e8264ba20 (patch) | |
tree | 3181852b3f9d16e290edc654ff929498518b7cdb /media-video/nvidia-kernel | |
parent | small fix (diff) | |
download | gentoo-2-51c3fbff25b9826a2d1be3c6465e4c5e8264ba20.tar.gz gentoo-2-51c3fbff25b9826a2d1be3c6465e4c5e8264ba20.tar.bz2 gentoo-2-51c3fbff25b9826a2d1be3c6465e4c5e8264ba20.zip |
update 2.5 patches
Diffstat (limited to 'media-video/nvidia-kernel')
5 files changed, 282 insertions, 29 deletions
diff --git a/media-video/nvidia-kernel/ChangeLog b/media-video/nvidia-kernel/ChangeLog index 10daa03f4a6b..e05fdb8f7b35 100644 --- a/media-video/nvidia-kernel/ChangeLog +++ b/media-video/nvidia-kernel/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for media-video/nvidia-kernel # Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL -# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/ChangeLog,v 1.19 2003/01/19 08:58:17 azarah Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/ChangeLog,v 1.20 2003/01/20 19:33:41 azarah Exp $ + + 20 Jan 2003; Martin Schlemmer <azarah@gentoo.org> nvidia-kernel-1.0.3123-r2.ebuild : + + Update modules for kernel 2.5.54 or later, closing bug #13915. 19 Jan 2003; Martin Schlemmer <azarah@gentoo.org> nvidia-kernel-1.0.4191-r1.ebuild : diff --git a/media-video/nvidia-kernel/files/NVIDIA_kernel-1.0-3123-2.5-module.diff b/media-video/nvidia-kernel/files/NVIDIA_kernel-1.0-3123-2.5-module.diff new file mode 100644 index 000000000000..3bf3f41f91d8 --- /dev/null +++ b/media-video/nvidia-kernel/files/NVIDIA_kernel-1.0-3123-2.5-module.diff @@ -0,0 +1,206 @@ +diff -Nudr NVIDIA_kernel-1.0-3123/Makefile NVIDIA_kernel-1.0-3123-fixed/Makefile +--- NVIDIA_kernel-1.0-3123/Makefile 2002-12-07 14:49:12.000000000 +0000 ++++ NVIDIA_kernel-1.0-3123-fixed/Makefile 2002-12-07 14:48:04.000000000 +0000 +@@ -2,7 +2,7 @@ + # Generated on 'builder3' on Tue Aug 27 15:56:49 PDT 2002 + + LINUX_MODULE=Module-linux +-DEFINES=-D__KERNEL__ -DMODULE -D_LOOSE_KERNEL_NAMES -DNTRM -D_GNU_SOURCE -DRM_HEAPMGR -D_LOOSE_KERNEL_NAMES -D__KERNEL__ -DMODULE -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVEL=3123 -DNV_UNIX -DNV_LINUX -DNVCPU_X86 ++DEFINES=-D__KERNEL__ -DMODULE -D_LOOSE_KERNEL_NAMES -DKBUILD_MODNAME="NVdriver" -DNTRM -D_GNU_SOURCE -DRM_HEAPMGR -D_LOOSE_KERNEL_NAMES -D__KERNEL__ -DMODULE -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVEL=3123 -DNV_UNIX -DNV_LINUX -DNVCPU_X86 + INCLUDES=-I. + + OBJECTS=nv.o os-interface.o os-registry.o +@@ -73,6 +73,9 @@ + + VERSION_HDR=nv_compiler.h + ++# required for rusty's depmod utility ++O=.o ++ + all: install + + install: package-install +diff -Nudr NVIDIA_kernel-1.0-3123/nv.c NVIDIA_kernel-1.0-3123-fixed/nv.c +--- NVIDIA_kernel-1.0-3123/nv.c 2002-12-07 14:49:14.000000000 +0000 ++++ NVIDIA_kernel-1.0-3123-fixed/nv.c 2002-12-07 14:48:38.000000000 +0000 +@@ -116,10 +116,6 @@ + *** EXPORTS to Linux Kernel + ***/ + +-/* linux module interface functions (called by linux kernel) */ +-int init_module(void); +-void cleanup_module(void); +- + /* nv_kern_ functions, interfaces used by linux kernel */ + void nv_kern_vma_open(struct vm_area_struct *vma); + void nv_kern_vma_release(struct vm_area_struct *vma); +@@ -152,6 +148,7 @@ + /* character driver entry points */ + + static struct file_operations nv_fops = { ++ owner: THIS_MODULE, + poll: nv_kern_poll, + ioctl: nv_kern_ioctl, + mmap: nv_kern_mmap, +@@ -906,7 +903,7 @@ + *** EXPORTS to Linux Kernel + ***/ + +-int init_module(void) ++static int __init nv_init_module(void) + { + int rc; + int num_devices, i; +@@ -928,7 +925,7 @@ + #endif + + if (rc < 0) { +- NV_EMSG((nv_state_t *) 0, "init_module: register failed"); ++ NV_EMSG((nv_state_t *) 0, "nv_init_module: register failed"); + return rc; + } + +@@ -952,7 +949,7 @@ + } while(0); + #endif + +- NV_DMSG((nv_state_t *) 0, "init_module: major number %d", nv_major); ++ NV_DMSG((nv_state_t *) 0, "nv_init_module: major number %d", nv_major); + + for (i = 0; i < NV_MAX_DEVICES; i++) { + /* +@@ -1004,7 +1001,7 @@ + return rc; + } + +-void cleanup_module(void) ++static void __exit nv_exit_module(void) + { + int rc; + nv_linux_state_t *nvl; +@@ -1013,7 +1010,7 @@ + /* remove /proc/driver/nvidia */ + nvos_proc_remove(); + +- NV_DMSG((nv_state_t *) 0, "cleanup_module"); ++ NV_DMSG((nv_state_t *) 0, "nv_exit_module"); + + #ifdef CONFIG_PM + /* XXX PM egads, is this the right place to do this? */ +@@ -1050,7 +1047,7 @@ + #endif + + if (rc < 0) { +- NV_EMSG((nv_state_t *) 0, "cleanup_module: unregister nv failed"); ++ NV_EMSG((nv_state_t *) 0, "nv_exit_module: unregister nv failed"); + } + + #ifdef CONFIG_DEVFS_FS +@@ -1064,6 +1061,8 @@ + #endif + } + ++module_init(nv_init_module); ++module_exit(nv_exit_module); + + /* this is only called when the vmas are duplicated. + * this appears to only happen when the process is cloned to create +@@ -1081,11 +1080,8 @@ + nv_alloc_t *at = (nv_alloc_t *) VMA_PRIVATE(vma); + at->usage_count++; + } +- +- MOD_INC_USE_COUNT; + } + +- + void + nv_kern_vma_release(struct vm_area_struct *vma) + { +@@ -1107,8 +1103,6 @@ + VMA_PRIVATE(vma) = NULL; + } + } +- +- MOD_DEC_USE_COUNT; + } + + #if defined(NVCPU_IA64) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 9)) +@@ -1182,8 +1176,6 @@ + goto failed; + } + +- MOD_INC_USE_COUNT; +- + nvl = &nv_linux_devices[devnum]; + nv = NV_STATE_PTR(nvl); + +@@ -1241,7 +1233,7 @@ + * Finalize the tasklet initialization started in init_module and + * enable bottom-half processing. + */ +- nvl->tl.func = rm_isr_bh; ++ nvl->tl.func = (void *) rm_isr_bh; + nvl->tl.data = (unsigned long) nv->pdev; + tasklet_enable(&nvl->tl); + +@@ -1255,7 +1247,6 @@ + return 0; + + failed: +- MOD_DEC_USE_COUNT; + if (nv) + nv_unmap_device(nv); + nv_unlock_ldata(nv); +@@ -1334,8 +1325,6 @@ + NV_KFREE(file->private_data); + file->private_data = (void *) 0; + +- MOD_DEC_USE_COUNT; +- + return 0; + } + +@@ -1496,9 +1485,6 @@ + + vma->vm_file = file; + +- /* just increment usage count, rather than calling vma_open */ +- MOD_INC_USE_COUNT; +- + return 0; + } + +@@ -1603,12 +1589,13 @@ + + switch (_IOC_NR(cmd)) + { ++#ifndef KERNEL_2_5 + /* debug tool; zap the module use count so we can unload driver */ + /* even if it is confused */ + case _IOC_NR(NV_IOCTL_MODULE_RESET): + atomic_set(&__this_module.uc.usecount, 1); + break; +- ++#endif + /* enable/disable interrupts + used by X driver to make card quiet while Xserver unnecessarily + diddles around in its PCI config space +@@ -1794,8 +1781,6 @@ + /* save the nv away in file->private_data */ + NV_HIDE_IN_FILEP(file, nv); + +- MOD_INC_USE_COUNT; +- + NV_DMSG(nv, "open"); + + nv->flags |= NV_FLAG_OPEN + NV_FLAG_CONTROL; +@@ -1840,8 +1825,6 @@ + NV_KFREE(file->private_data); + file->private_data = (void *) 0; + +- MOD_DEC_USE_COUNT; +- + return 0; + } + diff --git a/media-video/nvidia-kernel/files/NVIDIA_kernel-1.0-3123-2.5-tl.diff b/media-video/nvidia-kernel/files/NVIDIA_kernel-1.0-3123-2.5-tl.diff index 268be2f59c6c..e3246f930bc7 100644 --- a/media-video/nvidia-kernel/files/NVIDIA_kernel-1.0-3123-2.5-tl.diff +++ b/media-video/nvidia-kernel/files/NVIDIA_kernel-1.0-3123-2.5-tl.diff @@ -1,6 +1,6 @@ -diff -ru NVIDIA_kernel-1.0-3123/Makefile NVIDIA_kernel-1.0-3123-2.5/Makefile ---- NVIDIA_kernel-1.0-3123/Makefile Tue Aug 27 16:36:53 2002 -+++ NVIDIA_kernel-1.0-3123-2.5/Makefile Sun Oct 20 07:40:08 2002 +diff -ru NVIDIA_kernel-1.0-3123/Makefile NVIDIA_kernel-1.0-3123-2.5-tl/Makefile +--- NVIDIA_kernel-1.0-3123/Makefile 2002-08-28 01:36:53.000000000 +0200 ++++ NVIDIA_kernel-1.0-3123-2.5-tl/Makefile 2002-12-17 20:09:14.000000000 +0100 @@ -8,7 +8,7 @@ OBJECTS=nv.o os-interface.o os-registry.o HEADERS=os-interface.h nv-linux.h nv-misc.h nv.h nv-ids.h rmretval.h nvtypes.h nv_ref.h $(VERSION_HDR) @@ -21,9 +21,9 @@ diff -ru NVIDIA_kernel-1.0-3123/Makefile NVIDIA_kernel-1.0-3123-2.5/Makefile endif DEFINES+=$(EXTRA_DEFINES) -diff -ru NVIDIA_kernel-1.0-3123/nv-linux.h NVIDIA_kernel-1.0-3123-2.5/nv-linux.h ---- NVIDIA_kernel-1.0-3123/nv-linux.h Tue Aug 27 16:36:53 2002 -+++ NVIDIA_kernel-1.0-3123-2.5/nv-linux.h Sat Oct 26 07:38:02 2002 +diff -ru NVIDIA_kernel-1.0-3123/nv-linux.h NVIDIA_kernel-1.0-3123-2.5-tl/nv-linux.h +--- NVIDIA_kernel-1.0-3123/nv-linux.h 2002-08-28 01:36:53.000000000 +0200 ++++ NVIDIA_kernel-1.0-3123-2.5-tl/nv-linux.h 2002-12-17 20:12:38.000000000 +0100 @@ -28,19 +28,14 @@ #include <linux/module.h> #include <linux/version.h> @@ -105,7 +105,7 @@ diff -ru NVIDIA_kernel-1.0-3123/nv-linux.h NVIDIA_kernel-1.0-3123-2.5/nv-linux.h # define in_irq() (local_irq_count[smp_processor_id()]) # define LINUX_VMA_OFFS(vma) ((vma)->vm_offset) # define GET_MODULE_SYMBOL(mod, sym) (void*) get_module_symbol((mod), (sym)) -@@ -136,7 +122,50 @@ +@@ -136,9 +122,58 @@ # define MEM_MAP_READ_COUNT(map_nr) (atomic_read(&mem_map[map_nr].count)) # define MEM_MAP_INC_COUNT(map_nr) (atomic_inc(&mem_map[map_nr].count)) # define MEM_MAP_DEC_COUNT(map_nr) (atomic_dec(&mem_map[map_nr].count)) @@ -118,8 +118,8 @@ diff -ru NVIDIA_kernel-1.0-3123/nv-linux.h NVIDIA_kernel-1.0-3123-2.5/nv-linux.h +# define MEM_MAP_READ_COUNT(map_nr) (atomic_read(&(map_nr)->count)) +# define MEM_MAP_INC_COUNT(map_nr) (atomic_inc(&(map_nr)->count)) +# define MEM_MAP_DEC_COUNT(map_nr) (atomic_dec(&(map_nr)->count)) -+#endif -+ + #endif + +#ifdef KERNEL_2_5 +# define NV_DEVICE_NUMBER(_minor) ((kdev_val(_minor)) & 0x0f) +# define NV_IS_CONTROL_DEVICE(_minor) (((kdev_val(_minor)) & 0xff) == 0xff) @@ -140,24 +140,32 @@ diff -ru NVIDIA_kernel-1.0-3123/nv-linux.h NVIDIA_kernel-1.0-3123-2.5/nv-linux.h +# define MAY_SLEEP() (!in_interrupt()) +#endif + -+#ifdef KERNEL_2_5 -+#define PTE_OFFSET(pmd, address, pte) (pte = *pte_offset_map(pmd, address)) -+#else -+#ifdef pte_offset_atomic ++#ifdef pte_offset_map /* rmap-vm or 2.5 */ +#define PTE_OFFSET(pmd, address, pte) \ + { \ + pte_t *pPTE; \ -+ pPTE = pte_offset_atomic(pmd, address); \ ++ pPTE = pte_offset_map(pmd, address); \ + pte = *pPTE; \ -+ pte_kunmap(pPTE); \ ++ pte_unmap(pPTE); \ + } +#else ++#ifdef pte_offset_atomic /* aa-vm */ ++#define PTE_OFFSET(pmd, address, pte) \ ++ { \ ++ pte_t *pPTE; \ ++ pPTE = pte_offset_atomic(pmd, address); \ ++ pte = *pPTE; \ ++ pte_kunmap(pPTE); \ ++ } ++#else /* !pte_offset_atomic */ +#define PTE_OFFSET(pmd, address, pte) (pte = *pte_offset(pmd, address)) -+#endif - #endif - ++#endif /* pte_offset_atomic */ ++#endif /* pte_offset_map */ ++ #define NV_PAGE_ALIGN(addr) ( ((addr) + PAGE_SIZE - 1) / PAGE_SIZE) -@@ -193,14 +222,11 @@ + #define NV_MASK_OFFSET(addr) ( (addr) & (PAGE_SIZE - 1) ) + +@@ -193,14 +228,11 @@ nv_alloc_t *alloc_queue; @@ -174,9 +182,9 @@ diff -ru NVIDIA_kernel-1.0-3123/nv-linux.h NVIDIA_kernel-1.0-3123-2.5/nv-linux.h /* per-device locking mechanism for access to core rm */ spinlock_t rm_lock; -diff -ru NVIDIA_kernel-1.0-3123/nv.c NVIDIA_kernel-1.0-3123-2.5/nv.c ---- NVIDIA_kernel-1.0-3123/nv.c Tue Aug 27 16:36:52 2002 -+++ NVIDIA_kernel-1.0-3123-2.5/nv.c Sat Oct 26 07:20:31 2002 +diff -ru NVIDIA_kernel-1.0-3123/nv.c NVIDIA_kernel-1.0-3123-2.5-tl/nv.c +--- NVIDIA_kernel-1.0-3123/nv.c 2002-08-28 01:36:52.000000000 +0200 ++++ NVIDIA_kernel-1.0-3123-2.5-tl/nv.c 2002-12-17 20:09:14.000000000 +0100 @@ -36,7 +36,6 @@ // keep track of opened clients and their process id so they // can be free'd up on abnormal close @@ -605,9 +613,9 @@ diff -ru NVIDIA_kernel-1.0-3123/nv.c NVIDIA_kernel-1.0-3123-2.5/nv.c printk("NVRM: not using NVAGP, AGPGART is loaded!!\n"); } else status = rm_init_agp(nv); -diff -ru NVIDIA_kernel-1.0-3123/os-interface.c NVIDIA_kernel-1.0-3123-2.5/os-interface.c ---- NVIDIA_kernel-1.0-3123/os-interface.c Tue Aug 27 16:36:52 2002 -+++ NVIDIA_kernel-1.0-3123-2.5/os-interface.c Sat Oct 26 07:49:14 2002 +diff -ru NVIDIA_kernel-1.0-3123/os-interface.c NVIDIA_kernel-1.0-3123-2.5-tl/os-interface.c +--- NVIDIA_kernel-1.0-3123/os-interface.c 2002-08-28 01:36:52.000000000 +0200 ++++ NVIDIA_kernel-1.0-3123-2.5-tl/os-interface.c 2002-12-17 20:09:14.000000000 +0100 @@ -27,7 +27,7 @@ BOOL os_is_administrator(PHWINFO pDev) @@ -935,7 +943,7 @@ diff -ru NVIDIA_kernel-1.0-3123/os-interface.c NVIDIA_kernel-1.0-3123-2.5/os-int if (err) { printk(KERN_ERR "NVRM: AGPGART: unable to remap %lu pages\n", -@@ -1782,11 +1658,9 @@ +@@ -1782,12 +1658,10 @@ if (sgi_funcs.add_barrier == NULL) { #if defined(TESTING_SWAP) @@ -943,7 +951,8 @@ diff -ru NVIDIA_kernel-1.0-3123/os-interface.c NVIDIA_kernel-1.0-3123-2.5/os-int inter_module_register(ADD_BARRIER_FUNC, THIS_MODULE, sgitest_add_barrier); inter_module_register(REMOVE_BARRIER_FUNC, THIS_MODULE, sgitest_remove_barrier); inter_module_register(SWAP_READY_FUNC, THIS_MODULE, sgitest_swap_ready); --#endif #endif +-#endif sgi_funcs.add_barrier = GET_MODULE_SYMBOL(0, ADD_BARRIER_FUNC); sgi_funcs.remove_barrier = GET_MODULE_SYMBOL(0, REMOVE_BARRIER_FUNC); + sgi_funcs.swap_ready = GET_MODULE_SYMBOL(0, SWAP_READY_FUNC); diff --git a/media-video/nvidia-kernel/files/NVIDIA_kernel-1.0-3123-2.5.54.diff b/media-video/nvidia-kernel/files/NVIDIA_kernel-1.0-3123-2.5.54.diff new file mode 100644 index 000000000000..5f595246a0c0 --- /dev/null +++ b/media-video/nvidia-kernel/files/NVIDIA_kernel-1.0-3123-2.5.54.diff @@ -0,0 +1,25 @@ +diff -ru NVIDIA_kernel-1.0-3123/Makefile NVIDIA_kernel-1.0-3123-2.5.54/Makefile +--- NVIDIA_kernel-1.0-3123/Makefile Wed Jan 8 07:29:46 2003 ++++ NVIDIA_kernel-1.0-3123-2.5.54/Makefile Wed Jan 8 07:31:35 2003 +@@ -58,10 +58,10 @@ + # allow specification of alternate include file tree on command line and extra defines + ifdef SYSINCLUDE + INCLUDES += -I$(SYSINCLUDE) +-INCLUDES += -I$(SYSINCLUDE)/../arch/i386/mach-generic ++INCLUDES += -I$(SYSINCLUDE)/asm/mach-default + else + INCLUDES += -I$(KERNINC) +-INCLUDES += -I$(KERNINC)/../arch/i386/mach-generic ++INCLUDES += -I$(KERNINC)/asm/mach-default + endif + + DEFINES+=$(EXTRA_DEFINES) +@@ -120,7 +120,7 @@ + fi + + NVdriver: gcc-check $(LINUX_MODULE) $(RESMAN_KERNEL_MODULE) +- ld -r -o $@ $(LINUX_MODULE) $(RESMAN_KERNEL_MODULE) ++ ld -d -r -o $@ $(LINUX_MODULE) $(RESMAN_KERNEL_MODULE) + size $@ + + $(VERSION_HDR): diff --git a/media-video/nvidia-kernel/nvidia-kernel-1.0.3123-r2.ebuild b/media-video/nvidia-kernel/nvidia-kernel-1.0.3123-r2.ebuild index fc1c61301d1c..cb30be373604 100644 --- a/media-video/nvidia-kernel/nvidia-kernel-1.0.3123-r2.ebuild +++ b/media-video/nvidia-kernel/nvidia-kernel-1.0.3123-r2.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2002 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/nvidia-kernel-1.0.3123-r2.ebuild,v 1.2 2002/12/09 04:26:14 manson Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/nvidia-kernel/nvidia-kernel-1.0.3123-r2.ebuild,v 1.3 2003/01/20 19:33:41 azarah Exp $ inherit eutils @@ -41,6 +41,7 @@ src_unpack() { local KV_major="`uname -r | cut -d. -f1`" local KV_minor="`uname -r | cut -d. -f2`" + local KV_micro="`uname -r | cut -d. -f3 | sed -e 's:[^0-9].*::'`" cd ${S} if [ "${KV_major}" -eq 2 -a "${KV_minor}" -eq 5 ] @@ -49,6 +50,14 @@ src_unpack() { epatch ${FILESDIR}/${NV_PACKAGE}-2.5-tl.diff EPATCH_SINGLE_MSG="Applying page_alloc.c patch..." \ epatch ${FILESDIR}/${NV_PACKAGE}-2.5-tl-pa.diff + EPATCH_SINGLE_MSG="Applying module patch for 2.5..." \ + epatch ${FILESDIR}/${NV_PACKAGE}-2.5-module.diff + + if [ "${KV_micro}" -gt 53 ] + then + EPATCH_SINGLE_MSG="Applying module patch for 2.5.54 or later..." \ + epatch ${FILESDIR}/${NV_PACKAGE}-2.5.54.diff + fi else EPATCH_SINGLE_MSG="Applying page_alloc.c patch..." \ epatch ${FILESDIR}/${NV_PACKAGE}-pa.diff |