summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/i830.h1
-rw-r--r--src/i830_memory.c7
2 files changed, 7 insertions, 1 deletions
diff --git a/src/i830.h b/src/i830.h
index 33a92c69..0969c485 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -902,6 +902,7 @@ extern const int I830CopyROP[16];
#define NEED_NON_STOLEN 0x00000004
#define NEED_LIFETIME_FIXED 0x00000008
#define ALLOW_SHARING 0x00000010
+#define DISABLE_REUSE 0x00000020
/* Chipset registers for VIDEO BIOS memory RW access */
#define _855_DRAM_RW_CONTROL 0x58
diff --git a/src/i830_memory.c b/src/i830_memory.c
index 892c26e9..2a697a7d 100644
--- a/src/i830_memory.c
+++ b/src/i830_memory.c
@@ -799,6 +799,9 @@ i830_allocate_memory_bo(ScrnInfoPtr pScrn, const char *name,
}
}
+ if (flags & DISABLE_REUSE)
+ drm_intel_bo_disable_reuse(mem->bo);
+
/* Insert new allocation into the list */
mem->prev = NULL;
mem->next = pI830->bo_list;
@@ -1076,7 +1079,7 @@ i830_allocate_framebuffer(ScrnInfoPtr pScrn)
i830_memory *front_buffer = NULL;
enum tile_format tile_format = TILE_NONE;
- flags = ALLOW_SHARING;
+ flags = ALLOW_SHARING|DISABLE_REUSE;
/* We'll allocate the fb such that the root window will fit regardless of
* rotation.
@@ -1142,6 +1145,8 @@ i830_allocate_cursor_buffers(ScrnInfoPtr pScrn)
flags = pI830->CursorNeedsPhysical ? NEED_PHYSICAL_ADDR : 0;
+ flags |= DISABLE_REUSE;
+
/* Try to allocate one big blob for our cursor memory. This works
* around a limitation in the FreeBSD AGP driver that allows only one
* physical allocation larger than a page, and could allow us