summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-libs')
-rw-r--r--x11-libs/libdrm_nouveau/ChangeLog6
-rw-r--r--x11-libs/libdrm_nouveau/Manifest8
-rw-r--r--x11-libs/libdrm_nouveau/files/libdrm-2.4.5-nouveau.patch379
-rw-r--r--x11-libs/libdrm_nouveau/files/libdrm-2.4.6-makefile.patch22
-rw-r--r--x11-libs/libdrm_nouveau/libdrm_nouveau-2.4.6.ebuild (renamed from x11-libs/libdrm_nouveau/libdrm_nouveau-2.4.5.ebuild)2
5 files changed, 33 insertions, 384 deletions
diff --git a/x11-libs/libdrm_nouveau/ChangeLog b/x11-libs/libdrm_nouveau/ChangeLog
index 08b7a2b69..89980bda0 100644
--- a/x11-libs/libdrm_nouveau/ChangeLog
+++ b/x11-libs/libdrm_nouveau/ChangeLog
@@ -2,6 +2,12 @@
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+ 10 Apr 2009; Chi-Thanh Christopher Nguyen (chithead)
+ <chithanh@cs.tu-berlin.de> -libdrm_nouveau-2.4.5.ebuild,
+ -files/libdrm-2.4.5-nouveau.patch, +libdrm_nouveau-2.4.6.ebuild,
+ +files/libdrm-2.4.6-makefile.patch:
+ new snapshot
+
28 Feb 2009; Chi-Thanh Christopher Nguyen (chithead)
<chithanh@cs.tu-berlin.de> +libdrm_nouveau-2.4.5.ebuild,
+files/libdrm-2.4.5-nouveau.patch, +metadata.xml:
diff --git a/x11-libs/libdrm_nouveau/Manifest b/x11-libs/libdrm_nouveau/Manifest
index 2e10293f9..061bd75dd 100644
--- a/x11-libs/libdrm_nouveau/Manifest
+++ b/x11-libs/libdrm_nouveau/Manifest
@@ -1,5 +1,5 @@
-AUX libdrm-2.4.5-nouveau.patch 11195 RMD160 efc11ec89378a734d0fe8d46135c1b0bb16b32ac SHA1 91b1bcbd006c6e512be7ba7f1aa555070e1728c1 SHA256 d349fb017f89439a7d7358efbc877d1849fbb1966e1af321082ed1deb376fb01
-DIST libdrm-2.4.5.tar.gz 563395 RMD160 11a512368c32fb6ed3fa17d7d728e244d61547db SHA1 9e919c4cda6454118ebd288edc3bc65fc6779a51 SHA256 4ada5afa0ac774b9affce9762e703d0a98bfcb3537a5230ef12955b0068259d1
-EBUILD libdrm_nouveau-2.4.5.ebuild 1336 RMD160 6a91b6373ed61f0b3a912bbe36dcb9b8c4ee6db3 SHA1 4d15c73730f1522b235412e1d8a0b1037a37d0e3 SHA256 1ece1d2d20727f14cf5ca00ab95208eaa76d7f77b501b23a121ad5e673507bde
-MISC ChangeLog 319 RMD160 7ee36d5aeff4bf333772db83c9331ffdc5acc975 SHA1 bc00978e46cc8d683b322cb576ee163052e4ec0d SHA256 ebad56cb90dc306bc059df15d25e1f93ae0e80109d2b1e1f12804cb37b5e1ca6
+AUX libdrm-2.4.6-makefile.patch 557 RMD160 9e82191fac3080927748832072c4e6aa2c5859e6 SHA1 74c2c97019b3f36f6eecef017b21ac96d6d73014 SHA256 4a9c7411f7b544e87bbef9f621536b9ab9409306c0862e30bbf411443df30654
+DIST libdrm-2.4.6.tar.gz 516193 RMD160 99c4b4cb060ae2f225f39a9f73b62145f97832be SHA1 ec4b7d23566ce1cfd05fd33d8aad6f88d7c3d37b SHA256 8f7a959900027a8235f345cb61a4cf0f0095683519c45af8dccbe39446414895
+EBUILD libdrm_nouveau-2.4.6.ebuild 1337 RMD160 a7758a26beaa3310c5fdba04ff51fca9a36830d1 SHA1 c0c823839e72717f2edf47cf2266d23048d8d3ed SHA256 654fec1867d8ed19b65ba1a4709f61f4ecae9eb348dc4eb0497528d4e6e3528b
+MISC ChangeLog 554 RMD160 a1c69a28e9b4d35e06b7b8eb2927bc2fa000eee3 SHA1 400e08bb65231e7dadbe6b89f84f382febc06e05 SHA256 2af0e9af86b310066c611edb240c875501542119cd51d13d39620d31bf5b220e
MISC metadata.xml 170 RMD160 645927a396fdc21cdeb089fe42c5397332420ea6 SHA1 ac7f48a14fec325926f9ce1be8fbf1f311b4f2e4 SHA256 d797a2ec6f9dc516c9f9c1a758ee87ad3e8c43101b5dc76c2f872d5bd4639b42
diff --git a/x11-libs/libdrm_nouveau/files/libdrm-2.4.5-nouveau.patch b/x11-libs/libdrm_nouveau/files/libdrm-2.4.5-nouveau.patch
deleted file mode 100644
index 4803e1088..000000000
--- a/x11-libs/libdrm_nouveau/files/libdrm-2.4.5-nouveau.patch
+++ /dev/null
@@ -1,379 +0,0 @@
-diff -urN a/libdrm/nouveau/Makefile.am b/libdrm/nouveau/Makefile.am
---- a/libdrm/nouveau/Makefile.am 2009-02-11 01:09:35.000000000 +0100
-+++ b/libdrm/nouveau/Makefile.am 2009-02-25 11:41:25.074352257 +0100
-@@ -19,7 +19,9 @@
- nouveau_bo.c \
- nouveau_resource.c \
- nouveau_dma.c \
-- nouveau_fence.c
-+ nouveau_fence.c \
-+ nouveau_dma.h \
-+ nouveau_private.h
-
- libdrm_nouveaucommonincludedir = ${includedir}/nouveau
- libdrm_nouveaucommoninclude_HEADERS = \
-diff -urN a/libdrm/nouveau/nouveau_dma.h b/libdrm/nouveau/nouveau_dma.h
---- a/libdrm/nouveau/nouveau_dma.h 1970-01-01 01:00:00.000000000 +0100
-+++ b/libdrm/nouveau/nouveau_dma.h 2009-02-25 11:49:50.000000000 +0100
-@@ -0,0 +1,154 @@
-+/*
-+ * Copyright 2007 Nouveau Project
-+ *
-+ * 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 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
-+ * THE AUTHORS 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.
-+ */
-+
-+#ifndef __NOUVEAU_DMA_H__
-+#define __NOUVEAU_DMA_H__
-+
-+#include <string.h>
-+#include "nouveau_private.h"
-+
-+//#define NOUVEAU_DMA_DEBUG
-+//#define NOUVEAU_DMA_TRACE
-+//#define NOUVEAU_DMA_DUMP_POSTRELOC_PUSHBUF
-+#if defined(__amd64__)
-+#define NOUVEAU_DMA_BARRIER asm volatile("lock; addl $0,0(%%rsp)" ::: "memory")
-+#elif defined(__i386__)
-+#define NOUVEAU_DMA_BARRIER asm volatile("lock; addl $0,0(%%esp)" ::: "memory")
-+#else
-+#define NOUVEAU_DMA_BARRIER
-+#endif
-+#define NOUVEAU_DMA_TIMEOUT 2000
-+#define NOUVEAU_TIME_MSEC() 0
-+#define RING_SKIPS 8
-+
-+extern int nouveau_dma_wait(struct nouveau_channel *chan, unsigned size);
-+extern void nouveau_dma_subc_bind(struct nouveau_grobj *);
-+extern void nouveau_dma_channel_init(struct nouveau_channel *);
-+extern void nouveau_dma_kickoff(struct nouveau_channel *);
-+
-+#ifdef NOUVEAU_DMA_DEBUG
-+static char faulty[1024];
-+#endif
-+
-+static inline void
-+nouveau_dma_out(struct nouveau_channel *chan, uint32_t data)
-+{
-+ struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
-+ struct nouveau_dma_priv *dma = nvchan->dma;
-+
-+#ifdef NOUVEAU_DMA_DEBUG
-+ if (dma->push_free == 0) {
-+ printf("No space left in packet at %s\n", faulty);
-+ return;
-+ }
-+ dma->push_free--;
-+#endif
-+#ifdef NOUVEAU_DMA_TRACE
-+ {
-+ uint32_t offset = (dma->cur << 2) + dma->base;
-+ printf("\tOUT_RING %d/0x%08x -> 0x%08x\n",
-+ nvchan->drm.channel, offset, data);
-+ }
-+#endif
-+ nvchan->pushbuf[dma->cur + (dma->base - nvchan->drm.put_base)/4] = data;
-+ dma->cur++;
-+}
-+
-+static inline void
-+nouveau_dma_outp(struct nouveau_channel *chan, uint32_t *ptr, int size)
-+{
-+ struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
-+ struct nouveau_dma_priv *dma = nvchan->dma;
-+ (void)dma;
-+
-+#ifdef NOUVEAU_DMA_DEBUG
-+ if (dma->push_free < size) {
-+ printf("Packet too small. Free=%d, Need=%d\n",
-+ dma->push_free, size);
-+ return;
-+ }
-+#endif
-+#ifdef NOUVEAU_DMA_TRACE
-+ while (size--) {
-+ nouveau_dma_out(chan, *ptr);
-+ ptr++;
-+ }
-+#else
-+ memcpy(&nvchan->pushbuf[dma->cur], ptr, size << 2);
-+#ifdef NOUVEAU_DMA_DEBUG
-+ dma->push_free -= size;
-+#endif
-+ dma->cur += size;
-+#endif
-+}
-+
-+static inline void
-+nouveau_dma_space(struct nouveau_channel *chan, unsigned size)
-+{
-+ struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
-+ struct nouveau_dma_priv *dma = nvchan->dma;
-+
-+ if (dma->free < size) {
-+ if (nouveau_dma_wait(chan, size) && chan->hang_notify)
-+ chan->hang_notify(chan);
-+ }
-+ dma->free -= size;
-+#ifdef NOUVEAU_DMA_DEBUG
-+ dma->push_free = size;
-+#endif
-+}
-+
-+static inline void
-+nouveau_dma_begin(struct nouveau_channel *chan, struct nouveau_grobj *grobj,
-+ int method, int size, const char* file, int line)
-+{
-+ struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
-+ struct nouveau_dma_priv *dma = nvchan->dma;
-+ (void)dma;
-+
-+#ifdef NOUVEAU_DMA_TRACE
-+ printf("BEGIN_RING %d/%08x/%d/0x%04x/%d\n", nvchan->drm.channel,
-+ grobj->handle, grobj->subc, method, size);
-+#endif
-+
-+#ifdef NOUVEAU_DMA_DEBUG
-+ if (dma->push_free) {
-+ printf("Previous packet incomplete: %d left at %s\n",
-+ dma->push_free, faulty);
-+ return;
-+ }
-+ sprintf(faulty,"%s:%d",file,line);
-+#endif
-+
-+ nouveau_dma_space(chan, (size + 1));
-+ nouveau_dma_out(chan, (size << 18) | (grobj->subc << 13) | method);
-+}
-+
-+#define RING_SPACE_CH(ch,sz) nouveau_dma_space((ch), (sz))
-+#define BEGIN_RING_CH(ch,gr,m,sz) nouveau_dma_begin((ch), (gr), (m), (sz), __FUNCTION__, __LINE__ )
-+#define OUT_RING_CH(ch, data) nouveau_dma_out((ch), (data))
-+#define OUT_RINGp_CH(ch,ptr,dwords) nouveau_dma_outp((ch), (void*)(ptr), \
-+ (dwords))
-+#define FIRE_RING_CH(ch) nouveau_dma_kickoff((ch))
-+#define WAIT_RING_CH(ch,sz) nouveau_dma_wait((ch), (sz))
-+
-+#endif
-diff -urN a/libdrm/nouveau/nouveau_private.h b/libdrm/nouveau/nouveau_private.h
---- a/libdrm/nouveau/nouveau_private.h 1970-01-01 01:00:00.000000000 +0100
-+++ b/libdrm/nouveau/nouveau_private.h 2009-02-25 11:50:03.000000000 +0100
-@@ -0,0 +1,203 @@
-+/*
-+ * Copyright 2007 Nouveau Project
-+ *
-+ * 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 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
-+ * THE AUTHORS 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.
-+ */
-+
-+#ifndef __NOUVEAU_PRIVATE_H__
-+#define __NOUVEAU_PRIVATE_H__
-+
-+#include <stdint.h>
-+#include <xf86drm.h>
-+#include <nouveau_drm.h>
-+
-+#include "nouveau_drmif.h"
-+#include "nouveau_device.h"
-+#include "nouveau_channel.h"
-+#include "nouveau_grobj.h"
-+#include "nouveau_notifier.h"
-+#include "nouveau_bo.h"
-+#include "nouveau_resource.h"
-+#include "nouveau_pushbuf.h"
-+
-+#define NOUVEAU_PUSHBUF_MAX_BUFFERS 1024
-+#define NOUVEAU_PUSHBUF_MAX_RELOCS 1024
-+struct nouveau_pushbuf_priv {
-+ struct nouveau_pushbuf base;
-+
-+ int use_cal;
-+ struct nouveau_bo *buffer;
-+
-+ unsigned *pushbuf;
-+ unsigned size;
-+
-+ struct drm_nouveau_gem_pushbuf_bo *buffers;
-+ unsigned nr_buffers;
-+ struct drm_nouveau_gem_pushbuf_reloc *relocs;
-+ unsigned nr_relocs;
-+
-+ /*XXX: nomm */
-+ struct nouveau_fence *fence;
-+};
-+#define nouveau_pushbuf(n) ((struct nouveau_pushbuf_priv *)(n))
-+
-+#define pbbo_to_ptr(o) ((uint64_t)(unsigned long)(o))
-+#define ptr_to_pbbo(h) ((struct nouveau_pushbuf_bo *)(unsigned long)(h))
-+#define pbrel_to_ptr(o) ((uint64_t)(unsigned long)(o))
-+#define ptr_to_pbrel(h) ((struct nouveau_pushbuf_reloc *)(unsigned long)(h))
-+#define bo_to_ptr(o) ((uint64_t)(unsigned long)(o))
-+#define ptr_to_bo(h) ((struct nouveau_bo_priv *)(unsigned long)(h))
-+
-+int
-+nouveau_pushbuf_init(struct nouveau_channel *);
-+
-+struct nouveau_dma_priv {
-+ uint32_t base;
-+ uint32_t max;
-+ uint32_t cur;
-+ uint32_t put;
-+ uint32_t free;
-+
-+ int push_free;
-+} dma;
-+
-+struct nouveau_channel_priv {
-+ struct nouveau_channel base;
-+
-+ struct drm_nouveau_channel_alloc drm;
-+
-+ void *notifier_block;
-+
-+ struct nouveau_pushbuf_priv pb;
-+
-+ /*XXX: nomm */
-+ volatile uint32_t *user, *put, *get, *ref_cnt;
-+ uint32_t *pushbuf;
-+ struct nouveau_dma_priv struct_dma;
-+ struct nouveau_dma_priv *dma;
-+ struct nouveau_fence *fence_head;
-+ struct nouveau_fence *fence_tail;
-+ uint32_t fence_sequence;
-+ struct nouveau_grobj *fence_grobj;
-+ struct nouveau_notifier *fence_ntfy;
-+};
-+#define nouveau_channel(n) ((struct nouveau_channel_priv *)(n))
-+
-+struct nouveau_fence {
-+ struct nouveau_channel *channel;
-+};
-+
-+struct nouveau_fence_cb {
-+ struct nouveau_fence_cb *next;
-+ void (*func)(void *);
-+ void *priv;
-+};
-+
-+struct nouveau_fence_priv {
-+ struct nouveau_fence base;
-+ int refcount;
-+
-+ struct nouveau_fence *next;
-+ struct nouveau_fence_cb *signal_cb;
-+
-+ uint32_t sequence;
-+ int emitted;
-+ int signalled;
-+};
-+#define nouveau_fence(n) ((struct nouveau_fence_priv *)(n))
-+
-+int
-+nouveau_fence_new(struct nouveau_channel *, struct nouveau_fence **);
-+
-+int
-+nouveau_fence_ref(struct nouveau_fence *, struct nouveau_fence **);
-+
-+int
-+nouveau_fence_signal_cb(struct nouveau_fence *, void (*)(void *), void *);
-+
-+void
-+nouveau_fence_emit(struct nouveau_fence *);
-+
-+int
-+nouveau_fence_wait(struct nouveau_fence **);
-+
-+void
-+nouveau_fence_flush(struct nouveau_channel *);
-+
-+struct nouveau_grobj_priv {
-+ struct nouveau_grobj base;
-+};
-+#define nouveau_grobj(n) ((struct nouveau_grobj_priv *)(n))
-+
-+struct nouveau_notifier_priv {
-+ struct nouveau_notifier base;
-+
-+ struct drm_nouveau_notifierobj_alloc drm;
-+ volatile void *map;
-+};
-+#define nouveau_notifier(n) ((struct nouveau_notifier_priv *)(n))
-+
-+struct nouveau_bo_priv {
-+ struct nouveau_bo base;
-+ int refcount;
-+
-+ /* Buffer configuration + usage hints */
-+ unsigned flags;
-+ unsigned size;
-+ unsigned align;
-+ int user;
-+
-+ /* Tracking */
-+ struct drm_nouveau_gem_pushbuf_bo *pending;
-+ struct nouveau_channel *pending_channel;
-+ int write_marker;
-+
-+ /* Userspace object */
-+ void *sysmem;
-+
-+ /* Kernel object */
-+ uint32_t global_handle;
-+ unsigned handle;
-+ void *map;
-+
-+ /* Last known information from kernel on buffer status */
-+ int pinned;
-+ uint64_t offset;
-+ uint32_t domain;
-+
-+ /*XXX: nomm stuff */
-+ struct nouveau_fence *fence;
-+ struct nouveau_fence *wr_fence;
-+};
-+#define nouveau_bo(n) ((struct nouveau_bo_priv *)(n))
-+
-+int
-+nouveau_bo_init(struct nouveau_device *);
-+
-+void
-+nouveau_bo_takedown(struct nouveau_device *);
-+
-+struct drm_nouveau_gem_pushbuf_bo *
-+nouveau_bo_emit_buffer(struct nouveau_channel *, struct nouveau_bo *);
-+
-+int
-+nouveau_bo_validate_nomm(struct nouveau_bo_priv *, uint32_t);
-+
-+#include "nouveau_dma.h"
-+#endif
diff --git a/x11-libs/libdrm_nouveau/files/libdrm-2.4.6-makefile.patch b/x11-libs/libdrm_nouveau/files/libdrm-2.4.6-makefile.patch
new file mode 100644
index 000000000..61bee916c
--- /dev/null
+++ b/x11-libs/libdrm_nouveau/files/libdrm-2.4.6-makefile.patch
@@ -0,0 +1,22 @@
+From 1faab66cfd1a854925da6ff7109aa614292dea90 Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@linux.ie>
+Date: Mon, 06 Apr 2009 23:26:32 +0000
+Subject: drm: fix test makefile
+
+no idea if this is correct but it works so meh
+---
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index bc99447..e5e9fc4 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -2,6 +2,8 @@ AM_CFLAGS = \
+ -I $(top_srcdir)/shared-core \
+ -I $(top_srcdir)/libdrm
+
++AM_LDFLAGS = $(top_builddir)/libdrm/libdrm.la
++
+ noinst_PROGRAMS = \
+ dristat \
+ drmstat
+--
+cgit v0.8.2
diff --git a/x11-libs/libdrm_nouveau/libdrm_nouveau-2.4.5.ebuild b/x11-libs/libdrm_nouveau/libdrm_nouveau-2.4.6.ebuild
index 02abb2a65..171d5622b 100644
--- a/x11-libs/libdrm_nouveau/libdrm_nouveau-2.4.5.ebuild
+++ b/x11-libs/libdrm_nouveau/libdrm_nouveau-2.4.6.ebuild
@@ -26,7 +26,7 @@ RDEPEND="dev-libs/libpthread-stubs
DEPEND="${RDEPEND}"
S="${WORKDIR}/${DRM_P}"
-PATCHES=( "${FILESDIR}/${DRM_P}-nouveau.patch" )
+PATCHES=( "${FILESDIR}/${DRM_P}-makefile.patch" )
CONFIGURE_OPTIONS="--enable-udev --enable-nouveau-experimental-api"
# FIXME, we should try to see how we can fit the --enable-udev configure flag