rpms/kernel/F-8 kernel.spec, 1.445, 1.446 nouveau-drm.patch, 1.8, 1.9 linux-2.6-drm-add-i915-radeon-mdt.patch, 1.1, NONE linux-2.6-drm-fix-master-perm.patch, 1.1, NONE linux-2.6-drm-git-mm.patch, 1.1, NONE linux-2.6-drm-radeon-fix-oops.patch, 1.1, NONE linux-2.6-drm-radeon-fix-oops2.patch, 1.1, NONE nouveau-drm-update.patch, 1.1, NONE
Dave Airlie (airlied)
fedora-extras-commits at redhat.com
Thu May 22 01:59:01 UTC 2008
Author: airlied
Update of /cvs/pkgs/rpms/kernel/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28297
Modified Files:
kernel.spec nouveau-drm.patch
Removed Files:
linux-2.6-drm-add-i915-radeon-mdt.patch
linux-2.6-drm-fix-master-perm.patch linux-2.6-drm-git-mm.patch
linux-2.6-drm-radeon-fix-oops.patch
linux-2.6-drm-radeon-fix-oops2.patch nouveau-drm-update.patch
Log Message:
drm: resync all patches with F8 properly
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/kernel.spec,v
retrieving revision 1.445
retrieving revision 1.446
diff -u -r1.445 -r1.446
--- kernel.spec 22 May 2008 01:40:01 -0000 1.445
+++ kernel.spec 22 May 2008 01:58:10 -0000 1.446
@@ -666,12 +666,7 @@
Patch1515: linux-2.6-lirc.patch
# nouveau + drm fixes
-Patch1801: linux-2.6-drm-git-mm.patch
Patch1802: nouveau-drm.patch
-Patch1802: nouveau-drm-update.patch
-Patch1805: linux-2.6-drm-radeon-fix-oops.patch
-Patch1806: linux-2.6-drm-radeon-fix-oops2.patch
-Patch1807: linux-2.6-drm-fix-master-perm.patch
# Updated firewire stack from linux1394 git
Patch1910: linux-2.6-firewire-git-update.patch
@@ -985,12 +980,7 @@
ApplyPatch linux-2.6-alsa-kill-annoying-messages.patch
# Nouveau DRM + drm fixes
-ApplyPatch linux-2.6-drm-git-mm.patch
ApplyPatch nouveau-drm.patch
-ApplyPatch nouveau-drm-update.patch
-ApplyPatch linux-2.6-drm-radeon-fix-oops.patch
-#ApplyPatch linux-2.6-drm-radeon-fix-oops2.patch
-#ApplyPatch linux-2.6-drm-fix-master-perm.patch
# enable sysrq-c on all kernels, not only kexec
ApplyPatch linux-2.6-sysrq-c.patch
nouveau-drm.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.8 -r 1.9 nouveau-drm.patch
Index: nouveau-drm.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-8/nouveau-drm.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- nouveau-drm.patch 21 May 2008 23:55:13 -0000 1.8
+++ nouveau-drm.patch 22 May 2008 01:58:10 -0000 1.9
@@ -1,60 +1,54 @@
-From 2e677c51e2e77e78695eda61b52704144a490bec Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied at redhat.com>
-Date: Fri, 29 Feb 2008 15:58:37 +1000
-Subject: [PATCH] nouveau: rebased master from git
+From cbdc72a3e2b6c9ea95900beb7d42165b1b15365b Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied at linux.ie>
+Date: Thu, 22 May 2008 11:50:25 +1000
+Subject: [PATCH] F8 nouveau rebase onto 2.6.25
---
drivers/char/drm/Kconfig | 7 +
drivers/char/drm/Makefile | 12 +
drivers/char/drm/drmP.h | 4 +-
- drivers/char/drm/drm_bufs.c | 5 +-
- drivers/char/drm/drm_drv.c | 4 +
+ drivers/char/drm/drm_bufs.c | 6 +-
drivers/char/drm/drm_irq.c | 3 +-
- drivers/char/drm/drm_pciids.h | 262 ++++
- drivers/char/drm/nouveau_bo.c | 293 +++++
- drivers/char/drm/nouveau_dma.c | 172 +++
- drivers/char/drm/nouveau_dma.h | 96 ++
- drivers/char/drm/nouveau_drm.h | 166 +++
- drivers/char/drm/nouveau_drv.c | 108 ++
- drivers/char/drm/nouveau_drv.h | 602 ++++++++++
- drivers/char/drm/nouveau_fence.c | 120 ++
- drivers/char/drm/nouveau_fifo.c | 590 ++++++++++
- drivers/char/drm/nouveau_ioc32.c | 72 ++
- drivers/char/drm/nouveau_irq.c | 477 ++++++++
- drivers/char/drm/nouveau_mem.c | 674 +++++++++++
- drivers/char/drm/nouveau_notifier.c | 165 +++
- drivers/char/drm/nouveau_object.c | 1148 ++++++++++++++++++
- drivers/char/drm/nouveau_reg.h | 586 +++++++++
- drivers/char/drm/nouveau_sgdma.c | 341 ++++++
- drivers/char/drm/nouveau_state.c | 694 +++++++++++
- drivers/char/drm/nouveau_swmthd.c | 191 +++
- drivers/char/drm/nouveau_swmthd.h | 33 +
- drivers/char/drm/nv04_fb.c | 23 +
- drivers/char/drm/nv04_fifo.c | 138 +++
- drivers/char/drm/nv04_graph.c | 516 ++++++++
- drivers/char/drm/nv04_instmem.c | 159 +++
- drivers/char/drm/nv04_mc.c | 35 +
- drivers/char/drm/nv04_timer.c | 44 +
- drivers/char/drm/nv10_fb.c | 25 +
- drivers/char/drm/nv10_fifo.c | 169 +++
- drivers/char/drm/nv10_graph.c | 871 ++++++++++++++
- drivers/char/drm/nv20_graph.c | 889 ++++++++++++++
- drivers/char/drm/nv40_fb.c | 62 +
- drivers/char/drm/nv40_fifo.c | 199 ++++
- drivers/char/drm/nv40_graph.c | 2225 +++++++++++++++++++++++++++++++++++
- drivers/char/drm/nv40_mc.c | 38 +
- drivers/char/drm/nv50_fifo.c | 339 ++++++
- drivers/char/drm/nv50_graph.c | 363 ++++++
- drivers/char/drm/nv50_instmem.c | 323 +++++
+ drivers/char/drm/drm_pciids.h | 264 ++++
+ drivers/char/drm/nouveau_dma.c | 177 +++
+ drivers/char/drm/nouveau_dma.h | 98 ++
+ drivers/char/drm/nouveau_drm.h | 166 ++
+ drivers/char/drm/nouveau_drv.c | 96 ++
+ drivers/char/drm/nouveau_drv.h | 584 +++++++
+ drivers/char/drm/nouveau_fifo.c | 557 +++++++
+ drivers/char/drm/nouveau_ioc32.c | 72 +
+ drivers/char/drm/nouveau_irq.c | 430 ++++++
+ drivers/char/drm/nouveau_mem.c | 616 ++++++++
+ drivers/char/drm/nouveau_notifier.c | 173 +++
+ drivers/char/drm/nouveau_object.c | 1148 ++++++++++++++
+ drivers/char/drm/nouveau_reg.h | 538 +++++++
+ drivers/char/drm/nouveau_sgdma.c | 311 ++++
+ drivers/char/drm/nouveau_state.c | 569 +++++++
+ drivers/char/drm/nv04_fb.c | 24 +
+ drivers/char/drm/nv04_fifo.c | 129 ++
+ drivers/char/drm/nv04_graph.c | 415 +++++
+ drivers/char/drm/nv04_instmem.c | 160 ++
+ drivers/char/drm/nv04_mc.c | 23 +
+ drivers/char/drm/nv04_timer.c | 45 +
+ drivers/char/drm/nv10_fb.c | 26 +
+ drivers/char/drm/nv10_fifo.c | 160 ++
+ drivers/char/drm/nv10_graph.c | 777 ++++++++++
+ drivers/char/drm/nv20_graph.c | 249 +++
+ drivers/char/drm/nv30_graph.c | 2911 +++++++++++++++++++++++++++++++++++
+ drivers/char/drm/nv40_fb.c | 56 +
+ drivers/char/drm/nv40_fifo.c | 208 +++
+ drivers/char/drm/nv40_graph.c | 1906 +++++++++++++++++++++++
+ drivers/char/drm/nv40_mc.c | 39 +
+ drivers/char/drm/nv50_fifo.c | 327 ++++
+ drivers/char/drm/nv50_graph.c | 316 ++++
+ drivers/char/drm/nv50_instmem.c | 320 ++++
drivers/char/drm/nv50_mc.c | 43 +
- 43 files changed, 13282 insertions(+), 4 deletions(-)
- create mode 100644 drivers/char/drm/nouveau_bo.c
+ 39 files changed, 13961 insertions(+), 4 deletions(-)
create mode 100644 drivers/char/drm/nouveau_dma.c
create mode 100644 drivers/char/drm/nouveau_dma.h
create mode 100644 drivers/char/drm/nouveau_drm.h
create mode 100644 drivers/char/drm/nouveau_drv.c
create mode 100644 drivers/char/drm/nouveau_drv.h
- create mode 100644 drivers/char/drm/nouveau_fence.c
create mode 100644 drivers/char/drm/nouveau_fifo.c
create mode 100644 drivers/char/drm/nouveau_ioc32.c
create mode 100644 drivers/char/drm/nouveau_irq.c
@@ -64,8 +58,6 @@
create mode 100644 drivers/char/drm/nouveau_reg.h
create mode 100644 drivers/char/drm/nouveau_sgdma.c
create mode 100644 drivers/char/drm/nouveau_state.c
- create mode 100644 drivers/char/drm/nouveau_swmthd.c
- create mode 100644 drivers/char/drm/nouveau_swmthd.h
create mode 100644 drivers/char/drm/nv04_fb.c
create mode 100644 drivers/char/drm/nv04_fifo.c
create mode 100644 drivers/char/drm/nv04_graph.c
@@ -76,6 +68,7 @@
create mode 100644 drivers/char/drm/nv10_fifo.c
create mode 100644 drivers/char/drm/nv10_graph.c
create mode 100644 drivers/char/drm/nv20_graph.c
+ create mode 100644 drivers/char/drm/nv30_graph.c
create mode 100644 drivers/char/drm/nv40_fb.c
create mode 100644 drivers/char/drm/nv40_fifo.c
create mode 100644 drivers/char/drm/nv40_graph.c
@@ -86,7 +79,7 @@
create mode 100644 drivers/char/drm/nv50_mc.c
diff --git a/drivers/char/drm/Kconfig b/drivers/char/drm/Kconfig
-index 610d6fd..6b98529 100644
+index 610d6fd..6f55e75 100644
--- a/drivers/char/drm/Kconfig
+++ b/drivers/char/drm/Kconfig
@@ -105,3 +105,10 @@ config DRM_SAVAGE
@@ -98,30 +91,30 @@
+ tristate "Nvidia video cards"
+ depends on DRM
+ help
-+ Choose this for nvidia open source 3d driver
++ Choose this for nvidia open source 3d driver
+
diff --git a/drivers/char/drm/Makefile b/drivers/char/drm/Makefile
-index 85c4f9e..721548c 100644
+index 1283ded..7b372eb 100644
--- a/drivers/char/drm/Makefile
+++ b/drivers/char/drm/Makefile
-@@ -15,6 +15,16 @@ mga-objs := mga_drv.o mga_dma.o mga_state.o mga_warp.o mga_irq.o
+@@ -14,6 +14,16 @@ mga-objs := mga_drv.o mga_dma.o mga_state.o mga_warp.o mga_irq.o
i810-objs := i810_drv.o i810_dma.o
i830-objs := i830_drv.o i830_dma.o i830_irq.o
- i915-objs := i915_drv.o i915_dma.o i915_irq.o i915_mem.o i915_fence.o i915_buffer.o
+ i915-objs := i915_drv.o i915_dma.o i915_irq.o i915_mem.o
+nouveau-objs := nouveau_drv.o nouveau_state.o nouveau_fifo.o nouveau_mem.o \
-+ nouveau_object.o nouveau_irq.o nouveau_notifier.o nouveau_swmthd.o \
-+ nouveau_sgdma.o nouveau_dma.o nouveau_bo.o nouveau_fence.o \
++ nouveau_object.o nouveau_irq.o nouveau_notifier.o \
++ nouveau_sgdma.o nouveau_dma.o \
+ nv04_timer.o \
+ nv04_mc.o nv40_mc.o nv50_mc.o \
+ nv04_fb.o nv10_fb.o nv40_fb.o \
+ nv04_fifo.o nv10_fifo.o nv40_fifo.o nv50_fifo.o \
-+ nv04_graph.o nv10_graph.o nv20_graph.o \
++ nv04_graph.o nv10_graph.o nv20_graph.o nv30_graph.o \
+ nv40_graph.o nv50_graph.o \
+ nv04_instmem.o nv50_instmem.o
radeon-objs := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o r300_cmdbuf.o
sis-objs := sis_drv.o sis_mm.o
savage-objs := savage_drv.o savage_bci.o savage_state.o
-@@ -26,6 +36,7 @@ radeon-objs += radeon_ioc32.o
+@@ -25,6 +35,7 @@ radeon-objs += radeon_ioc32.o
mga-objs += mga_ioc32.o
r128-objs += r128_ioc32.o
i915-objs += i915_ioc32.o
@@ -129,7 +122,7 @@
endif
obj-$(CONFIG_DRM) += drm.o
-@@ -36,6 +47,7 @@ obj-$(CONFIG_DRM_MGA) += mga.o
+@@ -35,6 +46,7 @@ obj-$(CONFIG_DRM_MGA) += mga.o
obj-$(CONFIG_DRM_I810) += i810.o
obj-$(CONFIG_DRM_I830) += i830.o
obj-$(CONFIG_DRM_I915) += i915.o
@@ -138,10 +131,10 @@
obj-$(CONFIG_DRM_SAVAGE)+= savage.o
obj-$(CONFIG_DRM_VIA) +=via.o
diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
-index c6df504..7fb3a2f 100644
+index 8ea9dd1..49ee12e 100644
--- a/drivers/char/drm/drmP.h
+++ b/drivers/char/drm/drmP.h
-@@ -1033,7 +1033,8 @@ extern unsigned long drm_get_resource_start(struct drm_device *dev,
+@@ -973,7 +973,8 @@ extern unsigned long drm_get_resource_start(struct drm_device *dev,
unsigned int resource);
extern unsigned long drm_get_resource_len(struct drm_device *dev,
unsigned int resource);
@@ -151,7 +144,7 @@
/* DMA support (drm_dma.h) */
extern int drm_dma_setup(struct drm_device *dev);
extern void drm_dma_takedown(struct drm_device *dev);
-@@ -1045,6 +1046,7 @@ extern void drm_core_reclaim_buffers(struct drm_device *dev,
[...9446 lines suppressed...]
-+static int
++static void
+nv50_graph_init_ctxctl(struct drm_device *dev)
+{
+ struct drm_nouveau_private *dev_priv = dev->dev_private;
-+ uint32_t *voodoo = NULL;
++ uint32_t *voodoo;
+
+ DRM_DEBUG("\n");
+
@@ -13153,42 +13813,34 @@
+ case 0x84:
+ voodoo = nv84_ctx_voodoo;
+ break;
-+ case 0x86:
-+ voodoo = nv86_ctx_voodoo;
-+ break;
+ default:
+ DRM_ERROR("no voodoo for chipset NV%02x\n", dev_priv->chipset);
-+ return -EINVAL;
++ break;
+ }
+
-+ NV_WRITE(NV40_PGRAPH_CTXCTL_UCODE_INDEX, 0);
-+ while (*voodoo != ~0) {
-+ NV_WRITE(NV40_PGRAPH_CTXCTL_UCODE_DATA, *voodoo);
-+ voodoo++;
++ if (voodoo) {
++ NV_WRITE(NV40_PGRAPH_CTXCTL_UCODE_INDEX, 0);
++ while (*voodoo != ~0) {
++ NV_WRITE(NV40_PGRAPH_CTXCTL_UCODE_DATA, *voodoo);
++ voodoo++;
++ }
+ }
+
+ NV_WRITE(0x400320, 4);
+ NV_WRITE(NV40_PGRAPH_CTXCTL_CUR, 0);
+ NV_WRITE(NV20_PGRAPH_CHANNEL_CTX_POINTER, 0);
-+
-+ return 0;
+}
+
-+int
++int
+nv50_graph_init(struct drm_device *dev)
+{
-+ int ret;
-+
+ DRM_DEBUG("\n");
+
+ nv50_graph_init_reset(dev);
+ nv50_graph_init_intr(dev);
+ nv50_graph_init_regs__nv(dev);
+ nv50_graph_init_regs(dev);
-+
-+ ret = nv50_graph_init_ctxctl(dev);
-+ if (ret)
-+ return ret;
++ nv50_graph_init_ctxctl(dev);
+
+ return 0;
+}
@@ -13211,10 +13863,11 @@
+
+ DRM_DEBUG("ch%d\n", chan->id);
+
-+ ret = nouveau_gpuobj_new_ref(dev, chan, NULL, 0, grctx_size, 0x1000,
-+ NVOBJ_FLAG_ZERO_ALLOC |
-+ NVOBJ_FLAG_ZERO_FREE, &chan->ramin_grctx);
-+ if (ret)
++ if ((ret = nouveau_gpuobj_new_ref(dev, chan, NULL, 0,
++ grctx_size, 0x1000,
++ NVOBJ_FLAG_ZERO_ALLOC |
++ NVOBJ_FLAG_ZERO_FREE,
++ &chan->ramin_grctx)))
+ return ret;
+
+ hdr = IS_G80 ? 0x200 : 0x20;
@@ -13226,16 +13879,11 @@
+ INSTANCE_WR(ramin, (hdr + 0x10)/4, 0);
+ INSTANCE_WR(ramin, (hdr + 0x14)/4, 0x00010000);
+
-+ ret = engine->graph.load_context(chan);
-+ if (ret) {
++ if ((ret = engine->graph.load_context(chan))) {
+ DRM_ERROR("Error hacking up initial context: %d\n", ret);
+ return ret;
+ }
+
-+ INSTANCE_WR(chan->ramin_grctx->gpuobj, 0x00000/4,
-+ chan->ramin->instance >> 12);
-+ INSTANCE_WR(chan->ramin_grctx->gpuobj, 0x0011c/4, 0x00000002);
-+
+ return 0;
+}
+
@@ -13265,10 +13913,10 @@
+ DRM_DEBUG("inst=0x%08x, save=%d\n", inst, save);
+
+ old_cp = NV_READ(NV20_PGRAPH_CHANNEL_CTX_POINTER);
-+ NV_WRITE(NV20_PGRAPH_CHANNEL_CTX_POINTER, inst);
++ NV_WRITE(NV20_PGRAPH_CHANNEL_CTX_POINTER, inst | (1<<31));
+ NV_WRITE(0x400824, NV_READ(0x400824) |
+ (save ? NV40_PGRAPH_CTXCTL_0310_XFER_SAVE :
-+ NV40_PGRAPH_CTXCTL_0310_XFER_LOAD));
++ NV40_PGRAPH_CTXCTL_0310_XFER_LOAD));
+ NV_WRITE(NV40_PGRAPH_CTXCTL_0304, NV40_PGRAPH_CTXCTL_0304_XFER_CTX);
+
+ for (i = 0; i < tv; i++) {
@@ -13292,15 +13940,19 @@
+{
+ struct drm_device *dev = chan->dev;
+ struct drm_nouveau_private *dev_priv = dev->dev_private;
-+ uint32_t inst = chan->ramin->instance >> 12;
++ uint32_t inst = ((chan->ramin->instance >> 12) | (1<<31));
+ int ret; (void)ret;
+
+ DRM_DEBUG("ch%d\n", chan->id);
+
++#if 0
++ if ((ret = nv50_graph_transfer_context(dev, inst, 0)))
++ return ret;
++#endif
+
+ NV_WRITE(NV20_PGRAPH_CHANNEL_CTX_POINTER, inst);
+ NV_WRITE(0x400320, 4);
-+ NV_WRITE(NV40_PGRAPH_CTXCTL_CUR, inst | (1<<31));
++ NV_WRITE(NV40_PGRAPH_CTXCTL_CUR, inst);
+
+ return 0;
+}
@@ -13309,18 +13961,19 @@
+nv50_graph_save_context(struct nouveau_channel *chan)
+{
+ struct drm_device *dev = chan->dev;
-+ uint32_t inst = chan->ramin->instance >> 12;
++ uint32_t inst = ((chan->ramin->instance >> 12) | (1<<31));
+
+ DRM_DEBUG("ch%d\n", chan->id);
+
+ return nv50_graph_transfer_context(dev, inst, 1);
+}
++
diff --git a/drivers/char/drm/nv50_instmem.c b/drivers/char/drm/nv50_instmem.c
new file mode 100644
-index 0000000..9687ecb
+index 0000000..1eeb54d
--- /dev/null
+++ b/drivers/char/drm/nv50_instmem.c
-@@ -0,0 +1,323 @@
+@@ -0,0 +1,320 @@
+/*
+ * Copyright (C) 2007 Ben Skeggs.
+ *
@@ -13392,11 +14045,7 @@
+ return -ENOMEM;
+ dev_priv->Engine.instmem.priv = priv;
+
-+ /* Save state, will restore at takedown. */
-+ for (i = 0x1700; i <= 0x1710; i+=4)
-+ priv->save1700[(i-0x1700)/4] = NV_READ(i);
-+
-+ /* Reserve the last MiB of VRAM, we should probably try to avoid
++ /* Reserve the last MiB of VRAM, we should probably try to avoid
+ * setting up the below tables over the top of the VBIOS image at
+ * some point.
+ */
@@ -13471,7 +14120,7 @@
+ BAR0_WI32(priv->pramin_pt->gpuobj, i + 0, v | 1);
+ else
+ BAR0_WI32(priv->pramin_pt->gpuobj, i + 0, 0x00000009);
-+ BAR0_WI32(priv->pramin_pt->gpuobj, i + 4, 0x00000000);
++ BAR0_WI32(priv->pramin_pt->gpuobj, i + 4, 0x00000000);
+ }
+
+ BAR0_WI32(chan->vm_pd, 0x00, priv->pramin_pt->instance | 0x63);
@@ -13586,7 +14235,7 @@
+ dev_priv->Engine.instmem.unbind(dev, gpuobj);
+ nouveau_mem_free(dev, gpuobj->im_backing);
+ gpuobj->im_backing = NULL;
-+ }
++ }
+}
+
+int
@@ -13644,6 +14293,7 @@
+ gpuobj->im_bound = 0;
+ return 0;
+}
++
diff --git a/drivers/char/drm/nv50_mc.c b/drivers/char/drm/nv50_mc.c
new file mode 100644
index 0000000..b111826
@@ -13694,5 +14344,5 @@
+{
+}
--
-1.5.3.7
+1.5.3.3
--- linux-2.6-drm-add-i915-radeon-mdt.patch DELETED ---
--- linux-2.6-drm-fix-master-perm.patch DELETED ---
--- linux-2.6-drm-git-mm.patch DELETED ---
--- linux-2.6-drm-radeon-fix-oops.patch DELETED ---
--- linux-2.6-drm-radeon-fix-oops2.patch DELETED ---
--- nouveau-drm-update.patch DELETED ---
More information about the fedora-extras-commits
mailing list