Your message dated Mon, 16 Jan 2006 23:36:27 -0500
with message-id <[EMAIL PROTECTED]>
and subject line Outdated
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--------------------------------------
Received: (at submit) by bugs.debian.org; 4 Nov 2004 07:48:13 +0000
>From [EMAIL PROTECTED] Wed Nov 03 23:48:13 2004
Return-path: <[EMAIL PROTECTED]>
Received: from dialup-4.246.252.249.dial1.sanjose1.level3.net 
(nofear.bounceme.net) [4.246.252.249] 
        by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
        id 1CPcLo-0005vn-00; Wed, 03 Nov 2004 23:48:08 -0800
Received: from [10.1.1.66] (hades [10.1.1.66])
        (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
        (No client certificate requested)
        by nofear.bounceme.net (Postfix) with ESMTP id CFDD573526
        for <[EMAIL PROTECTED]>; Wed,  3 Nov 2004 23:48:04 -0800 (PST)
Message-ID: <[EMAIL PROTECTED]>
Disposition-Notification-To: "C.Y.M" <[EMAIL PROTECTED]>
Date: Wed, 03 Nov 2004 23:48:42 -0800
From: "C.Y.M" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
Organization: CooLNeT
User-Agent: Mozilla Thunderbird 0.8 (Windows/20040913)
X-Accept-Language: en-us, en
MIME-Version: 1.0
To: Submit Debian Bugs <[EMAIL PROTECTED]>
Subject: Missing Required Patches for 2.6.9 and 2.6.10
X-Enigmail-Version: 0.86.1.0
X-Enigmail-Supports: pgp-inline, pgp-mime
Content-Type: multipart/mixed;
 boundary="------------090701080201060005080504"
Delivered-To: [EMAIL PROTECTED]
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2004_03_25 
        (1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-8.0 required=4.0 tests=BAYES_00,HAS_PACKAGE 
        autolearn=no version=2.60-bugs.debian.org_2004_03_25
X-Spam-Level: 

This is a multi-part message in MIME format.
--------------090701080201060005080504
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Package: nvidia-kernel-source
Version: 1.0.6111-2

Description: There are several patches missing from the nvidia-kernel 
sources to function properly in a 2.6.9 or 2.6.10 kernel environment.  I 
can not see any required fixes in 1.0.6111-2.

There is just one patch that is missing from this that I have yet to fix:

/usr/src/modules/nvidia-kernel/nv/nv.c:3340: warning: `inter_module_put' 
is deprecated (declared at include/linux/module.h:58

If you could apply these patches and fix the "inter_module_put" 
deprication, then this should be all up-to-date.

BTW, I have attached a file with these patches for easy application.

1) vmalloc_reserve is undefined

--- nvidia-kernel/nv/nv.c.original      2004-10-22 21:45:50.000000000 -0700
+++ nvidia-kernel/nv/nv.c       2004-10-22 21:46:31.000000000 -0700
@@ -15,6 +15,8 @@
  #include "nv_compiler.h"
  #include "os-agp.h"

+unsigned int __VMALLOC_RESERVE = 128 << 20;
+
  #ifdef MODULE_ALIAS_CHARDEV_MAJOR
  MODULE_ALIAS_CHARDEV_MAJOR(NV_MAJOR_DEVICE_NUMBER);
  #endif

2) The Power suspend model changed in 2.6.9+

--- nvidia-kernel/nv/nv.c.original      2004-10-22 22:18:57.000000000 -0700
+++ nvidia-kernel/nv/nv.c       2004-10-22 22:19:10.000000000 -0700
@@ -3690,9 +3690,16 @@
          return -1;
      }

+    // Fix up problems with PM_SAVE_STATE being removed from 2.6.9
+    #ifdef PM_SAVE_STATE
+      #define PM_TMP PM_SAVE_STATE
+    #else
+      #define PM_TMP PM_SUSPEND
+    #endif
+
      switch (state)
      {
-        case PM_SAVE_STATE:
+        case PM_TMP:
              nv_printf(NV_DBG_INFO, "NVRM: ACPI: received standby 
event\n");
              status = rm_power_management(nv, 0, NV_PM_ACPI_STANDBY);
              break;

3) nv_remap_range is depricated

diff -ruN nvidia-kernel/nv/conftest.sh nvidia-kernel-mod/nv/conftest.sh
--- nvidia-kernel/nv/conftest.sh        2004-08-05 14:09:49.000000000 -0700
+++ nvidia-kernel-mod/nv/conftest.sh    2004-10-23 16:17:05.000000000 -0700
@@ -23,10 +23,26 @@
  fi

  case "$4" in
-    remap_page_range)
+    remap_range)
          #
          # Determine the number of arguments expected by remap_page_range.
-        #
+        # Extended to determine if should use remap_pfn_range() aswell
+        #
+
+        echo "#include <linux/mm.h>
+        int do_test_remap_page_range(void) {
+        pgprot_t pgprot;
+        remap_pfn_range(NULL, 0L, 0L, 0L, pgprot);
+        }" > conftest$$.c
+
+        $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
+        rm -f conftest$$.c
+
+        if [ -f conftest$$.o ]; then
+        echo "PFN"
+        rm -f conftest$$.o;
+        exit 0
+        fi

          echo "#include <linux/mm.h>
          int do_test_remap_page_range(void) {
diff -ruN nvidia-kernel/nv/Makefile.kbuild 
nvidia-kernel-mod/nv/Makefile.kbuild
--- nvidia-kernel/nv/Makefile.kbuild    2004-08-05 14:09:49.000000000 -0700
+++ nvidia-kernel-mod/nv/Makefile.kbuild        2004-10-23 
16:17:05.000000000 -0700
@@ -133,7 +133,7 @@
  endif

  #
-# NVIDIA specific CFLAGS and #define's. The remap_page_range check has 
become
+# NVIDIA specific CFLAGS and #define's. The remap_range check has become
  # necessary with the introduction of the five argument version to 
Linux 2.4
  # distribution kernels; this conflicting change cannot be detected at 
compile
  # time.
@@ -159,16 +159,18 @@
  CFLAGS += -DNV_BUILD_NV_PAT_SUPPORT
  endif

-ifeq ($(PATCHLEVEL), 4)
-  REMAP_PAGE_RANGE := $(shell $(CONFTEST) remap_page_range)
+REMAP_RANGE := $(shell $(CONFTEST) remap_range)

-  ifeq ($(REMAP_PAGE_RANGE), 5)
-    EXTRA_CFLAGS += -DREMAP_PAGE_RANGE_5
-  endif
+ifeq ($(REMAP_RANGE), PFN)
+  EXTRA_CFLAGS += -DREMAP_PFN_RANGE
+endif

-  ifeq ($(REMAP_PAGE_RANGE), 4)
-    EXTRA_CFLAGS += -DREMAP_PAGE_RANGE_4
-  endif
+ifeq ($(REMAP_RANGE), 5)
+  EXTRA_CFLAGS += -DREMAP_PAGE_RANGE_5
+endif
+
+ifeq ($(REMAP_RANGE), 4)
+  EXTRA_CFLAGS += -DREMAP_PAGE_RANGE_4
  endif

  ifeq ($(PATCHLEVEL), 4)
diff -ruN nvidia-kernel/nv/Makefile.nvidia 
nvidia-kernel-mod/nv/Makefile.nvidia
--- nvidia-kernel/nv/Makefile.nvidia    2004-08-05 14:09:49.000000000 -0700
+++ nvidia-kernel-mod/nv/Makefile.nvidia        2004-10-23 
16:17:05.000000000 -0700
@@ -60,12 +60,15 @@
  INSTALL=$(shell which install)
  INCLUDES += -I$(KERNEL_HEADERS)

-REMAP_PAGE_RANGE := $(shell $(CONFTEST) remap_page_range)
+REMAP_RANGE := $(shell $(CONFTEST) remap_range)

-ifeq ($(REMAP_PAGE_RANGE), 5)
+ifeq ($(REMAP_RANGE), PFN)
+  DEFINES += -DREMAP_PFN_RANGE
+endif
+ifeq ($(REMAP_RANGE), 5)
    DEFINES += -DREMAP_PAGE_RANGE_5
  endif
-ifeq ($(REMAP_PAGE_RANGE), 4)
+ifeq ($(REMAP_RANGE), 4)
    DEFINES += -DREMAP_PAGE_RANGE_4
  endif

diff -ruN nvidia-kernel/nv/nv.c nvidia-kernel-mod/nv/nv.c
--- nvidia-kernel/nv/nv.c       2004-10-23 16:20:30.000000000 -0700
+++ nvidia-kernel-mod/nv/nv.c   2004-10-23 16:03:23.000000000 -0700
@@ -1765,7 +1765,7 @@
              pages = nv->regs->size / PAGE_SIZE;

          vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
-        if (NV_REMAP_PAGE_RANGE(vma->vm_start,
+        if (NV_REMAP_RANGE(vma->vm_start,
                               NV_VMA_OFFSET(vma),
                               vma->vm_end - vma->vm_start,
                               vma->vm_page_prot))
@@ -1784,7 +1784,7 @@
              pages = nv->fb->size / PAGE_SIZE;

          vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
-        if (NV_REMAP_PAGE_RANGE(vma->vm_start,
+        if (NV_REMAP_RANGE(vma->vm_start,
                               NV_VMA_OFFSET(vma),
                               vma->vm_end - vma->vm_start,
                               vma->vm_page_prot))
@@ -1902,7 +1902,7 @@
          while (pages--)
          {
              page = (unsigned long) at->page_table[i++].phys_addr;
-            if (NV_REMAP_PAGE_RANGE(start, page, PAGE_SIZE, 
vma->vm_page_prot))
+            if (NV_REMAP_RANGE(start, page, PAGE_SIZE, vma->vm_page_prot))
                  return -EAGAIN;
              start += PAGE_SIZE;
              pos += PAGE_SIZE;
diff -ruN nvidia-kernel/nv/nv-linux.h nvidia-kernel-mod/nv/nv-linux.h
--- nvidia-kernel/nv/nv-linux.h 2004-08-05 14:09:49.000000000 -0700
+++ nvidia-kernel-mod/nv/nv-linux.h     2004-10-23 16:17:05.000000000 -0700
@@ -567,13 +567,15 @@
   * relevant releases to date use it. This version was backported to 2.4
   * without means to identify the change, hence this hack.
   */
-#if defined(KERNEL_2_6) || defined(REMAP_PAGE_RANGE_5)
-#define NV_REMAP_PAGE_RANGE(x...)    remap_page_range(vma, x)
+#if defined(REMAP_PFN_RANGE)
+#define NV_REMAP_RANGE(from, offset, x...) remap_pfn_range(vma, from, 
((offset)) >> PAGE_SHIFT, x)
+#elif defined(KERNEL_2_6) || defined(REMAP_PAGE_RANGE_5)
+#define NV_REMAP_RANGE(x...) remap_page_range(vma, x)
  #elif defined(REMAP_PAGE_RANGE_4)
-#define NV_REMAP_PAGE_RANGE(x...)    remap_page_range(x)
+#define NV_REMAP_RANGE(x...) remap_page_range(x)
  #else
  #warning "conftest.sh failed, assuming old Linux 2.4 remap_page_range(4)!"
-#define NV_REMAP_PAGE_RANGE(x...)    remap_page_range(x)
+#define NV_REMAP_RANGE(x...) remap_page_range(x
  #endif

  #if defined(pmd_offset_map)
diff -ruN nvidia-kernel/nv/os-agp.c nvidia-kernel-mod/nv/os-agp.c
--- nvidia-kernel/nv/os-agp.c   2004-08-05 14:09:49.000000000 -0700
+++ nvidia-kernel-mod/nv/os-agp.c       2004-10-23 16:17:05.000000000 -0700
@@ -331,10 +331,10 @@
      agp_addr = agpinfo.aper_base + (agp_data->offset << PAGE_SHIFT);

  #if defined(NVCPU_IA64)
-    err = NV_REMAP_PAGE_RANGE(vma->vm_start, (size_t) agp_addr,
+    err = NV_REMAP_RANGE(vma->vm_start, (size_t) agp_addr,
                         agp_data->num_pages << PAGE_SHIFT, 
vma->vm_page_prot);
  #else
-    err = NV_REMAP_PAGE_RANGE(vma->vm_start, (size_t) agp_addr,
+    err = NV_REMAP_RANGE(vma->vm_start, (size_t) agp_addr,
                         agp_data->num_pages << PAGE_SHIFT, PAGE_SHARED);
  #endif

diff -ruN nvidia-kernel/nv/os-interface.c 
nvidia-kernel-mod/nv/os-interface.c
--- nvidia-kernel/nv/os-interface.c     2004-08-05 14:09:49.000000000 -0700
+++ nvidia-kernel-mod/nv/os-interface.c 2004-10-23 16:17:05.000000000 -0700
@@ -1087,7 +1087,7 @@

      vma = (struct vm_area_struct *) *priv;

-    if (NV_REMAP_PAGE_RANGE(vma->vm_start,
+    if (NV_REMAP_RANGE(vma->vm_start,
                  start & PAGE_MASK, size_bytes, PAGE_SHARED))
          return NULL;


4) nv_find_class is depricated

--- nvidia-kernel/nv/nv.c.original      2004-10-22 21:50:23.000000000 -0700
+++ nvidia-kernel/nv/nv.c       2004-10-22 21:50:31.000000000 -0700
@@ -641,7 +641,7 @@
      u8     cap_ptr;
      int    func, slot;

-    dev = pci_find_class(class << 8, NULL);
+    dev = pci_get_class(class << 8, NULL);
      do {
          for (func = 0; func < 8; func++) {
              slot = PCI_SLOT(dev->devfn);
@@ -652,7 +652,7 @@
              if (cap_ptr)
                  return fn;
          }
-        dev = pci_find_class(class << 8, dev);
+        dev = pci_get_class(class << 8, dev);
      } while (dev);

      return NULL;
@@ -3485,12 +3485,12 @@
      struct pci_dev *dev = NULL;
      int count = 0;

-    dev = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
+    dev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
      while (dev)
      {
          if ((dev->vendor == 0x10de) && (dev->device >= 0x20))
              count++;
-        dev = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
+        dev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
      }
      return count;
  }

5) nv_enable_pci

--- nvidia-kernel/nv/nv.c.orig  2004-10-22 22:22:43.000000000 -0700
+++ nvidia-kernel/nv/nv.c       2004-10-22 22:27:09.000000000 -0700
@@ -1227,6 +1227,7 @@
          {
              nv_state_t *nv = NV_STATE_PTR(&nv_linux_devices[i]);
              release_mem_region(nv->bar.regs.address, nv->bar.regs.size);
+            pci_disable_device(nv_linux_devices[i].dev);
          }
      }

@@ -3518,6 +3519,28 @@
          return -1;
      }

+    // enable io, mem, and bus-mastering in pci config space
+    if (pci_enable_device(dev) != 0)
+    {
+        nv_printf(NV_DBG_ERRORS,
+            "NVRM: pci_enable_device failed, aborting\n");
+        return -1;
+    }
+
+    // request ownership of our bars
+    // keeps other drivers from banging our registers.
+    // only do this for registers, as vesafb requests our framebuffer 
and will
+    // keep us from working properly
+    if (!request_mem_region(dev->resource[0].start,
+                            dev->resource[0].end - 
dev->resource[0].start + 1,
+                            "nvidia"))
+    {
+        nv_printf(NV_DBG_ERRORS,
+            "NVRM: pci_request_regions failed, aborting\n");
+        goto err_disable_dev;
+    }
+    pci_set_master(dev);
+
      /* initialize bus-dependent config state */
      nvl = &nv_linux_devices[num_nv_devices];
      nv  = NV_STATE_PTR(nvl);
@@ -3547,7 +3570,7 @@
          nv_printf(NV_DBG_ERRORS, "NVRM: Please check your BIOS 
settings.         \n");
          nv_printf(NV_DBG_ERRORS, "NVRM: [Plug & Play OS   ] should be 
set to NO  \n");
          nv_printf(NV_DBG_ERRORS, "NVRM: [Assign IRQ to VGA] should be 
set to YES \n");
-        return -1;
+        goto err_zero_dev;
      }

      /* sanity check the IO apertures */
@@ -3571,39 +3594,9 @@
                  nv->bar.fb.address, nv->bar.fb.size);
          }

-        /* Clear out the data */
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
-    }
-
-    // request ownership of our bars
-    // keeps other drivers from banging our registers.
-    // only do this for registers, as vesafb requests our framebuffer 
and will
-    // keep us from working properly
-    if (!request_mem_region(nv->bar.regs.address, nv->bar.regs.size, 
"nvidia"))
-    {
-        nv_printf(NV_DBG_ERRORS,
-            "NVRM: pci_request_regions failed, aborting\n");
-
-        /* Clear out the data */
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
+        goto err_zero_dev;
      }

-    // enable io, mem, and bus-mastering in pci config space
-    if (pci_enable_device(dev) != 0)
-    {
-        nv_printf(NV_DBG_ERRORS,
-            "NVRM: pci_enable_device failed, aborting\n");
-
-        pci_release_regions(dev);
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
-    }
-    pci_set_master(nvl->dev);

  #if defined(NV_BUILD_NV_PAT_SUPPORT)
      if (nvos_find_pci_express_capability(nvl->dev))
@@ -3620,13 +3613,7 @@
      if (nv->bar.regs.map == NULL)
      {
          nv_printf(NV_DBG_ERRORS, "NVRM: failed to map registers!!\n");
-
-        pci_release_regions(dev);
-
-        /* Clear out the data */
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
+        goto err_zero_dev;
      }
      nv->flags |= NV_FLAG_MAP_REGS_EARLY;
  #endif
@@ -3643,6 +3630,15 @@
      num_nv_devices++;

      return 0;
+
+err_zero_dev:
+    os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
+    release_mem_region(dev->resource[0].start,
+                       dev->resource[0].end - dev->resource[0].start + 1);
+
+err_disable_dev:
+    pci_disable_device(dev);
+    return -1;
  }

  int NV_API_CALL nv_no_incoherent_mappings




--------------090701080201060005080504
Content-Type: text/plain;
 name="nvidia-kernel-source.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="nvidia-kernel-source.diff"

diff -ruN nvidia-kernel-orig/nv/conftest.sh nvidia-kernel/nv/conftest.sh
--- nvidia-kernel-orig/nv/conftest.sh   2004-11-03 02:17:46.000000000 -0800
+++ nvidia-kernel/nv/conftest.sh        2004-11-03 23:24:48.000000000 -0800
@@ -23,13 +23,29 @@
 fi
 
 case "$4" in
-    remap_page_range)
+    remap_range)
         #
         # Determine the number of arguments expected by remap_page_range.
+        # Extended to determine if should use remap_pfn_range() aswell
         #
 
         echo "#include <linux/mm.h>
         int do_test_remap_page_range(void) {
+        pgprot_t pgprot;
+        remap_pfn_range(NULL, 0L, 0L, 0L, pgprot);
+        }" > conftest$$.c
+
+        $CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
+        rm -f conftest$$.c
+
+        if [ -f conftest$$.o ]; then
+        echo "PFN"
+        rm -f conftest$$.o;
+        exit 0
+        fi
+
+        echo "#include <linux/mm.h>
+        int do_test_remap_page_range(void) {
            pgprot_t pgprot;
            remap_page_range(NULL, 0L, 0L, 0L, pgprot);
         }" > conftest$$.c
diff -ruN nvidia-kernel-orig/nv/Makefile.kbuild nvidia-kernel/nv/Makefile.kbuild
--- nvidia-kernel-orig/nv/Makefile.kbuild       2004-11-03 02:17:46.000000000 
-0800
+++ nvidia-kernel/nv/Makefile.kbuild    2004-11-03 23:24:48.000000000 -0800
@@ -133,7 +133,7 @@
 endif
 
 #
-# NVIDIA specific CFLAGS and #define's. The remap_page_range check has become
+# NVIDIA specific CFLAGS and #define's. The remap_range check has become
 # necessary with the introduction of the five argument version to Linux 2.4
 # distribution kernels; this conflicting change cannot be detected at compile
 # time.
@@ -159,16 +159,18 @@
 CFLAGS += -DNV_BUILD_NV_PAT_SUPPORT
 endif
 
-ifeq ($(PATCHLEVEL), 4)
-  REMAP_PAGE_RANGE := $(shell $(CONFTEST) remap_page_range)
+REMAP_RANGE := $(shell $(CONFTEST) remap_range)
 
-  ifeq ($(REMAP_PAGE_RANGE), 5)
-    EXTRA_CFLAGS += -DREMAP_PAGE_RANGE_5
-  endif
+ifeq ($(REMAP_RANGE), PFN)
+  EXTRA_CFLAGS += -DREMAP_PFN_RANGE
+endif
 
-  ifeq ($(REMAP_PAGE_RANGE), 4)
-    EXTRA_CFLAGS += -DREMAP_PAGE_RANGE_4
-  endif
+ifeq ($(REMAP_RANGE), 5)  
+  EXTRA_CFLAGS += -DREMAP_PAGE_RANGE_5
+endif
+
+ifeq ($(REMAP_RANGE), 4)
+  EXTRA_CFLAGS += -DREMAP_PAGE_RANGE_4
 endif
 
 ifeq ($(PATCHLEVEL), 4)
diff -ruN nvidia-kernel-orig/nv/Makefile.nvidia nvidia-kernel/nv/Makefile.nvidia
--- nvidia-kernel-orig/nv/Makefile.nvidia       2004-11-03 02:17:46.000000000 
-0800
+++ nvidia-kernel/nv/Makefile.nvidia    2004-11-03 23:24:48.000000000 -0800
@@ -60,12 +60,15 @@
 INSTALL=$(shell which install)
 INCLUDES += -I$(KERNEL_HEADERS)
 
-REMAP_PAGE_RANGE := $(shell $(CONFTEST) remap_page_range)
+REMAP_RANGE := $(shell $(CONFTEST) remap_range)
 
-ifeq ($(REMAP_PAGE_RANGE), 5)
+ifeq ($(REMAP_RANGE), PFN)
+  DEFINES += -DREMAP_PFN_RANGE
+endif
+ifeq ($(REMAP_RANGE), 5)
   DEFINES += -DREMAP_PAGE_RANGE_5
 endif
-ifeq ($(REMAP_PAGE_RANGE), 4)
+ifeq ($(REMAP_RANGE), 4)
   DEFINES += -DREMAP_PAGE_RANGE_4
 endif
 
diff -ruN nvidia-kernel-orig/nv/nv.c nvidia-kernel/nv/nv.c
--- nvidia-kernel-orig/nv/nv.c  2004-11-03 02:17:46.000000000 -0800
+++ nvidia-kernel/nv/nv.c       2004-11-03 23:24:48.000000000 -0800
@@ -15,6 +15,8 @@
 #include "nv_compiler.h"
 #include "os-agp.h"
 
+unsigned int __VMALLOC_RESERVE = 128 << 20;
+
 #ifdef MODULE_ALIAS_CHARDEV_MAJOR
 MODULE_ALIAS_CHARDEV_MAJOR(NV_MAJOR_DEVICE_NUMBER);
 #endif
@@ -639,7 +641,7 @@
     u8     cap_ptr;
     int    func, slot;
 
-    dev = pci_find_class(class << 8, NULL);
+    dev = pci_get_class(class << 8, NULL);
     do {
         for (func = 0; func < 8; func++) {
             slot = PCI_SLOT(dev->devfn);
@@ -650,7 +652,7 @@
             if (cap_ptr)
                 return fn;
         }
-        dev = pci_find_class(class << 8, dev);
+        dev = pci_get_class(class << 8, dev);
     } while (dev);
 
     return NULL;
@@ -1225,6 +1227,7 @@
         {
             nv_state_t *nv = NV_STATE_PTR(&nv_linux_devices[i]);
             release_mem_region(nv->bar.regs.address, nv->bar.regs.size);
+            pci_disable_device(nv_linux_devices[i].dev);
         }
     }
 
@@ -1762,7 +1765,7 @@
             pages = nv->regs->size / PAGE_SIZE;
 
         vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
-        if (NV_REMAP_PAGE_RANGE(vma->vm_start,
+        if (NV_REMAP_RANGE(vma->vm_start,
                              NV_VMA_OFFSET(vma),
                              vma->vm_end - vma->vm_start,
                              vma->vm_page_prot))
@@ -1781,7 +1784,7 @@
             pages = nv->fb->size / PAGE_SIZE;
 
         vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
-        if (NV_REMAP_PAGE_RANGE(vma->vm_start,
+        if (NV_REMAP_RANGE(vma->vm_start,
                              NV_VMA_OFFSET(vma),
                              vma->vm_end - vma->vm_start,
                              vma->vm_page_prot))
@@ -1899,7 +1902,7 @@
         while (pages--)
         {
             page = (unsigned long) at->page_table[i++].phys_addr;
-            if (NV_REMAP_PAGE_RANGE(start, page, PAGE_SIZE, vma->vm_page_prot))
+            if (NV_REMAP_RANGE(start, page, PAGE_SIZE, vma->vm_page_prot))
                 return -EAGAIN;
             start += PAGE_SIZE;
             pos += PAGE_SIZE;
@@ -3483,12 +3486,12 @@
     struct pci_dev *dev = NULL;
     int count = 0;
 
-    dev = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
+    dev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
     while (dev)
     {
         if ((dev->vendor == 0x10de) && (dev->device >= 0x20))
             count++;
-        dev = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
+        dev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
     }
     return count;
 }
@@ -3516,6 +3519,28 @@
         return -1;
     }
 
+    // enable io, mem, and bus-mastering in pci config space
+    if (pci_enable_device(dev) != 0)
+    {
+        nv_printf(NV_DBG_ERRORS,
+            "NVRM: pci_enable_device failed, aborting\n");
+        return -1;
+    }
+
+    // request ownership of our bars
+    // keeps other drivers from banging our registers.
+    // only do this for registers, as vesafb requests our framebuffer and will
+    // keep us from working properly
+    if (!request_mem_region(dev->resource[0].start,
+                            dev->resource[0].end - dev->resource[0].start + 1,
+                            "nvidia"))
+    {
+        nv_printf(NV_DBG_ERRORS,
+            "NVRM: pci_request_regions failed, aborting\n");
+        goto err_disable_dev;
+    }
+    pci_set_master(dev);
+
     /* initialize bus-dependent config state */
     nvl = &nv_linux_devices[num_nv_devices];
     nv  = NV_STATE_PTR(nvl);
@@ -3545,7 +3570,7 @@
         nv_printf(NV_DBG_ERRORS, "NVRM: Please check your BIOS settings.       
  \n");
         nv_printf(NV_DBG_ERRORS, "NVRM: [Plug & Play OS   ] should be set to 
NO  \n");
         nv_printf(NV_DBG_ERRORS, "NVRM: [Assign IRQ to VGA] should be set to 
YES \n");
-        return -1;
+        goto err_zero_dev;
     }
 
     /* sanity check the IO apertures */
@@ -3569,39 +3594,9 @@
                 nv->bar.fb.address, nv->bar.fb.size);
         }
 
-        /* Clear out the data */
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
-    }
-
-    // request ownership of our bars
-    // keeps other drivers from banging our registers.
-    // only do this for registers, as vesafb requests our framebuffer and will
-    // keep us from working properly
-    if (!request_mem_region(nv->bar.regs.address, nv->bar.regs.size, "nvidia"))
-    {
-        nv_printf(NV_DBG_ERRORS,
-            "NVRM: pci_request_regions failed, aborting\n");
-
-        /* Clear out the data */
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
+        goto err_zero_dev;
     }
 
-    // enable io, mem, and bus-mastering in pci config space
-    if (pci_enable_device(dev) != 0)
-    {
-        nv_printf(NV_DBG_ERRORS,
-            "NVRM: pci_enable_device failed, aborting\n");
-
-        pci_release_regions(dev);
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
-    }
-    pci_set_master(nvl->dev);
 
 #if defined(NV_BUILD_NV_PAT_SUPPORT)
     if (nvos_find_pci_express_capability(nvl->dev))
@@ -3618,13 +3613,7 @@
     if (nv->bar.regs.map == NULL)
     {
         nv_printf(NV_DBG_ERRORS, "NVRM: failed to map registers!!\n");
-
-        pci_release_regions(dev);
-
-        /* Clear out the data */
-        os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
-
-        return -1;
+        goto err_zero_dev;
     }
     nv->flags |= NV_FLAG_MAP_REGS_EARLY;
 #endif
@@ -3641,6 +3630,15 @@
     num_nv_devices++;
 
     return 0;
+
+err_zero_dev:
+    os_mem_set(nvl, 0, sizeof(nv_linux_state_t));
+    release_mem_region(dev->resource[0].start,
+                       dev->resource[0].end - dev->resource[0].start + 1);
+
+err_disable_dev:
+    pci_disable_device(dev);
+    return -1;
 }
 
 int NV_API_CALL nv_no_incoherent_mappings
@@ -3692,9 +3690,16 @@
         return -1;
     }
 
+    // Fix up problems with PM_SAVE_STATE being removed from 2.6.9
+    #ifdef PM_SAVE_STATE
+      #define PM_TMP PM_SAVE_STATE
+    #else
+      #define PM_TMP PM_SUSPEND
+    #endif
+    
     switch (state)
     {
-        case PM_SAVE_STATE:
+        case PM_TMP:
             nv_printf(NV_DBG_INFO, "NVRM: ACPI: received standby event\n");
             status = rm_power_management(nv, 0, NV_PM_ACPI_STANDBY);
             break;
diff -ruN nvidia-kernel-orig/nv/nv-linux.h nvidia-kernel/nv/nv-linux.h
--- nvidia-kernel-orig/nv/nv-linux.h    2004-11-03 02:17:46.000000000 -0800
+++ nvidia-kernel/nv/nv-linux.h 2004-11-03 23:24:48.000000000 -0800
@@ -567,13 +567,15 @@
  * relevant releases to date use it. This version was backported to 2.4 
  * without means to identify the change, hence this hack.
  */
-#if defined(KERNEL_2_6) || defined(REMAP_PAGE_RANGE_5)
-#define NV_REMAP_PAGE_RANGE(x...)    remap_page_range(vma, x)
+#if defined(REMAP_PFN_RANGE)
+#define NV_REMAP_RANGE(from, offset, x...) remap_pfn_range(vma, from, 
((offset)) >> PAGE_SHIFT, x)
+#elif defined(KERNEL_2_6) || defined(REMAP_PAGE_RANGE_5)
+#define NV_REMAP_RANGE(x...) remap_page_range(vma, x)
 #elif defined(REMAP_PAGE_RANGE_4)
-#define NV_REMAP_PAGE_RANGE(x...)    remap_page_range(x)
+#define NV_REMAP_RANGE(x...) remap_page_range(x)
 #else
 #warning "conftest.sh failed, assuming old Linux 2.4 remap_page_range(4)!"
-#define NV_REMAP_PAGE_RANGE(x...)    remap_page_range(x)
+#define NV_REMAP_RANGE(x...) remap_page_range(x
 #endif
 
 #if defined(pmd_offset_map)
diff -ruN nvidia-kernel-orig/nv/os-agp.c nvidia-kernel/nv/os-agp.c
--- nvidia-kernel-orig/nv/os-agp.c      2004-11-03 02:17:46.000000000 -0800
+++ nvidia-kernel/nv/os-agp.c   2004-11-03 23:24:48.000000000 -0800
@@ -331,10 +331,10 @@
     agp_addr = agpinfo.aper_base + (agp_data->offset << PAGE_SHIFT);
 
 #if defined(NVCPU_IA64)
-    err = NV_REMAP_PAGE_RANGE(vma->vm_start, (size_t) agp_addr, 
+    err = NV_REMAP_RANGE(vma->vm_start, (size_t) agp_addr,
                        agp_data->num_pages << PAGE_SHIFT, vma->vm_page_prot);
 #else
-    err = NV_REMAP_PAGE_RANGE(vma->vm_start, (size_t) agp_addr, 
+    err = NV_REMAP_RANGE(vma->vm_start, (size_t) agp_addr,
                        agp_data->num_pages << PAGE_SHIFT, PAGE_SHARED);
 #endif
         
diff -ruN nvidia-kernel-orig/nv/os-interface.c nvidia-kernel/nv/os-interface.c
--- nvidia-kernel-orig/nv/os-interface.c        2004-11-03 02:17:46.000000000 
-0800
+++ nvidia-kernel/nv/os-interface.c     2004-11-03 23:24:48.000000000 -0800
@@ -1087,7 +1087,7 @@
 
     vma = (struct vm_area_struct *) *priv;
 
-    if (NV_REMAP_PAGE_RANGE(vma->vm_start,
+    if (NV_REMAP_RANGE(vma->vm_start,
                 start & PAGE_MASK, size_bytes, PAGE_SHARED))
         return NULL;
 

--------------090701080201060005080504--

---------------------------------------
Received: (at 279611-close) by bugs.debian.org; 17 Jan 2006 04:36:13 +0000
>From [EMAIL PROTECTED] Mon Jan 16 20:36:13 2006
Return-path: <[EMAIL PROTECTED]>
Received: from mail.vif.com ([216.239.64.153] helo=buddha.vif.com)
        by spohr.debian.org with esmtp (Exim 4.50)
        id 1EyiZp-0001H2-1U
        for [EMAIL PROTECTED]; Mon, 16 Jan 2006 20:36:13 -0800
Received: from [216.239.78.243] (ip216-239-78-243.vif.net [216.239.78.243])
        by buddha.vif.com (8.13.1/8.13.1) with ESMTP id k0H4aBux080953
        for <[EMAIL PROTECTED]>; Mon, 16 Jan 2006 23:36:11 -0500 (EST)
        (envelope-from [EMAIL PROTECTED])
Message-ID: <[EMAIL PROTECTED]>
Date: Mon, 16 Jan 2006 23:36:27 -0500
From: Filipus Klutiero <[EMAIL PROTECTED]>
User-Agent: Mozilla Thunderbird 1.0.2 (X11/20051002)
X-Accept-Language: fr, en
MIME-Version: 1.0
To: [EMAIL PROTECTED]
Subject: Outdated
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-vif-MailScanner-Information: Please contact the ISP for more information
X-vif-MailScanner: Found to be clean
X-vif-MailScanner-From: [EMAIL PROTECTED]
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2005_01_02 
        (1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Level: 
X-Spam-Status: No, hits=-2.0 required=4.0 tests=BAYES_00,ONEWORD autolearn=no 
        version=2.60-bugs.debian.org_2005_01_02

Hi,
thanks for your bug report, but this now seems to be outdated as the 
nvidia module can build fine on at least 2.6.12.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to