Multi-card nVidia driver patch
Bob Richmond
bob at lorez.org
Wed Dec 16 22:14:44 CET 2009
The new vga arbiter API in Fedora 12's kernel breaks the nVidia driver
when used with multiple cards. Drivers that don't need legacy VGA I/O
are supposed to opt-out of VGA Arbitration.
I posted a patch to nvnews last night that is working for a few people
(including myself) for multi-card configurations.
http://www.nvnews.net/vbulletin/showthread.php?t=142656
Can the nvidia driver maintainer incorporate the patch in the rpmfusion
package? The patch is attached.
-------------- next part --------------
*** usr/src/nv/nv-linux.h.orig 2009-11-22 19:27:38.000000000 -0800
--- usr/src/nv/nv-linux.h 2009-12-16 11:02:22.000000000 -0800
***************
*** 83,102 ****
--- 83,105 ----
#if !defined(KERNEL_2_4)
#include <linux/sched.h> /* suser(), capable() replacement */
#include <linux/moduleparam.h> /* module_param() */
#include <linux/smp_lock.h> /* kernel_locked */
#include <asm/tlbflush.h> /* flush_tlb(), flush_tlb_all() */
#include <asm/kmap_types.h> /* page table entry lookup */
#endif
#include <linux/pci.h> /* pci_find_class, etc */
+ #if defined(CONFIG_VGA_ARB)
+ #include <linux/vgaarb.h> /* vga_set_legacy_decoding */
+ #endif
#include <linux/interrupt.h> /* tasklets, interrupt helpers */
#include <linux/timer.h>
#include <asm/div64.h> /* do_div() */
#include <asm/system.h> /* cli, sli, save_flags */
#include <asm/io.h> /* ioremap, virt_to_phys */
#include <asm/uaccess.h> /* access_ok */
#include <asm/page.h> /* PAGE_OFFSET */
#include <asm/pgtable.h> /* pte bit definitions */
*** usr/src/nv/nv.c.orig 2009-11-22 19:27:36.000000000 -0800
--- usr/src/nv/nv.c 2009-12-16 11:02:54.000000000 -0800
***************
*** 724,743 ****
--- 724,747 ----
goto failed;
}
entry->data = nv;
entry->read_proc = nv_kern_read_agpinfo;
#if defined(NV_PROC_DIR_ENTRY_HAS_OWNER)
entry->owner = THIS_MODULE;
#endif
}
+ #if defined(CONFIG_VGA_ARB)
+ vga_set_legacy_decoding(dev, VGA_RSRC_NONE);
+ #endif
+
NV_PCI_DEV_PUT(dev);
}
entry = create_proc_entry("version", flags, proc_nvidia);
if (!entry)
goto failed;
entry->read_proc = nv_kern_read_version;
#if defined(NV_PROC_DIR_ENTRY_HAS_OWNER)
entry->owner = THIS_MODULE;
More information about the rpmfusion-developers
mailing list