rpms/kernel/devel drm-nouveau.patch, 1.17, 1.18 kernel.spec, 1.1385, 1.1386

Ben Skeggs bskeggs at fedoraproject.org
Thu Mar 5 05:52:06 UTC 2009


Author: bskeggs

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv21479

Modified Files:
	drm-nouveau.patch kernel.spec 
Log Message:
* Thu Mar 05 2009 Ben Skeggs <bskeggs at redhat.com>
- drm-nouveau.patch: fix some issues mainly seen on earlier chipsets



drm-nouveau.patch:

Index: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-nouveau.patch,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- drm-nouveau.patch	5 Mar 2009 00:27:55 -0000	1.17
+++ drm-nouveau.patch	5 Mar 2009 05:52:05 -0000	1.18
@@ -2355,10 +2355,10 @@
 +#endif
 diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c
 new file mode 100644
-index 0000000..f5adfef
+index 0000000..7147114
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_drv.c
-@@ -0,0 +1,160 @@
+@@ -0,0 +1,163 @@
 +/*
 + * Copyright 2005 Stephane Marchesin.
 + * All Rights Reserved.
@@ -2398,6 +2398,9 @@
 +int nouveau_fbpercrtc = 0;
 +module_param_named(fbpercrtc, nouveau_fbpercrtc, int, 0400);
 +
++int nouveau_noagp = 0;
++module_param_named(noagp, nouveau_noagp, int, 0400);
++
 +static struct pci_device_id pciidlist[] = {
 +	{
 +		PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID),
@@ -6593,10 +6596,10 @@
 +}
 diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c
 new file mode 100644
-index 0000000..abc00ec
+index 0000000..a15a106
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_mem.c
-@@ -0,0 +1,1067 @@
+@@ -0,0 +1,1073 @@
 +/*
 + * Copyright (C) The Weather Channel, Inc.  2002.  All Rights Reserved.
 + * Copyright 2005 Stephane Marchesin
@@ -6634,6 +6637,8 @@
 +#include "drm_sarea.h"
 +#include "nouveau_drv.h"
 +
++extern int nouveau_noagp;
++
 +static struct mem_block *
 +split_block(struct mem_block *p, uint64_t start, uint64_t size,
 +	    struct drm_file *file_priv)
@@ -7093,6 +7098,9 @@
 +	struct drm_agp_mode mode;
 +	int ret;
 +
++	if (nouveau_noagp)
++		return 0;
++
 +	nouveau_mem_reset_agp(dev);
 +
 +	ret = drm_agp_acquire(dev);
@@ -7244,10 +7252,7 @@
 +	/* Init FB */
 +	dev_priv->fb_phys=drm_get_resource_start(dev,1);
 +	fb_size = nouveau_mem_fb_amount(dev);
-+	/* On at least NV40, RAMIN is actually at the end of vram.
-+	 * We don't want to allocate this... */
-+	if (dev_priv->card_type >= NV_40)
-+		fb_size -= dev_priv->ramin_rsvd_vram;
++	fb_size -= dev_priv->ramin_rsvd_vram;
 +	dev_priv->fb_available_size = fb_size;
 +	DRM_DEBUG("Available VRAM: %dKiB\n", fb_size>>10);
 +
@@ -7606,14 +7611,18 @@
 +	NOUVEAU_CHECK_MM_DISABLED_WITH_RETURN;
 +
 +	block=NULL;
-+	if (memfree->flags & NOUVEAU_MEM_FB)
++	if (dev_priv->fb_heap && memfree->flags & NOUVEAU_MEM_FB)
 +		block = find_block(dev_priv->fb_heap, memfree->offset);
-+	else if (memfree->flags & NOUVEAU_MEM_AGP)
++	else
++	if (dev_priv->agp_heap && memfree->flags & NOUVEAU_MEM_AGP)
 +		block = find_block(dev_priv->agp_heap, memfree->offset);
-+	else if (memfree->flags & NOUVEAU_MEM_PCI)
++	else
++	if (dev_priv->pci_heap && memfree->flags & NOUVEAU_MEM_PCI)
 +		block = find_block(dev_priv->pci_heap, memfree->offset);
++
 +	if (!block)
 +		return -EFAULT;
++
 +	if (block->file_priv != file_priv)
 +		return -EPERM;
 +
@@ -7848,10 +7857,10 @@
 +}
 diff --git a/drivers/gpu/drm/nouveau/nouveau_object.c b/drivers/gpu/drm/nouveau/nouveau_object.c
 new file mode 100644
-index 0000000..b70eb9f
+index 0000000..48ff77e
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_object.c
-@@ -0,0 +1,1228 @@
+@@ -0,0 +1,1229 @@
 +/*
 + * Copyright (C) 2006 Ben Skeggs.
 + *
@@ -8046,6 +8055,7 @@
 +		if (co >= dev_priv->ramht_size)
 +			co = 0;
 +	} while (co != ho);
++	list_del(&ref->list);
 +	instmem->finish_access(dev);
 +
 +	DRM_ERROR("RAMHT entry not found. ch=%d, handle=0x%08x\n",
@@ -12179,10 +12189,10 @@
 +}
 diff --git a/drivers/gpu/drm/nouveau/nv04_instmem.c b/drivers/gpu/drm/nouveau/nv04_instmem.c
 new file mode 100644
-index 0000000..33f9214
+index 0000000..a83d271
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nv04_instmem.c
-@@ -0,0 +1,190 @@
+@@ -0,0 +1,189 @@
 +#include "drmP.h"
 +#include "drm.h"
 +#include "nouveau_drv.h"
@@ -12212,8 +12222,7 @@
 +			break;
 +		}
 +	} else {
-+		/*XXX: what *are* the limits on <NV40 cards?, and does RAMIN
-+		 *     exist in vram on those cards as well?
++		/*XXX: what *are* the limits on <NV40 cards?
 +		 */
 +		dev_priv->ramin_rsvd_vram = (512*1024);
 +	}


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1385
retrieving revision 1.1386
diff -u -r1.1385 -r1.1386
--- kernel.spec	5 Mar 2009 05:23:27 -0000	1.1385
+++ kernel.spec	5 Mar 2009 05:52:06 -0000	1.1386
@@ -1796,6 +1796,9 @@
 # and build.
 
 %changelog
+* Thu Mar 05 2009 Ben Skeggs <bskeggs at redhat.com>
+- drm-nouveau.patch: fix some issues mainly seen on earlier chipsets
+
 * Thu Mar 05 2009 Eric Sandeen <sandeen at redhat.com>
 - Fix ext4 race between inode bitmap set/clear
 




More information about the fedora-extras-commits mailing list