public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Zephaniah E. Hull" <warp@babylon.d2dc.net>
To: "J.A. Magallon" <jamagallon@able.es>
Cc: davidm@hpl.hp.com, Lista Linux-Kernel <linux-kernel@vger.kernel.org>
Subject: Re: patch to enable Nvidia v5336 on v2.6.11 kernel (was Re: inter_module_get and __symbol_get)
Date: Tue, 25 Jan 2005 15:50:47 -0500	[thread overview]
Message-ID: <20050125205046.GA19738@babylon.d2dc.net> (raw)
In-Reply-To: <1106657785l.6979l.0l@werewolf.able.es>


[-- Attachment #1.1: Type: text/plain, Size: 1246 bytes --]

On Tue, Jan 25, 2005 at 12:56:25PM +0000, J.A. Magallon wrote:
<snip>
> You can use the latest drivers (6629) with this patches:
> 
> http://www.minion.de/files/1.0-6629/
> 
> They work fine up to -rc2.
> 
> If you want to use the driver with -mm, you have to kill the support
> for AGPGART in nvidia driver, add -DNOAGPGART to EXTRA_CFLAGS in the
> makefile. It will require a big change to use the multi-agp patches
> in -mm. But you are restricted to those AGPs supported by nvidia
> (ah, and don't load any agp related module...).

For values of big changes that equal the attached patch.

I'm using it on 2.6.10-mm3.  I sent it to Zander however since there is
no way to detect the new multi-agp support barring some sick hacks it
has not gone in.

It may conflict with the support for the 2.6.11-rc kernels, in which
case when I next upgrade I'll find out and write a new one.
> 
> Ah, just a ton of workarounds....



-- 
	1024D/E65A7801 Zephaniah E. Hull <warp@babylon.d2dc.net>
	   92ED 94E4 B1E6 3624 226D  5727 4453 008B E65A 7801
	    CCs of replies from mailing lists are requested.

<Mercury> Be warned, I have a keyboard I can use to beat luser's heads
          in, and then continue to use... (=:]
<Deek> Mercury: Oh, an IBM. :)

[-- Attachment #1.2: nvidia_multiagp.diff --]
[-- Type: text/plain, Size: 2808 bytes --]

diff -ur modules/nvidia-kernel/nv/nv-linux.h modules_new/nvidia-kernel/nv/nv-linux.h
--- modules/nvidia-kernel/nv/nv-linux.h	2004-11-12 14:14:20.000000000 -0500
+++ modules_new/nvidia-kernel/nv/nv-linux.h	2005-01-18 23:25:03.000000000 -0500
@@ -854,6 +854,9 @@
 
     /* lock for linux-specific alloc queue */
     struct semaphore at_lock;
+
+    /* AGP handle. */
+    struct agp_bridge_data *agp_bridge;
 } nv_linux_state_t;
 
 
diff -ur modules/nvidia-kernel/nv/os-agp.c modules_new/nvidia-kernel/nv/os-agp.c
--- modules/nvidia-kernel/nv/os-agp.c	2004-11-12 14:14:20.000000000 -0500
+++ modules_new/nvidia-kernel/nv/os-agp.c	2005-01-18 23:22:51.000000000 -0500
@@ -70,6 +70,7 @@
     U032  agp_fw;
     void *bitmap;
     U032 bitmap_size;
+    nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
 
     memset( (void *) &gart, 0, sizeof(agp_gart));
 
@@ -82,7 +83,7 @@
      * the memory controller.
      */
 
-    if (drm_agp_p->acquire())
+    if (!(nvl->agp_bridge = drm_agp_p->acquire(nvl->dev)))
     {
         nv_printf(NV_DBG_ERRORS, "NVRM: AGPGART: backend in use\n");
         inter_module_put("drm_agp");
@@ -110,7 +111,7 @@
      */
     drm_agp_p->copy_info(&agpinfo);
 #else
-    if (drm_agp_p->copy_info(&agpinfo)) {
+    if (drm_agp_p->copy_info(nvl->agp_bridge, &agpinfo)) {
         nv_printf(NV_DBG_ERRORS,
             "NVRM: AGPGART: kernel reports chipset as unsupported\n");
         goto failed;
@@ -170,7 +171,7 @@
     if (!(agp_rate & 0x00000004)) agpinfo.mode &= ~0x00000004;
     if (!(agp_rate & 0x00000002)) agpinfo.mode &= ~0x00000002;
     
-    drm_agp_p->enable(agpinfo.mode);
+    drm_agp_p->enable(nvl->agp_bridge, agpinfo.mode);
 
     *ap_phys_base   = (void*) agpinfo.aper_base;
     *ap_mapped_base = (void*) gart.aperture;
@@ -182,7 +183,7 @@
 
 failed:
     MTRR_DEL(gart); /* checks gart.mtrr */
-    drm_agp_p->release();
+    drm_agp_p->release(nvl->agp_bridge);
     inter_module_put("drm_agp");
 
     return -1;
@@ -198,6 +199,7 @@
     return 1;
 #else
     void *bitmap;
+    nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
 
     /* sanity check to make sure we should actually be here. */
     if (!gart.ready)
@@ -213,7 +215,7 @@
         NV_IOUNMAP(gart.aperture, RM_PAGE_SIZE);
     }
 
-    drm_agp_p->release();
+    drm_agp_p->release(nvl->agp_bridge);
 
     inter_module_put("drm_agp");
 
@@ -247,6 +249,7 @@
     int err;
     agp_priv_data *data;
     RM_STATUS status;
+    nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
 
     if (!gart.ready)
     {
@@ -262,7 +265,7 @@
         return RM_ERROR;
     }
 
-    ptr = drm_agp_p->allocate_memory(PageCount, AGP_NORMAL_MEMORY);
+    ptr = drm_agp_p->allocate_memory(nvl->agp_bridge, PageCount, AGP_NORMAL_MEMORY);
     if (ptr == NULL)
     {
         *pAddress = (void*) 0;

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2005-01-25 20:54 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-06 21:32 inter_module_get and __symbol_get Terence Ripperda
2005-01-06 21:57 ` Brian Gerst
2005-01-06 22:51   ` Terence Ripperda
2005-01-08  4:00     ` Jon Smirl
2005-01-12 19:37       ` Terence Ripperda
2005-01-12 22:21         ` Brian Gerst
2005-01-08  3:10   ` Keith Owens
2005-01-24 22:36     ` David Mosberger
2005-01-24 22:44       ` Keith Owens
2005-01-24 22:52         ` David Mosberger
2005-01-24 22:54           ` Keith Owens
2005-01-24 22:58             ` David Mosberger
2005-01-24 23:03               ` Keith Owens
2005-01-25  0:51                 ` patch to enable Nvidia v5336 on v2.6.11 kernel (was Re: inter_module_get and __symbol_get) David Mosberger
2005-01-25 12:56                   ` J.A. Magallon
2005-01-25 20:50                     ` Zephaniah E. Hull [this message]
2005-01-26  0:02                       ` J.A. Magallon
2005-01-26  0:25                         ` Zephaniah E. Hull
2005-01-26  0:25                       ` J.A. Magallon
2005-01-25  1:01                 ` inter_module_get and __symbol_get Jon Smirl
2005-01-24 23:19           ` Jon Smirl
2005-01-24 23:23             ` David Mosberger
2005-01-25  5:31         ` Terence Ripperda
2005-01-25  5:59           ` Chris Wedgwood

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050125205046.GA19738@babylon.d2dc.net \
    --to=warp@babylon.d2dc.net \
    --cc=davidm@hpl.hp.com \
    --cc=jamagallon@able.es \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox