rpms/kernel/devel drm-nouveau.patch, 1.19, 1.20 kernel.spec, 1.1398, 1.1399

Ben Skeggs bskeggs at fedoraproject.org
Mon Mar 9 21:03:30 UTC 2009


Author: bskeggs

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

Modified Files:
	drm-nouveau.patch kernel.spec 
Log Message:
* Tue Mar 10 2009 Ben Skeggs <bskeggs at redhat.com>
- drm-nouveau.patch: fix ppc



drm-nouveau.patch:

Index: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-nouveau.patch,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- drm-nouveau.patch	9 Mar 2009 04:32:25 -0000	1.19
+++ drm-nouveau.patch	9 Mar 2009 21:03:29 -0000	1.20
@@ -6605,10 +6605,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..a15a106
+index 0000000..8a32e82
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_mem.c
-@@ -0,0 +1,1073 @@
+@@ -0,0 +1,1071 @@
 +/*
 + * Copyright (C) The Weather Channel, Inc.  2002.  All Rights Reserved.
 + * Copyright 2005 Stephane Marchesin
@@ -6895,18 +6895,18 @@
 +{
 +	struct drm_nouveau_private *dev_priv = dev->dev_private;
 +	struct nouveau_gpuobj **pgt;
-+	unsigned psz, pfl;
++	unsigned psz, pfl, pages;
 +
 +	if (virt >= dev_priv->vm_gart_base &&
 +	    (virt + size) < (dev_priv->vm_gart_base + dev_priv->vm_gart_size)) {
-+		psz = 4096;
++		psz = 12;
 +		pgt = &dev_priv->gart_info.sg_ctxdma;
 +		pfl = 0x21;
 +		virt -= dev_priv->vm_gart_base;
 +	} else
 +	if (virt >= dev_priv->vm_vram_base &&
 +	    (virt + size) < (dev_priv->vm_vram_base + dev_priv->vm_vram_size)) {
-+		psz = 65536;
++		psz = 16;
 +		pgt = dev_priv->vm_vram_pt;
 +		pfl = 0x01;
 +		virt -= dev_priv->vm_vram_base;
@@ -6916,31 +6916,29 @@
 +		return -EINVAL;
 +	}
 +
-+	size &= ~(psz - 1);
++	pages = size >> psz;
 +
 +	dev_priv->engine.instmem.prepare_access(dev, true);
 +	if (flags & 0x80000000) {
-+		while (size) {
-+			struct nouveau_gpuobj *pt = pgt[virt / (512*1024*1024)];
-+			int pte = ((u32)(virt % (512*1024*1024)) / psz) * 2;
++		while (pages--) {
++			struct nouveau_gpuobj *pt = pgt[virt >> 29];
++			unsigned pte = ((virt & 0x1fffffffULL) >> psz) << 1;
 +
 +			INSTANCE_WR(pt, pte++, 0x00000000);
 +			INSTANCE_WR(pt, pte++, 0x00000000);
 +
-+			size -= psz;
-+			virt += psz;
++			virt += (1 << psz);
 +		}
 +	} else {
-+		while (size) {
-+			struct nouveau_gpuobj *pt = pgt[virt / (512*1024*1024)];
-+			int pte = ((u32)(virt % (512*1024*1024)) / psz) * 2;
++		while (pages--) {
++			struct nouveau_gpuobj *pt = pgt[virt >> 29];
++			unsigned pte = ((virt & 0x1fffffffULL) >> psz) << 1;
 +
 +			INSTANCE_WR(pt, pte++, phys | pfl);
 +			INSTANCE_WR(pt, pte++, flags);
 +
-+			size -= psz;
-+			phys += psz;
-+			virt += psz;
++			phys += (1 << psz);
++			virt += (1 << psz);
 +		}
 +	}
 +	dev_priv->engine.instmem.finish_access(dev);
@@ -10318,10 +10316,10 @@
 +}
 diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
 new file mode 100644
-index 0000000..52036d5
+index 0000000..756141a
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_state.c
-@@ -0,0 +1,948 @@
+@@ -0,0 +1,943 @@
 +/*
 + * Copyright 2005 Stephane Marchesin
 + * Copyright 2008 Stuart Bennett
@@ -10885,18 +10883,13 @@
 +	dn = pci_device_to_OF_node(dev->pdev);
 +	if (dn)
 +	{
-+		int size;
++		int size, i;
 +		const uint32_t *bios = of_get_property(dn, "NVDA,BMP", &size);
-+		if (bios)
-+		{
-+			int i;
-+			dev_priv->engine.instmem.prepare_access(dev, true);
++		if (bios) {
 +			for(i=0;i<size;i+=4)
-+				nv_wi32(i, bios[i/4]);
-+			dev_priv->engine.instmem.finish_access(dev);
++				nv_out32(dev_priv->ramin, i, bios[i/4]);
 +			DRM_INFO("OF bios successfully copied (%d bytes)\n",size);
-+		}
-+		else
++		} else
 +			DRM_INFO("Unable to get the OF bios\n");
 +	}
 +	else
@@ -41589,7 +41582,7 @@
 +#endif
 diff --git a/drivers/gpu/drm/nouveau/nv50_i2c.c b/drivers/gpu/drm/nouveau/nv50_i2c.c
 new file mode 100644
-index 0000000..e3a6430
+index 0000000..aa37e24
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nv50_i2c.c
 @@ -0,0 +1,400 @@
@@ -41705,7 +41698,7 @@
 +		udelay(2);
 +	}
 +
-+	printk("a timeout occured in nv50_i2c_raise_clock\n");
++	DRM_DEBUG("a timeout occured in nv50_i2c_raise_clock\n");
 +
 +	return false;
 +}
@@ -41792,7 +41785,7 @@
 +		}
 +
 +		if (i <= 0) {
-+			printk("a timeout occured in nv50_i2c_write_byte\n");
++			DRM_DEBUG("a timeout occured in nv50_i2c_write_byte\n");
 +			rval = false;
 +		}
 +	}
@@ -41875,7 +41868,7 @@
 +	}
 +
 +	if (!rval)
-+		printk("nv50_i2c_read failed\n");
++		DRM_DEBUG("nv50_i2c_read failed\n");
 +
 +	return rval;
 +}
@@ -41906,7 +41899,7 @@
 +	}
 +
 +	if (!rval)
-+		printk("nv50_i2c_write failed\n");
++		DRM_DEBUG("nv50_i2c_write failed\n");
 +
 +	return rval;
 +}


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1398
retrieving revision 1.1399
diff -u -r1.1398 -r1.1399
--- kernel.spec	9 Mar 2009 17:01:57 -0000	1.1398
+++ kernel.spec	9 Mar 2009 21:03:29 -0000	1.1399
@@ -1806,6 +1806,9 @@
 # and build.
 
 %changelog
+* Tue Mar 10 2009 Ben Skeggs <bskeggs at redhat.com>
+- drm-nouveau.patch: fix ppc
+
 * Mon Mar 09 2009 Kyle McMartin <kyle at redhat.com>
 - Linux 2.6.29-rc7-git2
 




More information about the fedora-extras-commits mailing list