[arch-commits] Commit in libdrm/trunk (5 files)

Jan de Groot jgc at archlinux.org
Wed Apr 8 05:07:58 EDT 2009


    Date: Wednesday, April 8, 2009 @ 05:07:58
  Author: jgc
Revision: 34222

upgpkg: libdrm 2.4.6-1
    Add license, update to latest upstream version. Remove unneeded patches

Added:
  libdrm/trunk/COPYING
Modified:
  libdrm/trunk/PKGBUILD
Deleted:
  libdrm/trunk/drm-e2d7dfb6.patch
  libdrm/trunk/nouveau_dma.h
  libdrm/trunk/nouveau_private.h

--------------------+
 COPYING            |   48 ++++++
 PKGBUILD           |   20 +-
 drm-e2d7dfb6.patch |  401 ---------------------------------------------------
 nouveau_dma.h      |  154 -------------------
 nouveau_private.h  |  203 -------------------------
 5 files changed, 56 insertions(+), 770 deletions(-)

Added: COPYING
===================================================================
--- COPYING	                        (rev 0)
+++ COPYING	2009-04-08 09:07:58 UTC (rev 34222)
@@ -0,0 +1,48 @@
+ Copyright 2005 Adam Jackson.
+
+ 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 on the rights to use, copy, modify, merge,
+ publish, distribute, sub license, 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 (including the
+ next paragraph) 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
+ NON-INFRINGEMENT.  IN NO EVENT SHALL ADAM JACKSON 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.
+
+------------------------------------------------------------------------
+
+ Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ All Rights Reserved.
+
+ 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 (including the
+ next paragraph) 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 PRECISION INSIGHT AND/OR ITS
+ SUPPLIERS 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.

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2009-04-08 08:13:04 UTC (rev 34221)
+++ PKGBUILD	2009-04-08 09:07:58 UTC (rev 34222)
@@ -2,30 +2,24 @@
 # Maintainer: Jan de Groot <jgc at archlinux.org>
 
 pkgname=libdrm
-pkgver=2.4.5
-pkgrel=3
+pkgver=2.4.6
+pkgrel=1
 pkgdesc="Userspace interface to kernel DRM services"
 arch=(i686 x86_64)
+license=('custom')
 depends=('glibc')
 options=('!libtool' 'force')
 url="http://dri.freedesktop.org/"
 source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
 	no-pthread-stubs.patch
-	nouveau_private.h
-	nouveau_dma.h
-	drm-e2d7dfb6.patch)
-md5sums=('0d09025f069ff1a986cf3339e51908b3'
+	COPYING)
+md5sums=('77fb9621fbcc7a75599b656065c232a6'
          'e5f8f3b9f6357c2f82950cdfb8e9c9ec'
-         '0cb6d0d40b4031604a9063f6e384b548'
-	 'a9c94dcf9625fa99862f695a744258e8'
-	 '2921adb7079226c7bc2a3b9863dabcbc')
+	 'ba65e71c481b94ef0fb6c23c7f21ffa1')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  cp "${srcdir}/nouveau_private.h" "${srcdir}/nouveau_dma.h" \
-    libdrm/nouveau/ || return 1
   patch -Np1 -i "${srcdir}/no-pthread-stubs.patch" || return 1
-  patch -Np1 -i "${srcdir}/drm-e2d7dfb6.patch" || return 1
   libtoolize --force || return 1
   aclocal || return 1
   autoconf || return 1
@@ -33,4 +27,6 @@
   ./configure --prefix=/usr --enable-nouveau-experimental-api || return 1
   make || return 1
   make DESTDIR="${pkgdir}" install || return 1
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 "${srcdir}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
 }

Deleted: drm-e2d7dfb6.patch
===================================================================
--- drm-e2d7dfb6.patch	2009-04-08 08:13:04 UTC (rev 34221)
+++ drm-e2d7dfb6.patch	2009-04-08 09:07:58 UTC (rev 34222)
@@ -1,401 +0,0 @@
-diff -ruN drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/intel/intel_bufmgr.h drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/intel/intel_bufmgr.h
---- drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/intel/intel_bufmgr.h	2009-02-23 21:30:44.000000000 +0000
-+++ drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/intel/intel_bufmgr.h	2009-03-26 23:43:00.000000000 +0000
-@@ -115,6 +115,7 @@
- 						unsigned int handle);
- void drm_intel_bufmgr_gem_enable_reuse(drm_intel_bufmgr *bufmgr);
- int drm_intel_gem_bo_map_gtt(drm_intel_bo *bo);
-+int drm_intel_gem_bo_unmap_gtt(drm_intel_bo *bo);
- void drm_intel_gem_bo_start_gtt_access(drm_intel_bo *bo, int write_enable);
- 
- /* drm_intel_bufmgr_fake.c */
-diff -ruN drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/intel/intel_bufmgr_fake.c drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/intel/intel_bufmgr_fake.c
---- drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/intel/intel_bufmgr_fake.c	2009-02-23 21:30:44.000000000 +0000
-+++ drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/intel/intel_bufmgr_fake.c	2009-03-26 23:43:00.000000000 +0000
-@@ -444,7 +444,8 @@
- 
- /* Release the card storage associated with buf:
-  */
--static void free_block(drm_intel_bufmgr_fake *bufmgr_fake, struct block *block)
-+static void free_block(drm_intel_bufmgr_fake *bufmgr_fake, struct block *block,
-+		       int skip_dirty_copy)
- {
-    drm_intel_bo_fake *bo_fake;
-    DBG("free block %p %08x %d %d\n", block, block->mem->ofs, block->on_hardware, block->fenced);
-@@ -453,7 +454,11 @@
-       return;
- 
-    bo_fake = (drm_intel_bo_fake *)block->bo;
--   if (!(bo_fake->flags & (BM_PINNED | BM_NO_BACKING_STORE)) && (bo_fake->card_dirty == 1)) {
-+
-+   if (bo_fake->flags & (BM_PINNED | BM_NO_BACKING_STORE))
-+      skip_dirty_copy = 1;
-+
-+   if (!skip_dirty_copy && (bo_fake->card_dirty == 1)) {
-      memcpy(bo_fake->backing_store, block->virtual, block->bo->size);
-      bo_fake->card_dirty = 0;
-      bo_fake->dirty = 1;
-@@ -534,7 +539,7 @@
-       set_dirty(&bo_fake->bo);
-       bo_fake->block = NULL;
- 
--      free_block(bufmgr_fake, block);
-+      free_block(bufmgr_fake, block, 0);
-       return 1;
-    }
- 
-@@ -557,7 +562,7 @@
-       set_dirty(&bo_fake->bo);
-       bo_fake->block = NULL;
- 
--      free_block(bufmgr_fake, block);
-+      free_block(bufmgr_fake, block, 0);
-       return 1;
-    }
- 
-@@ -872,7 +877,7 @@
-       assert(bo_fake->map_count == 0);
-       /* No remaining references, so free it */
-       if (bo_fake->block)
--	 free_block(bufmgr_fake, bo_fake->block);
-+	 free_block(bufmgr_fake, bo_fake->block, 1);
-       free_backing_store(bo);
- 
-       for (i = 0; i < bo_fake->nr_relocs; i++)
-@@ -1064,7 +1069,7 @@
-       drm_intel_bo_fake *bo_fake = (drm_intel_bo_fake *)block->bo;
- 
-       block->on_hardware = 0;
--      free_block(bufmgr_fake, block);
-+      free_block(bufmgr_fake, block, 0);
-       bo_fake->block = NULL;
-       bo_fake->validated = 0;
-       if (!(bo_fake->flags & BM_NO_BACKING_STORE))
-@@ -1463,7 +1468,7 @@
- 
-    DRMLISTFOREACHSAFE(block, tmp, &bufmgr_fake->lru) {
-       /* Releases the memory, and memcpys dirty contents out if necessary. */
--      free_block(bufmgr_fake, block);
-+      free_block(bufmgr_fake, block, 0);
-    }
- 
-    pthread_mutex_unlock(&bufmgr_fake->lock);
-diff -ruN drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/intel/intel_bufmgr_gem.c drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/intel/intel_bufmgr_gem.c
---- drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/intel/intel_bufmgr_gem.c	2009-02-23 21:30:44.000000000 +0000
-+++ drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/intel/intel_bufmgr_gem.c	2009-03-26 23:43:00.000000000 +0000
-@@ -145,7 +145,9 @@
-     /** Number of entries in relocs */
-     int reloc_count;
-     /** Mapped address for the buffer, saved across map/unmap cycles */
--    void *virtual;
-+    void *mem_virtual;
-+    /** GTT virtual address for the buffer, saved across map/unmap cycles */
-+    void *gtt_virtual;
- 
-     /** BO cache list */
-     drmMMListHead head;
-@@ -524,8 +526,10 @@
-     struct drm_gem_close close;
-     int ret;
- 
--    if (bo_gem->virtual)
--	munmap (bo_gem->virtual, bo_gem->bo.size);
-+    if (bo_gem->mem_virtual)
-+	munmap (bo_gem->mem_virtual, bo_gem->bo.size);
-+    if (bo_gem->gtt_virtual)
-+	munmap (bo_gem->gtt_virtual, bo_gem->bo.size);
- 
-     /* Close this object */
-     memset(&close, 0, sizeof(close));
-@@ -609,7 +613,7 @@
-     /* Allow recursive mapping. Mesa may recursively map buffers with
-      * nested display loops.
-      */
--    if (!bo_gem->virtual) {
-+    if (!bo_gem->mem_virtual) {
- 	struct drm_i915_gem_mmap mmap_arg;
- 
- 	DBG("bo_map: %d (%s)\n", bo_gem->gem_handle, bo_gem->name);
-@@ -626,12 +630,12 @@
- 	    pthread_mutex_unlock(&bufmgr_gem->lock);
- 	    return ret;
- 	}
--	bo_gem->virtual = (void *)(uintptr_t)mmap_arg.addr_ptr;
-+	bo_gem->mem_virtual = (void *)(uintptr_t)mmap_arg.addr_ptr;
- 	bo_gem->swrast = 0;
-     }
-     DBG("bo_map: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name,
--	bo_gem->virtual);
--    bo->virtual = bo_gem->virtual;
-+	bo_gem->mem_virtual);
-+    bo->virtual = bo_gem->mem_virtual;
- 
-     if (bo_gem->global_name != 0 || !bo_gem->swrast) {
- 	set_domain.handle = bo_gem->gem_handle;
-@@ -669,7 +673,7 @@
-     pthread_mutex_lock(&bufmgr_gem->lock);
- 
-     /* Get a mapping of the buffer if we haven't before. */
--    if (bo_gem->virtual == NULL) {
-+    if (bo_gem->gtt_virtual == NULL) {
- 	struct drm_i915_gem_mmap_gtt mmap_arg;
- 
- 	DBG("bo_map_gtt: %d (%s)\n", bo_gem->gem_handle, bo_gem->name);
-@@ -690,10 +694,10 @@
- 	}
- 
- 	/* and mmap it */
--	bo_gem->virtual = mmap(0, bo->size, PROT_READ | PROT_WRITE,
--			       MAP_SHARED, bufmgr_gem->fd,
--			       mmap_arg.offset);
--	if (bo_gem->virtual == MAP_FAILED) {
-+	bo_gem->gtt_virtual = mmap(0, bo->size, PROT_READ | PROT_WRITE,
-+				   MAP_SHARED, bufmgr_gem->fd,
-+				   mmap_arg.offset);
-+	if (bo_gem->gtt_virtual == MAP_FAILED) {
- 	    fprintf(stderr,
- 		    "%s:%d: Error mapping buffer %d (%s): %s .\n",
- 		    __FILE__, __LINE__,
-@@ -704,10 +708,10 @@
- 	}
-     }
- 
--    bo->virtual = bo_gem->virtual;
-+    bo->virtual = bo_gem->gtt_virtual;
- 
-     DBG("bo_map: %d (%s) -> %p\n", bo_gem->gem_handle, bo_gem->name,
--	bo_gem->virtual);
-+	bo_gem->gtt_virtual);
- 
-     /* Now move it to the GTT domain so that the CPU caches are flushed */
-     set_domain.handle = bo_gem->gem_handle;
-@@ -719,7 +723,7 @@
-     } while (ret == -1 && errno == EINTR);
- 
-     if (ret != 0) {
--	    fprintf (stderr, "%s:%d: Error setting swrast %d: %s\n",
-+	    fprintf (stderr, "%s:%d: Error setting domain %d: %s\n",
- 		     __FILE__, __LINE__, bo_gem->gem_handle, strerror (errno));
-     }
- 
-@@ -728,6 +732,26 @@
-     return 0;
- }
- 
-+int
-+drm_intel_gem_bo_unmap_gtt(drm_intel_bo *bo)
-+{
-+    drm_intel_bufmgr_gem *bufmgr_gem = (drm_intel_bufmgr_gem *)bo->bufmgr;
-+    drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo;
-+    struct drm_i915_gem_sw_finish sw_finish;
-+    int ret = 0;
-+
-+    if (bo == NULL)
-+	return 0;
-+
-+    assert(bo_gem->gtt_virtual != NULL);
-+
-+    pthread_mutex_lock(&bufmgr_gem->lock);
-+    bo->virtual = NULL;
-+    pthread_mutex_unlock(&bufmgr_gem->lock);
-+
-+    return ret;
-+}
-+
- static int
- drm_intel_gem_bo_unmap(drm_intel_bo *bo)
- {
-@@ -739,7 +763,7 @@
-     if (bo == NULL)
- 	return 0;
- 
--    assert(bo_gem->virtual != NULL);
-+    assert(bo_gem->mem_virtual != NULL);
- 
-     pthread_mutex_lock(&bufmgr_gem->lock);
-     if (bo_gem->swrast) {
-@@ -750,6 +774,7 @@
- 	} while (ret == -1 && errno == EINTR);
- 	bo_gem->swrast = 0;
-     }
-+    bo->virtual = NULL;
-     pthread_mutex_unlock(&bufmgr_gem->lock);
-     return 0;
- }
-@@ -1260,8 +1285,21 @@
-     int i;
-     unsigned int total = 0;
- 
--    for (i = 0; i < count; i++)
-+    for (i = 0; i < count; i++) {
- 	total += drm_intel_gem_bo_get_aperture_space(bo_array[i]);
-+	/* For the first buffer object in the array, we get an accurate count
-+	 * back for its reloc_tree size (since nothing had been flagged as
-+	 * being counted yet).  We can save that value out as a more
-+	 * conservative reloc_tree_size that avoids double-counting target
-+	 * buffers.  Since the first buffer happens to usually be the batch
-+	 * buffer in our callers, this can pull us back from doing the tree
-+	 * walk on every new batch emit.
-+	 */
-+	if (i == 0) {
-+	    drm_intel_bo_gem *bo_gem = (drm_intel_bo_gem *)bo_array[i];
-+	    bo_gem->reloc_tree_size = total;
-+	}
-+    }
- 
-     for (i = 0; i < count; i++)
- 	drm_intel_gem_bo_clear_aperture_space_flag(bo_array[i]);
-diff -ruN drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/Makefile.am drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/Makefile.am
---- drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/Makefile.am	2009-02-23 21:30:44.000000000 +0000
-+++ drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/Makefile.am	2009-03-26 23:43:00.000000000 +0000
-@@ -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 -ruN drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/nouveau_bo.c drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/nouveau_bo.c
---- drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/nouveau_bo.c	2009-02-23 21:30:44.000000000 +0000
-+++ drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/nouveau_bo.c	2009-03-26 23:43:00.000000000 +0000
-@@ -347,24 +347,25 @@
- 	if (!bo || !handle)
- 		return -EINVAL;
- 
--	if (!nvdev->mm_enabled)
--		return -ENODEV;
--
- 	if (!nvbo->global_handle) {
- 		struct drm_gem_flink req;
-  
- 		ret = nouveau_bo_kalloc(nvbo, NULL);
- 		if (ret)
- 			return ret;
-- 
--		req.handle = nvbo->handle;
--		ret = ioctl(nvdev->fd, DRM_IOCTL_GEM_FLINK, &req);
--		if (ret) {
--			nouveau_bo_kfree(nvbo);
--			return ret;
-+
-+		if (nvdev->mm_enabled) {
-+			req.handle = nvbo->handle;
-+			ret = ioctl(nvdev->fd, DRM_IOCTL_GEM_FLINK, &req);
-+			if (ret) {
-+				nouveau_bo_kfree(nvbo);
-+				return ret;
-+			}
-+	 
-+			nvbo->global_handle = req.name;
-+		} else {
-+			nvbo->global_handle = nvbo->offset;
- 		}
-- 
--		nvbo->global_handle = req.name;
- 	}
-  
- 	*handle = nvbo->global_handle;
-@@ -412,6 +413,8 @@
- {
- 	struct nouveau_bo_priv *nvbo = priv;
- 
-+	nouveau_fence_ref(NULL, &nvbo->fence);
-+	nouveau_fence_ref(NULL, &nvbo->wr_fence);
- 	nouveau_bo_kfree(nvbo);
- 	free(nvbo);
- }
-diff -ruN drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/nouveau_device.c drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/nouveau_device.c
---- drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/nouveau_device.c	2009-02-23 21:30:44.000000000 +0000
-+++ drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/nouveau_device.c	2009-03-26 23:43:00.000000000 +0000
-@@ -76,6 +76,22 @@
- 	}
- 	nvdev->base.vm_vram_base = value;
- 
-+	ret = nouveau_device_get_param(&nvdev->base,
-+				       NOUVEAU_GETPARAM_FB_SIZE, &value);
-+	if (ret) {
-+		nouveau_device_close((void *)&nvdev);
-+		return ret;
-+	}
-+	nvdev->vram_aper_size = value;
-+
-+	ret = nouveau_device_get_param(&nvdev->base,
-+				       NOUVEAU_GETPARAM_AGP_SIZE, &value);
-+	if (ret) {
-+		nouveau_device_close((void *)&nvdev);
-+		return ret;
-+	}
-+	nvdev->gart_aper_size = value;
-+
- 	ret = nouveau_bo_init(&nvdev->base);
- 	if (ret) {
- 		nouveau_device_close((void *)&nvdev);
-@@ -128,7 +144,7 @@
- {
- 	struct nouveau_device_priv *nvdev;
- 
--	if (dev || !*dev)
-+	if (!dev || !*dev)
- 		return;
- 	nvdev = nouveau_device(*dev);
- 	*dev = NULL;
-diff -ruN drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/nouveau_drmif.h drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/nouveau_drmif.h
---- drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/nouveau_drmif.h	2009-02-23 21:30:44.000000000 +0000
-+++ drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/nouveau_drmif.h	2009-03-26 23:43:00.000000000 +0000
-@@ -37,6 +37,9 @@
- 	int needs_close;
- 
- 	int mm_enabled;
-+/*XXX: move to nouveau_device when interface gets bumped */
-+	uint64_t vram_aper_size;
-+	uint64_t gart_aper_size;
- };
- #define nouveau_device(n) ((struct nouveau_device_priv *)(n))
- 
-diff -ruN drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/nouveau_fence.c drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/nouveau_fence.c
---- drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/nouveau_fence.c	2009-02-23 21:30:44.000000000 +0000
-+++ drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/nouveau_fence.c	2009-03-26 23:43:00.000000000 +0000
-@@ -96,22 +96,16 @@
- int
- nouveau_fence_ref(struct nouveau_fence *ref, struct nouveau_fence **fence)
- {
--	struct nouveau_fence_priv *nvfence;
--
- 	if (!fence)
- 		return -EINVAL;
- 
--	if (*fence) {
--		nouveau_fence_del(fence);
--		*fence = NULL;
--	}
-+	if (ref)
-+		nouveau_fence(ref)->refcount++;
- 
--	if (ref) {
--		nvfence = nouveau_fence(ref);
--		nvfence->refcount++;	
--		*fence = &nvfence->base;
--	}
-+	if (*fence)
-+		nouveau_fence_del(fence);
- 
-+	*fence = ref;
- 	return 0;
- }
- 
-diff -ruN drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/nouveau_private.h drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/nouveau_private.h
---- drm-a773ce1db8801fcbbdb55b54172c9cd48b92e2d7/libdrm/nouveau/nouveau_private.h	2009-02-23 21:30:44.000000000 +0000
-+++ drm-e2d7dfb61ad7a97367f050150160c205614d152e/libdrm/nouveau/nouveau_private.h	2009-03-26 23:43:00.000000000 +0000
-@@ -173,7 +173,7 @@
- 
- 	/* Kernel object */
- 	uint32_t global_handle;
--	unsigned handle;
-+	drm_handle_t handle;
- 	void *map;
- 
- 	/* Last known information from kernel on buffer status */

Deleted: nouveau_dma.h
===================================================================
--- nouveau_dma.h	2009-04-08 08:13:04 UTC (rev 34221)
+++ nouveau_dma.h	2009-04-08 09:07:58 UTC (rev 34222)
@@ -1,154 +0,0 @@
-/*
- * 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

Deleted: nouveau_private.h
===================================================================
--- nouveau_private.h	2009-04-08 08:13:04 UTC (rev 34221)
+++ nouveau_private.h	2009-04-08 09:07:58 UTC (rev 34222)
@@ -1,203 +0,0 @@
-/*
- * 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



More information about the arch-commits mailing list