rpms/kernel/devel drm-nouveau.patch, 1.8.6.14, 1.8.6.15 kernel.spec, 1.1294.2.47, 1.1294.2.48 xen.pvops.patch, 1.1.2.30, 1.1.2.31

myoung myoung at fedoraproject.org
Tue Aug 11 18:55:24 UTC 2009


Author: myoung

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

Modified Files:
      Tag: private-myoung-dom0-branch
	drm-nouveau.patch kernel.spec xen.pvops.patch 
Log Message:
Apply pvops update from rebase/master


drm-nouveau.patch:
 drivers/gpu/drm/Kconfig                     |   30 
 drivers/gpu/drm/Makefile                    |    1 
 drivers/gpu/drm/drm_bufs.c                  |   28 
 drivers/gpu/drm/nouveau/Makefile            |   27 
 drivers/gpu/drm/nouveau/nouveau_backlight.c |  155 
 drivers/gpu/drm/nouveau/nouveau_bios.c      | 5053 ++++++
 drivers/gpu/drm/nouveau/nouveau_bios.h      |  227 
 drivers/gpu/drm/nouveau/nouveau_bo.c        |  573 
 drivers/gpu/drm/nouveau/nouveau_calc.c      |  622 
 drivers/gpu/drm/nouveau/nouveau_channel.c   |  515 
 drivers/gpu/drm/nouveau/nouveau_connector.c |  593 
 drivers/gpu/drm/nouveau/nouveau_connector.h |   57 
 drivers/gpu/drm/nouveau/nouveau_crtc.h      |   92 
 drivers/gpu/drm/nouveau/nouveau_display.c   |  115 
 drivers/gpu/drm/nouveau/nouveau_dma.c       |  161 
 drivers/gpu/drm/nouveau/nouveau_dma.h       |  146 
 drivers/gpu/drm/nouveau/nouveau_drv.c       |  370 
 drivers/gpu/drm/nouveau/nouveau_drv.h       | 1131 +
 drivers/gpu/drm/nouveau/nouveau_encoder.h   |   53 
 drivers/gpu/drm/nouveau/nouveau_fb.h        |   47 
 drivers/gpu/drm/nouveau/nouveau_fbcon.c     |  971 +
 drivers/gpu/drm/nouveau/nouveau_fbcon.h     |   49 
 drivers/gpu/drm/nouveau/nouveau_fence.c     |  261 
 drivers/gpu/drm/nouveau/nouveau_gem.c       |  754 
 drivers/gpu/drm/nouveau/nouveau_hw.c        | 1018 +
 drivers/gpu/drm/nouveau/nouveau_hw.h        |  431 
 drivers/gpu/drm/nouveau/nouveau_i2c.c       |  246 
 drivers/gpu/drm/nouveau/nouveau_i2c.h       |   45 
 drivers/gpu/drm/nouveau/nouveau_ioc32.c     |   72 
 drivers/gpu/drm/nouveau/nouveau_irq.c       |  674 
 drivers/gpu/drm/nouveau/nouveau_mem.c       |  565 
 drivers/gpu/drm/nouveau/nouveau_notifier.c  |  194 
 drivers/gpu/drm/nouveau/nouveau_object.c    | 1276 +
 drivers/gpu/drm/nouveau/nouveau_reg.h       |  834 +
 drivers/gpu/drm/nouveau/nouveau_sgdma.c     |  317 
 drivers/gpu/drm/nouveau/nouveau_state.c     |  826 +
 drivers/gpu/drm/nouveau/nouveau_swmthd.h    |   33 
 drivers/gpu/drm/nouveau/nouveau_ttm.c       |  116 
 drivers/gpu/drm/nouveau/nv04_crtc.c         | 1143 +
 drivers/gpu/drm/nouveau/nv04_cursor.c       |   70 
 drivers/gpu/drm/nouveau/nv04_display.c      |  250 
 drivers/gpu/drm/nouveau/nv04_fb.c           |   21 
 drivers/gpu/drm/nouveau/nv04_fbcon.c        |  291 
 drivers/gpu/drm/nouveau/nv04_fifo.c         |  295 
 drivers/gpu/drm/nouveau/nv04_graph.c        |  583 
 drivers/gpu/drm/nouveau/nv04_instmem.c      |  207 
 drivers/gpu/drm/nouveau/nv04_mc.c           |   20 
 drivers/gpu/drm/nouveau/nv04_output.c       |  797 +
 drivers/gpu/drm/nouveau/nv04_timer.c        |   51 
 drivers/gpu/drm/nouveau/nv10_fb.c           |   24 
 drivers/gpu/drm/nouveau/nv10_fifo.c         |  177 
 drivers/gpu/drm/nouveau/nv10_graph.c        |  945 +
 drivers/gpu/drm/nouveau/nv20_graph.c        |  784 
 drivers/gpu/drm/nouveau/nv40_fb.c           |   62 
 drivers/gpu/drm/nouveau/nv40_fifo.c         |  223 
 drivers/gpu/drm/nouveau/nv40_graph.c        | 2203 ++
 drivers/gpu/drm/nouveau/nv40_mc.c           |   38 
 drivers/gpu/drm/nouveau/nv50_crtc.c         |  819 +
 drivers/gpu/drm/nouveau/nv50_cursor.c       |  151 
 drivers/gpu/drm/nouveau/nv50_dac.c          |  284 
 drivers/gpu/drm/nouveau/nv50_display.c      |  849 +
 drivers/gpu/drm/nouveau/nv50_display.h      |   46 
 drivers/gpu/drm/nouveau/nv50_evo.h          |  113 
 drivers/gpu/drm/nouveau/nv50_fbcon.c        |  256 
 drivers/gpu/drm/nouveau/nv50_fifo.c         |  475 
 drivers/gpu/drm/nouveau/nv50_graph.c        |  437 
 drivers/gpu/drm/nouveau/nv50_grctx.h        |22284 ++++++++++++++++++++++++++++
 drivers/gpu/drm/nouveau/nv50_instmem.c      |  499 
 drivers/gpu/drm/nouveau/nv50_mc.c           |   40 
 drivers/gpu/drm/nouveau/nv50_sor.c          |  264 
 drivers/gpu/drm/nouveau/nvreg.h             |  503 
 drivers/gpu/drm/ttm/ttm_bo.c                |    4 
 include/drm/Kbuild                          |    1 
 include/drm/drmP.h                          |    2 
 include/drm/nouveau_drm.h                   |  214 
 75 files changed, 54082 insertions(+), 21 deletions(-)

View full diff with command:
/usr/bin/cvs -n -f diff -kk -u -p -N -r 1.8.6.14 -r 1.8.6.15 drm-nouveau.patchIndex: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-nouveau.patch,v
retrieving revision 1.8.6.14
retrieving revision 1.8.6.15
diff -u -p -r1.8.6.14 -r1.8.6.15
--- drm-nouveau.patch	5 Aug 2009 23:00:12 -0000	1.8.6.14
+++ drm-nouveau.patch	11 Aug 2009 18:55:08 -0000	1.8.6.15
@@ -105,7 +105,7 @@ index 6246e3f..436e2fe 100644
  		if (map->type == _DRM_REGISTERS)
 diff --git a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile
 new file mode 100644
-index 0000000..a04127f
+index 0000000..2ba1e45
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/Makefile
 @@ -0,0 +1,27 @@
@@ -114,7 +114,7 @@ index 0000000..a04127f
 +# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
 +
 +ccflags-y := -Iinclude/drm
-+nouveau-y := nouveau_drv.o nouveau_state.o nouveau_fifo.o nouveau_mem.o \
++nouveau-y := nouveau_drv.o nouveau_state.o nouveau_channel.o nouveau_mem.o \
 +             nouveau_object.o nouveau_irq.o nouveau_notifier.o \
 +             nouveau_sgdma.o nouveau_dma.o \
 +             nouveau_bo.o nouveau_fence.o nouveau_gem.o nouveau_ttm.o \
@@ -299,10 +299,10 @@ index 0000000..20564f8
 +}
 diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
 new file mode 100644
-index 0000000..defc0c8
+index 0000000..c828c2e
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
-@@ -0,0 +1,5056 @@
+@@ -0,0 +1,5053 @@
 +/*
 + * Copyright 2005-2006 Erik Waling
 + * Copyright 2006 Stephane Marchesin
@@ -3511,9 +3511,6 @@ index 0000000..defc0c8
 +	return 0;
 +}
 +
-+extern int nouveau_uscript_lvds;
-+extern int nouveau_uscript_tmds;
-+
 +int
 +nouveau_bios_run_display_table(struct drm_device *dev, struct dcb_entry *dcbent,
 +			       int pxclk)
@@ -5594,10 +5591,10 @@ index 0000000..24fc305
 +#endif
 diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
 new file mode 100644
-index 0000000..d59ffc4
+index 0000000..a7b2a61
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
-@@ -0,0 +1,557 @@
+@@ -0,0 +1,573 @@
 +/*
 + * Copyright 2007 Dave Airlied
 + * All Rights Reserved.
@@ -5672,6 +5669,22 @@ index 0000000..d59ffc4
 +	if (!nvbo->mappable && (flags & TTM_PL_FLAG_VRAM))
 +		flags |= TTM_PL_FLAG_PRIV0;
 +
++	/* Some of the tile_flags have a periodic structure of 24*4096 bytes, 
++	 * align to to that as well as the page size. Overallocate memory to 
++	 * avoid corruption of other buffer objects.
++	 */
++	switch (tile_flags) {
++		case 0x1800:
++		case 0x2800:
++		case 0x4800:
++		case 0x7a00:
++			size += 6*4096;
++			align = 2*24*4096;
++			break;
++		default:
++			break;
++	}
++
 +	align >>= PAGE_SHIFT;
 +
 +	size = (size + (PAGE_SIZE-1)) & ~(PAGE_SIZE-1);
@@ -6783,12 +6796,533 @@ index 0000000..e2b78d2
 +
 +	return outclk;
 +}
+diff --git a/drivers/gpu/drm/nouveau/nouveau_channel.c b/drivers/gpu/drm/nouveau/nouveau_channel.c
+new file mode 100644
+index 0000000..2429c7f
+--- /dev/null
++++ b/drivers/gpu/drm/nouveau/nouveau_channel.c
+@@ -0,0 +1,515 @@
++/*
++ * Copyright 2005-2006 Stephane Marchesin
++ * All Rights Reserved.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Software"),
++ * to deal in the Software without restriction, including without limitation
++ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the next
++ * paragraph) shall be included in all copies or substantial portions of the
++ * Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
++ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
++ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
++ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
++ * DEALINGS IN THE SOFTWARE.
++ */
++
++#include "drmP.h"
++#include "drm.h"
++#include "nouveau_drv.h"
++#include "nouveau_drm.h"
++#include "nouveau_dma.h"
++
++static int
++nouveau_channel_pushbuf_ctxdma_init(struct nouveau_channel *chan)
++{
++	struct drm_device *dev = chan->dev;
++	struct drm_nouveau_private *dev_priv = dev->dev_private;
++	struct nouveau_bo *pb = chan->pushbuf_bo;
++	struct nouveau_gpuobj *pushbuf = NULL;
++	uint32_t start = pb->bo.mem.mm_node->start << PAGE_SHIFT;
++	uint32_t size = pb->bo.mem.size;
++	int ret;
++
++	if (pb->bo.mem.mem_type == TTM_PL_TT) {
++		ret = nouveau_gpuobj_gart_dma_new(chan, start, size,
++						  NV_DMA_ACCESS_RO,
++						  &pushbuf,
++						  &chan->pushbuf_base);
++	} else
++	if (dev_priv->card_type != NV_04) {
++		ret = nouveau_gpuobj_dma_new(chan, NV_CLASS_DMA_IN_MEMORY,
++					     start, size, NV_DMA_ACCESS_RO,
++					     NV_DMA_TARGET_VIDMEM, &pushbuf);
++		chan->pushbuf_base = 0;
++	} else {
++		/* NV04 cmdbuf hack, from original ddx.. not sure of it's
++		 * exact reason for existing :)  PCI access to cmdbuf in
++		 * VRAM.
++		 */
++		ret = nouveau_gpuobj_dma_new(chan, NV_CLASS_DMA_IN_MEMORY,
++					     start +
++					       drm_get_resource_start(dev, 1),
++					     size, NV_DMA_ACCESS_RO,
++					     NV_DMA_TARGET_PCI, &pushbuf);
++		chan->pushbuf_base = 0;
++	}
++
++	ret = nouveau_gpuobj_ref_add(dev, chan, 0, pushbuf, &chan->pushbuf);
++	if (ret) {
++		NV_ERROR(dev, "Error referencing pushbuf ctxdma: %d\n", ret);
++		if (pushbuf != dev_priv->gart_info.sg_ctxdma)
++			nouveau_gpuobj_del(dev, &pushbuf);
++		return ret;
++	}
++
++	return 0;
++}
++
++static struct nouveau_bo *
++nouveau_channel_user_pushbuf_alloc(struct drm_device *dev)
++{
++	struct nouveau_bo *pushbuf = NULL;
++	int location, ret;
++
++	if (nouveau_vram_pushbuf)
++		location = TTM_PL_FLAG_VRAM;
++	else
++		location = TTM_PL_FLAG_TT;
++
++	ret = nouveau_bo_new(dev, NULL, 65536, 0, location, 0, 0x0000, false,
++			     true, &pushbuf);
++	if (ret) {
++		NV_ERROR(dev, "error allocating DMA push buffer: %d\n", ret);
++		return NULL;
++	}
++
++	ret = nouveau_bo_pin(pushbuf, location);
++	if (ret) {
++		NV_ERROR(dev, "error pinning DMA push buffer: %d\n", ret);
++		nouveau_bo_ref(NULL, &pushbuf);
++		return NULL;
++	}
++
++	return pushbuf;
++}
++
++/* allocates and initializes a fifo for user space consumption */
[...2820 lines suppressed...]
 +	nv_wo32(dev, ctx, (0x2744/4)+9, 0xbf800000);
 +
-+/*
-+write32 #1 block at +0x00742e34 NV_PRAMIN.GRCTX0+0x2714 of 4 (0x4) elements:
-++0x00742e34: 00000000 3f800000 00000000 00000000
-+*/
 +	nv_wo32(dev, ctx, (0x2714/4)+1, 0x3f800000);
 +
-+/*
-+write32 #1 block at +0x00742e94 NV_PRAMIN.GRCTX0+0x2774 of 4 (0x4) elements:
-++0x00742e94: 00000000 00000000 00000000 00000000
-+write32 #1 block at +0x00743804 NV_PRAMIN.GRCTX0+0x30e4 of 4 (0x4) elements:
-++0x00743804: 00000000 00000000 00000000 00000000
-+write32 #1 block at +0x007437a4 NV_PRAMIN.GRCTX0+0x3084 of 8 (0x8) elements:
-++0x007437a4: 00000000 00000000 000fe000 00000000 00000000 00000000 00000000 00000000
-+*/
 +	nv_wo32(dev, ctx, (0x3084/4)+2, 0x000fe000);
 +
-+/*
-+write32 #1 block at +0x007437d4 NV_PRAMIN.GRCTX0+0x30b4 of 4 (0x4) elements:
-++0x007437d4: 00000000 00000000 00000000 00000000
-+write32 #1 block at +0x00743824 NV_PRAMIN.GRCTX0+0x3104 of 4 (0x4) elements:
-++0x00743824: 00000000 000003f8 00000000 00000000
-+*/
 +	nv_wo32(dev, ctx, (0x3104/4)+1, 0x000003f8);
 +
-+/* write32 #1 NV_PRAMIN.GRCTX0+0x3468 <- 0x002fe000 */
 +	nv_wo32(dev, ctx, 0x3468/4, 0x002fe000);
 +
-+/*
-+write32 #1 block at +0x00743ba4 NV_PRAMIN.GRCTX0+0x3484 of 8 (0x8) elements:
-++0x00743ba4: 001c527c 001c527c 001c527c 001c527c 001c527c 001c527c 001c527c 001c527c
-+*/
 +	for (i=0; i<8; ++i)
 +		nv_wo32(dev, ctx, (0x3484/4)+i, 0x001c527c);
 +}
@@ -24799,27 +24636,6 @@ index 0000000..3a1b9e6
 +		nv_wr32(dev, 0x400754, nv_rd32(dev, NV04_PFB_CFG1));
 +	}
 +
-+#if 0
-+	nv_wr32(dev, 0x400820, 0);
-+	nv_wr32(dev, 0x400824, 0);
-+	nv_wr32(dev, 0x400864, vramsz-1);
-+	nv_wr32(dev, 0x400868, vramsz-1);
-+
-+	nv_wr32(dev, 0x400B20, 0x00000000);
-+	nv_wr32(dev, 0x400B04, 0xFFFFFFFF);
-+
-+	/* per-context state, doesn't belong here */
-+	tmp = nv_rd32(dev, NV10_PGRAPH_SURFACE) & 0x0007ff00;
-+	nv_wr32(dev, NV10_PGRAPH_SURFACE, tmp);
-+	tmp = nv_rd32(dev, NV10_PGRAPH_SURFACE) | 0x00020100;
-+	nv_wr32(dev, NV10_PGRAPH_SURFACE, tmp);
-+
-+	nv_wr32(dev, NV03_PGRAPH_ABS_UCLIP_XMIN, 0);
-+	nv_wr32(dev, NV03_PGRAPH_ABS_UCLIP_YMIN, 0);
-+	nv_wr32(dev, NV03_PGRAPH_ABS_UCLIP_XMAX, 0x7fff);
-+	nv_wr32(dev, NV03_PGRAPH_ABS_UCLIP_YMAX, 0x7fff);
-+#endif
-+
 +	return 0;
 +}
 +
@@ -24934,10 +24750,10 @@ index 0000000..fae4246
 +}
 diff --git a/drivers/gpu/drm/nouveau/nv40_fifo.c b/drivers/gpu/drm/nouveau/nv40_fifo.c
 new file mode 100644
-index 0000000..61b7832
+index 0000000..6b5fdcc
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nv40_fifo.c
-@@ -0,0 +1,222 @@
+@@ -0,0 +1,223 @@
 +/*
 + * Copyright (C) 2007 Ben Skeggs.
 + * All Rights Reserved.
@@ -25154,7 +24970,8 @@ index 0000000..61b7832
 +{
 +	int ret;
 +
-+	if ((ret = nouveau_fifo_init(dev)))
++	ret = nv04_fifo_init(dev);
++	if (ret)
 +		return ret;
 +
 +	nv_wr32(dev, NV04_PFIFO_DMA_TIMESLICE, 0x2101ffff);
@@ -27415,10 +27232,10 @@ index 0000000..2a3495e
 +}
 diff --git a/drivers/gpu/drm/nouveau/nv50_crtc.c b/drivers/gpu/drm/nouveau/nv50_crtc.c
 new file mode 100644
-index 0000000..b169f9b
+index 0000000..99f24a3
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nv50_crtc.c
-@@ -0,0 +1,811 @@
+@@ -0,0 +1,819 @@
 +/*
 + * Copyright (C) 2008 Maarten Maathuis.
 + * All Rights Reserved.
@@ -27519,7 +27336,7 @@ index 0000000..b169f9b
 +	struct drm_device *dev = crtc->base.dev;
 +	struct drm_nouveau_private *dev_priv = dev->dev_private;
 +	struct nouveau_channel *evo = dev_priv->evo;
-+	int index = crtc->index;
++	int index = crtc->index, ret;
 +
 +	NV_DEBUG(dev, "index %d\n", crtc->index);
 +	NV_DEBUG(dev, "%s\n", blanked ? "blanked" : "unblanked");
@@ -27527,7 +27344,11 @@ index 0000000..b169f9b
 +	if (blanked) {
 +		crtc->cursor.hide(crtc, false);
 +
-+		RING_SPACE(evo, dev_priv->chipset != 0x50 ? 7 : 5);
++		ret = RING_SPACE(evo, dev_priv->chipset != 0x50 ? 7 : 5);
++		if (ret) {
++			NV_ERROR(dev, "no space while blanking crtc\n");
++			return ret;
++		}
 +		BEGIN_RING(evo, 0, NV50_EVO_CRTC(index, CLUT_MODE), 2);
 +		OUT_RING  (evo, NV50_EVO_CRTC_CLUT_MODE_BLANK);
 +		OUT_RING  (evo, 0);
@@ -27545,7 +27366,11 @@ index 0000000..b169f9b
 +		else
 +			crtc->cursor.hide(crtc, false);
 +
-+		RING_SPACE(evo, dev_priv->chipset != 0x50 ? 10 : 8);
++		ret = RING_SPACE(evo, dev_priv->chipset != 0x50 ? 10 : 8);
++		if (ret) {
++			NV_ERROR(dev, "no space while unblanking crtc\n");
++			return ret;
++		}
 +		BEGIN_RING(evo, 0, NV50_EVO_CRTC(index, CLUT_MODE), 2);
 +		OUT_RING  (evo, crtc->lut.depth == 8 ?
 +				NV50_EVO_CRTC_CLUT_MODE_OFF :
@@ -28232,10 +28057,10 @@ index 0000000..b169f9b
 +}
 diff --git a/drivers/gpu/drm/nouveau/nv50_cursor.c b/drivers/gpu/drm/nouveau/nv50_cursor.c
 new file mode 100644
-index 0000000..a3bed39
+index 0000000..0ef825e
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nv50_cursor.c
-@@ -0,0 +1,153 @@
+@@ -0,0 +1,151 @@
 +/*
 + * Copyright (C) 2008 Maarten Maathuis.
 + * All Rights Reserved.
@@ -28279,7 +28104,7 @@ index 0000000..a3bed39
 +
 +	NV_DEBUG(dev, "\n");
 +
-+	ret = RING_SPACE(evo, dev_priv->chipset != 0x50 ? 4 : 2);
++	ret = RING_SPACE(evo, (dev_priv->chipset != 0x50 ? 4 : 2) + update * 2);
 +	if (ret) {
 +		NV_ERROR(dev, "no space while unhiding cursor\n");
 +		return;
@@ -28293,7 +28118,6 @@ index 0000000..a3bed39
 +	OUT_RING  (evo, NV50_EVO_CRTC_CURSOR_CTRL_SHOW);
 +
 +	if (update) {
-+		RING_SPACE(evo, 2);
 +		BEGIN_RING(evo, 0, NV50_EVO_UPDATE, 1);
 +		OUT_RING  (evo, 0);
 +		FIRE_RING (evo);
@@ -28311,7 +28135,7 @@ index 0000000..a3bed39
 +
 +	NV_DEBUG(dev, "\n");
 +
-+	ret = RING_SPACE(evo, dev_priv->chipset != 0x50 ? 4 : 2);
++	ret = RING_SPACE(evo, (dev_priv->chipset != 0x50 ? 4 : 2) + update * 2);
 +	if (ret) {
 +		NV_ERROR(dev, "no space while hiding cursor\n");
 +		return;
@@ -28324,7 +28148,6 @@ index 0000000..a3bed39
 +	}
 +
 +	if (update) {
-+		RING_SPACE(evo, 2);
 +		BEGIN_RING(evo, 0, NV50_EVO_UPDATE, 1);
 +		OUT_RING  (evo, 0);
 +		FIRE_RING (evo);
@@ -29969,7 +29792,7 @@ index 0000000..d7af9ed
 +
 diff --git a/drivers/gpu/drm/nouveau/nv50_fifo.c b/drivers/gpu/drm/nouveau/nv50_fifo.c
 new file mode 100644
-index 0000000..071a2f3
+index 0000000..c4c45f2
 --- /dev/null
 +++ b/drivers/gpu/drm/nouveau/nv50_fifo.c
 @@ -0,0 +1,475 @@
@@ -30251,7 +30074,7 @@ index 0000000..071a2f3
 +	nv_wo32(dev, ramfc, 0x10/4, chan->pushbuf_base);
 +	nv_wo32(dev, ramfc, 0x48/4, chan->pushbuf->instance >> 4);
 +	nv_wo32(dev, ramfc, 0x80/4, (0xc << 24) | (chan->ramht->instance >> 4));
-+	nv_wo32(dev, ramfc, 0x3c/4, 0x000f0078); /* fetch? */
++	nv_wo32(dev, ramfc, 0x3c/4, 0x00086078);
 +	nv_wo32(dev, ramfc, 0x44/4, 0x2101ffff);
 +	nv_wo32(dev, ramfc, 0x60/4, 0x7fffffff);
 +	nv_wo32(dev, ramfc, 0x40/4, 0x00000000);


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294.2.47
retrieving revision 1.1294.2.48
diff -u -p -r1.1294.2.47 -r1.1294.2.48
--- kernel.spec	10 Aug 2009 21:22:18 -0000	1.1294.2.47
+++ kernel.spec	11 Aug 2009 18:55:10 -0000	1.1294.2.48
@@ -1989,6 +1989,14 @@ fi
 # and build.
 
 %changelog
+* Tue Aug 11 2009 Michael Young <m.a.young at durham.ac.uk>
+- CONFIG_CC_STACKPROTECTOR was probably innocent but leave it off
+  a bit longer just in case
+- add rebase/master update
+
+* Tue Aug 11 2009 Ben Skeggs <bskeggs at redhat.com>
+- nouveau: various cleanups and fixes + more sanity checking in dma paths
+
 * Mon Aug 10 2009 Michael Young <m.a.young at durham.ac.uk>
 - disable CONFIG_CC_STACKPROTECTOR for x86_64 again (the workaround
   needs revising)

xen.pvops.patch:
 arch/x86/Kconfig                           |    4 
 arch/x86/include/asm/agp.h                 |   15 
 arch/x86/include/asm/e820.h                |    2 
 arch/x86/include/asm/i387.h                |    1 
 arch/x86/include/asm/io.h                  |   15 
 arch/x86/include/asm/io_apic.h             |    7 
 arch/x86/include/asm/microcode.h           |    9 
 arch/x86/include/asm/paravirt.h            |  718 -------------
 arch/x86/include/asm/paravirt_types.h      |  722 +++++++++++++
 arch/x86/include/asm/pci.h                 |    8 
 arch/x86/include/asm/pci_x86.h             |    2 
 arch/x86/include/asm/pgtable.h             |    3 
 arch/x86/include/asm/processor.h           |    4 
 arch/x86/include/asm/tlbflush.h            |    6 
 arch/x86/include/asm/xen/hypercall.h       |   36 
 arch/x86/include/asm/xen/interface.h       |    8 
 arch/x86/include/asm/xen/interface_32.h    |    5 
 arch/x86/include/asm/xen/interface_64.h    |   13 
 arch/x86/include/asm/xen/iommu.h           |   12 
 arch/x86/include/asm/xen/page.h            |   34 
 arch/x86/include/asm/xen/pci.h             |   13 
 arch/x86/kernel/Makefile                   |    1 
 arch/x86/kernel/acpi/boot.c                |   18 
 arch/x86/kernel/acpi/sleep.c               |    2 
 arch/x86/kernel/apic/io_apic.c             |   37 
 arch/x86/kernel/cpu/mtrr/Makefile          |    1 
 arch/x86/kernel/cpu/mtrr/amd.c             |    6 
 arch/x86/kernel/cpu/mtrr/centaur.c         |    6 
 arch/x86/kernel/cpu/mtrr/cyrix.c           |    6 
 arch/x86/kernel/cpu/mtrr/generic.c         |   10 
 arch/x86/kernel/cpu/mtrr/main.c            |   19 
 arch/x86/kernel/cpu/mtrr/mtrr.h            |   11 
 arch/x86/kernel/cpu/mtrr/xen.c             |  104 +
 arch/x86/kernel/e820.c                     |   30 
 arch/x86/kernel/ioport.c                   |   29 
 arch/x86/kernel/microcode_core.c           |    5 
 arch/x86/kernel/microcode_xen.c            |  200 +++
 arch/x86/kernel/paravirt.c                 |    1 
 arch/x86/kernel/pci-dma.c                  |    3 
 arch/x86/kernel/pci-swiotlb.c              |   30 
 arch/x86/kernel/process.c                  |   27 
 arch/x86/kernel/process_32.c               |   27 
 arch/x86/kernel/process_64.c               |   33 
 arch/x86/kernel/setup.c                    |    4 
 arch/x86/kernel/traps.c                    |   33 
 arch/x86/mm/init_32.c                      |   42 
 arch/x86/mm/pat.c                          |    2 
 arch/x86/mm/pgtable.c                      |   10 
 arch/x86/mm/tlb.c                          |   35 
 arch/x86/pci/Makefile                      |    1 
 arch/x86/pci/common.c                      |   18 
 arch/x86/pci/i386.c                        |    3 
 arch/x86/pci/init.c                        |    6 
 arch/x86/pci/xen.c                         |   51 
 arch/x86/xen/Kconfig                       |   33 
 arch/x86/xen/Makefile                      |    4 
 arch/x86/xen/apic.c                        |   60 +
 arch/x86/xen/enlighten.c                   |   63 +
 arch/x86/xen/mmu.c                         |  475 ++++++++-
 arch/x86/xen/pci-swiotlb.c                 |   53 +
 arch/x86/xen/pci.c                         |   86 +
 arch/x86/xen/setup.c                       |   62 +
 arch/x86/xen/smp.c                         |    2 
 arch/x86/xen/time.c                        |    2 
 arch/x86/xen/vga.c                         |   67 +
 arch/x86/xen/xen-ops.h                     |   19 
 block/blk-core.c                           |    2 
 drivers/acpi/acpica/hwsleep.c              |   17 
 drivers/acpi/sleep.c                       |   19 
 drivers/block/Kconfig                      |    1 
 drivers/char/agp/intel-agp.c               |   17 
 drivers/char/hvc_xen.c                     |   99 +
 drivers/net/Kconfig                        |    1 
 drivers/pci/Makefile                       |    2 
 drivers/pci/pci.h                          |    2 
 drivers/pci/xen-iommu.c                    |  332 ++++++
 drivers/xen/Kconfig                        |   32 
 drivers/xen/Makefile                       |   18 
 drivers/xen/acpi.c                         |   23 
 drivers/xen/balloon.c                      |  155 ++
 drivers/xen/biomerge.c                     |   14 
 drivers/xen/blkback/Makefile               |    3 
 drivers/xen/blkback/blkback.c              |  658 ++++++++++++
 drivers/xen/blkback/common.h               |  137 ++
 drivers/xen/blkback/interface.c            |  182 +++
 drivers/xen/blkback/vbd.c                  |  118 ++
 drivers/xen/blkback/xenbus.c               |  542 ++++++++++
 drivers/xen/events.c                       |  315 +++++-
 drivers/xen/grant-table.c                  |  103 +
 drivers/xen/netback/Makefile               |    3 
 drivers/xen/netback/common.h               |  221 ++++
 drivers/xen/netback/interface.c            |  401 +++++++
 drivers/xen/netback/netback.c              | 1513 +++++++++++++++++++++++++++++
 drivers/xen/netback/xenbus.c               |  454 ++++++++
 drivers/xen/pci.c                          |  116 ++
 drivers/xen/xenbus/Makefile                |    5 
 drivers/xen/xenbus/xenbus_comms.c          |    1 
 drivers/xen/xenbus/xenbus_probe.c          |  380 +------
 drivers/xen/xenbus/xenbus_probe.h          |   29 
 drivers/xen/xenbus/xenbus_probe_backend.c  |  298 +++++
 drivers/xen/xenbus/xenbus_probe_frontend.c |  292 +++++
 drivers/xen/xenfs/Makefile                 |    3 
 drivers/xen/xenfs/privcmd.c                |  403 +++++++
 drivers/xen/xenfs/super.c                  |   98 +
 drivers/xen/xenfs/xenfs.h                  |    3 
 drivers/xen/xenfs/xenstored.c              |   67 +
 include/asm-generic/pci.h                  |    2 
 include/linux/interrupt.h                  |    1 
 include/linux/page-flags.h                 |   18 
 include/linux/pci.h                        |    6 
 include/xen/Kbuild                         |    1 
 include/xen/acpi.h                         |   23 
 include/xen/balloon.h                      |    8 
 include/xen/blkif.h                        |  122 ++
 include/xen/events.h                       |   27 
 include/xen/grant_table.h                  |   43 
 include/xen/interface/grant_table.h        |   22 
 include/xen/interface/memory.h             |   92 +
 include/xen/interface/physdev.h            |   21 
 include/xen/interface/platform.h           |  222 ++++
 include/xen/interface/xen.h                |   43 
 include/xen/privcmd.h                      |   80 +
 include/xen/swiotlb.h                      |   18 
 include/xen/xen-ops.h                      |   11 
 include/xen/xenbus.h                       |    2 
 kernel/irq/manage.c                        |    3 
 lib/swiotlb.c                              |    5 
 mm/page_alloc.c                            |   14 
 128 files changed, 9928 insertions(+), 1309 deletions(-)

Index: xen.pvops.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.patch,v
retrieving revision 1.1.2.30
retrieving revision 1.1.2.31
diff -u -p -r1.1.2.30 -r1.1.2.31
--- xen.pvops.patch	8 Aug 2009 18:06:04 -0000	1.1.2.30
+++ xen.pvops.patch	11 Aug 2009 18:55:10 -0000	1.1.2.31
@@ -2612,10 +2612,10 @@ index 9371448..4cb6bbd 100644
  		microcode_ops = init_amd_microcode();
 diff --git a/arch/x86/kernel/microcode_xen.c b/arch/x86/kernel/microcode_xen.c
 new file mode 100644
-index 0000000..ab9d4e1
+index 0000000..397cba1
 --- /dev/null
 +++ b/arch/x86/kernel/microcode_xen.c
-@@ -0,0 +1,195 @@
+@@ -0,0 +1,200 @@
 +/*
 + * Xen microcode update driver
 + *
@@ -2684,14 +2684,19 @@ index 0000000..ab9d4e1
 +	size_t size;
 +	int err;
 +
-+	if (c->x86_vendor == X86_VENDOR_INTEL) {
-+		BUG_ON(cpu != raw_smp_processor_id());
++	switch (c->x86_vendor) {
++	case X86_VENDOR_INTEL:
 +		snprintf(name, sizeof(name), "intel-ucode/%02x-%02x-%02x",
 +			 c->x86, c->x86_model, c->x86_mask);
-+	} else if (c->x86_vendor == X86_VENDOR_AMD) {
++		break;
++
++	case X86_VENDOR_AMD:
 +		snprintf(name, sizeof(name), "amd-ucode/microcode_amd.bin");
-+	} else
++		break;
++
++	default:
 +		return UCODE_NFOUND;
++	}
 +
 +	err = request_firmware(&firmware, name, device);
 +	if (err) {




More information about the scm-commits mailing list