[Nouveau] BIG changes to kernel module
Maxim Levitsky
maximlevitsky at gmail.com
Sun Aug 12 07:58:12 PDT 2012
Just tried this tree.
First to compile I had to use attached patch.
I double checked that I use nouveau tree with nothing on top of it.
tree pulled today from git://anongit.freedesktop.org/nouveau/linux-2.6,
branch master.
re-clocking obliviously stopped working and gave me a kernel panic.
3D appears to work, but I didn't test deeply.
First suspend worked, 2nd suspend caused almost same PFIFO context
unload timeout:
nouveau [ DRM][0000:01:00.0] suspending fbcon...
nouveau [ DRM][0000:01:00.0] suspending display...
sd 0:0:0:0: [sda] Stopping diskSUBSYSTEM=scsi
DEVICE=+scsi:0:0:0:0
nouveau [ DRM][0000:01:00.0] unpinning framebuffer(s)...
nouveau [ DRM][0000:01:00.0] evicting buffers...
nouveau [ DRM][0000:01:00.0] suspending client object trees...
fnouveau E[ PFIFO][0000:01:00.0] channel 4 unload timeout
fnouveau E[ PFIFO][0000:01:00.0][0xc000826f][ffff880036e47000] failed
to detach PGRAPH context, -16
fnouveau E[ PGRAPH][0000:01:00.0][0x03005014][ffff88007ade4000] failed
suspend, -16
nouveau W[ PGRAPH][0000:01:00.0][0x02005039][ffff88003684e100] parent
failed suspend, -16
fnouveau E[ 2955] 0xcccc0000:0xbeef5039 suspend failed with -16
fnouveau E[ 2955] 0xdddddddd:0xcccc0000 suspend failed with -16
fnouveau E[ 2955] 0xffffffff:0xdddddddd suspend failed with -16
fnouveau E[ 2955] 0xffffffff:0xffffffff suspend failed with -16
nouveau [ DRM][0000:01:00.0] resuming display...
Thanks for the huge work on this!
Best regards,
Maxim Levitsky
-------------- next part --------------
commit ba9f878c75ba412a1f3e1db50569ae3e16b65ec9
Author: Maxim Levitsky <maximlevitsky at gmail.com>
Date: Sun Aug 12 17:53:25 2012 +0300
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index ef96bdb..ed16b6e 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -41,6 +41,8 @@
#include "nouveau_ttm.h"
#include "nouveau_gem.h"
+#include <drm/ttm/ttm_bo_driver.h>
+
/*
* NV10-NV40 tiling helpers
*/
@@ -459,10 +461,12 @@ nouveau_ttm_tt_create(struct ttm_bo_device *bdev, unsigned long size,
struct nouveau_drm *drm = nouveau_bdev(bdev);
struct drm_device *dev = drm->dev;
+#if (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && defined(MODULE)))
if (drm->agp.stat == ENABLED) {
return ttm_agp_tt_create(bdev, dev->agp->bridge, size,
page_flags, dummy_read);
}
+#endif
return nouveau_sgdma_create_ttm(bdev, size, page_flags, dummy_read);
}
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
index 5693518..2b5c962 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.h
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
@@ -25,6 +25,8 @@
#include "ttm/ttm_module.h"
#include "ttm/ttm_page_alloc.h"
+#include <drm/nouveau_drm.h>
+
struct nouveau_channel;
#define DRM_FILE_PAGE_OFFSET (0x100000000ULL >> PAGE_SHIFT)
diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
index 4bddb9e..9e1de65 100644
--- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
@@ -31,7 +31,6 @@
#include "nouveau_drm.h"
#include "nouveau_ttm.h"
#include "nouveau_gem.h"
-
static int
nouveau_vram_manager_init(struct ttm_mem_type_manager *man, unsigned long psize)
{
More information about the Nouveau
mailing list