From 7f0405ba00271ea043219390355452d40a6c8462 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ch=C3=AD-Thanh=20Christopher=20Nguy=E1=BB=85n?= Date: Fri, 10 Apr 2009 00:15:53 +0000 Subject: [PATCH] x11-libs/libdrm_nouveau: new snapshot svn path=/sunrise/; revision=8248 --- x11-libs/libdrm_nouveau/ChangeLog | 6 + x11-libs/libdrm_nouveau/Manifest | 8 +- .../files/libdrm-2.4.5-nouveau.patch | 379 ------------------ .../files/libdrm-2.4.6-makefile.patch | 22 + ...4.5.ebuild => libdrm_nouveau-2.4.6.ebuild} | 2 +- 5 files changed, 33 insertions(+), 384 deletions(-) delete mode 100644 x11-libs/libdrm_nouveau/files/libdrm-2.4.5-nouveau.patch create mode 100644 x11-libs/libdrm_nouveau/files/libdrm-2.4.6-makefile.patch rename x11-libs/libdrm_nouveau/{libdrm_nouveau-2.4.5.ebuild => libdrm_nouveau-2.4.6.ebuild} (96%) 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) + -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) +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 -+#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 -+#include -+#include -+ -+#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 +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 similarity index 96% rename from x11-libs/libdrm_nouveau/libdrm_nouveau-2.4.5.ebuild rename to 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 -- 2.43.2