debian/patches/04_update_nouveau_header.patch |  174 ++++++++++++++++++++++++++
 1 file changed, 174 insertions(+)

New commits:
commit 9f4e58ac7f1130c20d4927a873d6a2fdc8fe7126
Author: Christopher James Halse Rogers <ch...@cowboylaputopu.(none)>
Date:   Thu Feb 12 08:21:48 2009 +1100

    BAH!  Actually commit 04_update_nouveau_header.patch

diff --git a/debian/patches/04_update_nouveau_header.patch 
b/debian/patches/04_update_nouveau_header.patch
new file mode 100644
index 0000000..eee110b
--- /dev/null
+++ b/debian/patches/04_update_nouveau_header.patch
@@ -0,0 +1,174 @@
+From cb85630c02ddb46f168064befb2296d46b69f57a Mon Sep 17 00:00:00 2001
+From: Ben Skeggs <skeg...@gmail.com>
+Date: Fri, 30 Jan 2009 01:18:54 +0000
+Subject: nouveau: bring in new mm api definitions, without the actual mm code
+
+Use of the new bits is guarded with a mm_enabled=0 hardcode.
+---
+diff --git a/shared-core/nouveau_drm.h b/shared-core/nouveau_drm.h
+index a99c615..4147f35 100644
+--- a/shared-core/nouveau_drm.h
++++ b/shared-core/nouveau_drm.h
+@@ -25,13 +25,26 @@
+ #ifndef __NOUVEAU_DRM_H__
+ #define __NOUVEAU_DRM_H__
+ 
+-#define NOUVEAU_DRM_HEADER_PATCHLEVEL 11
++#define NOUVEAU_DRM_HEADER_PATCHLEVEL 12
+ 
+ struct drm_nouveau_channel_alloc {
+       uint32_t     fb_ctxdma_handle;
+       uint32_t     tt_ctxdma_handle;
+ 
+       int          channel;
++
++      /* Notifier memory */
++      drm_handle_t notifier;
++      int          notifier_size;
++
++      /* DRM-enforced subchannel assignments */
++      struct {
++              uint32_t handle;
++              uint32_t grclass;
++      } subchan[8];
++      uint32_t nr_subchan;
++
++/* !MM_ENABLED ONLY */
+       uint32_t     put_base;
+       /* FIFO control regs */
+       drm_handle_t ctrl;
+@@ -39,9 +52,6 @@ struct drm_nouveau_channel_alloc {
+       /* DMA command buffer */
+       drm_handle_t cmdbuf;
+       int          cmdbuf_size;
+-      /* Notifier memory */
+-      drm_handle_t notifier;
+-      int          notifier_size;
+ };
+ 
+ struct drm_nouveau_channel_free {
+@@ -126,6 +136,8 @@ struct drm_nouveau_mem_tile {
+ #define NOUVEAU_GETPARAM_AGP_SIZE        9
+ #define NOUVEAU_GETPARAM_PCI_PHYSICAL    10
+ #define NOUVEAU_GETPARAM_CHIPSET_ID      11
++#define NOUVEAU_GETPARAM_MM_ENABLED      12
++#define NOUVEAU_GETPARAM_VM_VRAM_BASE    13
+ struct drm_nouveau_getparam {
+       uint64_t param;
+       uint64_t value;
+@@ -138,6 +150,100 @@ struct drm_nouveau_setparam {
+       uint64_t value;
+ };
+ 
++#define NOUVEAU_GEM_DOMAIN_CPU       (1 << 0)
++#define NOUVEAU_GEM_DOMAIN_VRAM      (1 << 1)
++#define NOUVEAU_GEM_DOMAIN_GART      (1 << 2)
++#define NOUVEAU_GEM_DOMAIN_NOMAP     (1 << 3)
++#define NOUVEAU_GEM_DOMAIN_TILE      (1 << 30)
++#define NOUVEAU_GEM_DOMAIN_TILE_ZETA (1 << 31)
++
++struct drm_nouveau_gem_new {
++      uint64_t size;
++      uint32_t channel_hint;
++      uint32_t align;
++      uint32_t handle;
++      uint32_t domain;
++      uint32_t offset;
++};
++
++struct drm_nouveau_gem_pushbuf_bo {
++      uint64_t user_priv;
++      uint32_t handle;
++      uint32_t read_domains;
++      uint32_t write_domains;
++      uint32_t valid_domains;
++      uint32_t presumed_ok;
++      uint32_t presumed_domain;
++      uint64_t presumed_offset;
++};
++
++#define NOUVEAU_GEM_RELOC_LOW  (1 << 0)
++#define NOUVEAU_GEM_RELOC_HIGH (1 << 1)
++#define NOUVEAU_GEM_RELOC_OR   (1 << 2)
++struct drm_nouveau_gem_pushbuf_reloc {
++      uint32_t bo_index;
++      uint32_t reloc_index;
++      uint32_t flags;
++      uint32_t data;
++      uint32_t vor;
++      uint32_t tor;
++};
++
++#define NOUVEAU_GEM_MAX_BUFFERS 1024
++#define NOUVEAU_GEM_MAX_RELOCS 1024
++
++struct drm_nouveau_gem_pushbuf {
++      uint32_t channel;
++      uint32_t nr_dwords;
++      uint32_t nr_buffers;
++      uint32_t nr_relocs;
++      uint64_t dwords;
++      uint64_t buffers;
++      uint64_t relocs;
++};
++
++struct drm_nouveau_gem_pushbuf_call {
++      uint32_t channel;
++      uint32_t handle;
++      uint32_t offset;
++      uint32_t nr_buffers;
++      uint32_t nr_relocs;
++      uint32_t pad0;
++      uint64_t buffers;
++      uint64_t relocs;
++};
++
++struct drm_nouveau_gem_pin {
++      uint32_t handle;
++      uint32_t domain;
++      uint64_t offset;
++};
++
++struct drm_nouveau_gem_unpin {
++      uint32_t handle;
++};
++
++struct drm_nouveau_gem_mmap {
++      uint32_t handle;
++      uint32_t pad;
++      uint64_t vaddr;
++};
++
++struct drm_nouveau_gem_cpu_prep {
++      uint32_t handle;
++};
++
++struct drm_nouveau_gem_cpu_fini {
++      uint32_t handle;
++};
++
++struct drm_nouveau_gem_tile {
++      uint32_t handle;
++      uint32_t delta;
++      uint32_t size;
++      uint32_t flags;
++};
++
+ enum nouveau_card_type {
+       NV_UNKNOWN =0,
+       NV_04      =4,
+@@ -180,5 +286,14 @@ struct drm_nouveau_sarea {
+ #define DRM_NOUVEAU_MEM_TILE           0x0a
+ #define DRM_NOUVEAU_SUSPEND            0x0b
+ #define DRM_NOUVEAU_RESUME             0x0c
++#define DRM_NOUVEAU_GEM_NEW            0x40
++#define DRM_NOUVEAU_GEM_PUSHBUF        0x41
++#define DRM_NOUVEAU_GEM_PUSHBUF_CALL   0x42
++#define DRM_NOUVEAU_GEM_PIN            0x43
++#define DRM_NOUVEAU_GEM_UNPIN          0x44
++#define DRM_NOUVEAU_GEM_MMAP           0x45
++#define DRM_NOUVEAU_GEM_CPU_PREP       0x46
++#define DRM_NOUVEAU_GEM_CPU_FINI       0x47
++#define DRM_NOUVEAU_GEM_TILE           0x48
+ 
+ #endif /* __NOUVEAU_DRM_H__ */


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to