packages: libdrm/libdrm.spec, libdrm/libdrm-nouveau-abi-0.0.15.patch (NEW), ...
patrys
patrys at pld-linux.org
Mon Aug 3 14:06:48 CEST 2009
Author: patrys Date: Mon Aug 3 12:06:48 2009 GMT
Module: packages Tag: HEAD
---- Log message:
- bump nouveau API to 0.0.15
- gallium is broken and unsupported anyway
---- Files affected:
packages/libdrm:
libdrm.spec (1.28 -> 1.29) , libdrm-nouveau-abi-0.0.15.patch (NONE -> 1.1) (NEW), libdrm-nouveau-revert-to-abi12.patch (1.1 -> NONE) (REMOVED)
---- Diffs:
================================================================
Index: packages/libdrm/libdrm.spec
diff -u packages/libdrm/libdrm.spec:1.28 packages/libdrm/libdrm.spec:1.29
--- packages/libdrm/libdrm.spec:1.28 Sun Jul 26 00:43:41 2009
+++ packages/libdrm/libdrm.spec Mon Aug 3 14:06:43 2009
@@ -3,13 +3,13 @@
Summary(pl.UTF-8): Interfejs przestrzeni użytkownika do usług DRM jądra
Name: libdrm
Version: 2.4.12
-Release: 2
+Release: 3
License: MIT
Group: Libraries
Source0: http://dri.freedesktop.org/libdrm/%{name}-%{version}.tar.bz2
# Source0-md5: 15d26219c046377d5fcb1cb37e7b03a2
Patch0: %{name}-fix.patch
-Patch1: %{name}-nouveau-revert-to-abi12.patch
+Patch1: %{name}-nouveau-abi-0.0.15.patch
URL: http://dri.freedesktop.org/
BuildRequires: autoconf >= 2.57
BuildRequires: automake
@@ -112,6 +112,10 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.29 2009/08/03 12:06:43 patrys
+- bump nouveau API to 0.0.15
+- gallium is broken and unsupported anyway
+
Revision 1.28 2009/07/25 22:43:41 adamg
- revert part of 2.4.12 ( fixes Mesa-7.5 build )
- release 2
================================================================
Index: packages/libdrm/libdrm-nouveau-abi-0.0.15.patch
diff -u /dev/null packages/libdrm/libdrm-nouveau-abi-0.0.15.patch:1.1
--- /dev/null Mon Aug 3 14:06:48 2009
+++ packages/libdrm/libdrm-nouveau-abi-0.0.15.patch Mon Aug 3 14:06:43 2009
@@ -0,0 +1,2630 @@
+diff --git a/libdrm/nouveau/Makefile.am b/libdrm/nouveau/Makefile.am
+index 688eeca..490ce57 100644
+--- a/libdrm/nouveau/Makefile.am
++++ b/libdrm/nouveau/Makefile.am
+@@ -18,9 +18,6 @@ libdrm_nouveau_la_SOURCES = \
+ nouveau_notifier.c \
+ nouveau_bo.c \
+ nouveau_resource.c \
+- nouveau_dma.c \
+- nouveau_fence.c \
+- nouveau_dma.h \
+ nouveau_private.h
+
+ libdrm_nouveaucommonincludedir = ${includedir}/nouveau
+diff --git a/libdrm/nouveau/nouveau_bo.c b/libdrm/nouveau/nouveau_bo.c
+index fea3a7d..520d5d7 100644
+--- a/libdrm/nouveau/nouveau_bo.c
++++ b/libdrm/nouveau/nouveau_bo.c
+@@ -49,7 +49,7 @@ nouveau_bo_info(struct nouveau_bo_priv *nvbo, struct drm_nouveau_gem_info *arg)
+ {
+ nvbo->handle = nvbo->base.handle = arg->handle;
+ nvbo->domain = arg->domain;
+- nvbo->size = nvbo->base.size = arg->size;
++ nvbo->size = arg->size;
+ nvbo->offset = arg->offset;
+ nvbo->map_handle = arg->map_handle;
+ nvbo->base.tile_mode = arg->tile_mode;
+@@ -91,28 +91,6 @@ nouveau_bo_ufree(struct nouveau_bo_priv *nvbo)
+ }
+
+ static void
+-nouveau_bo_kfree_nomm(struct nouveau_bo_priv *nvbo)
+-{
+- struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device);
+- struct drm_nouveau_mem_free req;
+-
+- if (nvbo->map) {
+- drmUnmap(nvbo->map, nvbo->size);
+- nvbo->map = NULL;
+- }
+-
+- req.offset = nvbo->offset;
+- if (nvbo->domain & NOUVEAU_BO_GART)
+- req.flags = NOUVEAU_MEM_AGP | NOUVEAU_MEM_PCI;
+- else
+- if (nvbo->domain & NOUVEAU_BO_VRAM)
+- req.flags = NOUVEAU_MEM_FB;
+- drmCommandWrite(nvdev->fd, DRM_NOUVEAU_MEM_FREE, &req, sizeof(req));
+-
+- nvbo->handle = 0;
+-}
+-
+-static void
+ nouveau_bo_kfree(struct nouveau_bo_priv *nvbo)
+ {
+ struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device);
+@@ -121,11 +99,6 @@ nouveau_bo_kfree(struct nouveau_bo_priv *nvbo)
+ if (!nvbo->handle)
+ return;
+
+- if (!nvdev->mm_enabled) {
+- nouveau_bo_kfree_nomm(nvbo);
+- return;
+- }
+-
+ if (nvbo->map) {
+ munmap(nvbo->map, nvbo->size);
+ nvbo->map = NULL;
+@@ -137,51 +110,6 @@ nouveau_bo_kfree(struct nouveau_bo_priv *nvbo)
+ }
+
+ static int
+-nouveau_bo_kalloc_nomm(struct nouveau_bo_priv *nvbo)
+-{
+- struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device);
+- struct drm_nouveau_mem_alloc req;
+- int ret;
+-
+- if (nvbo->handle)
+- return 0;
+-
+- if (!(nvbo->flags & (NOUVEAU_BO_VRAM|NOUVEAU_BO_GART)))
+- nvbo->flags |= (NOUVEAU_BO_GART | NOUVEAU_BO_VRAM);
+-
+- req.size = nvbo->size;
+- req.alignment = nvbo->align;
+- req.flags = 0;
+- if (nvbo->flags & NOUVEAU_BO_VRAM)
+- req.flags |= NOUVEAU_MEM_FB;
+- if (nvbo->flags & NOUVEAU_BO_GART)
+- req.flags |= (NOUVEAU_MEM_AGP | NOUVEAU_MEM_PCI);
+- if (nvbo->flags & NOUVEAU_BO_TILED) {
+- req.flags |= NOUVEAU_MEM_TILE;
+- if (nvbo->flags & NOUVEAU_BO_ZTILE)
+- req.flags |= NOUVEAU_MEM_TILE_ZETA;
+- }
+- req.flags |= NOUVEAU_MEM_MAPPED;
+-
+- ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_MEM_ALLOC,
+- &req, sizeof(req));
+- if (ret)
+- return ret;
+-
+- nvbo->handle =
+- nvbo->map_handle = req.map_handle;
+- nvbo->size = req.size;
+- nvbo->offset = req.offset;
+- if (req.flags & (NOUVEAU_MEM_AGP | NOUVEAU_MEM_PCI))
+- nvbo->domain = NOUVEAU_BO_GART;
+- else
+- if (req.flags & NOUVEAU_MEM_FB)
+- nvbo->domain = NOUVEAU_BO_VRAM;
+-
+- return 0;
+-}
+-
+-static int
+ nouveau_bo_kalloc(struct nouveau_bo_priv *nvbo, struct nouveau_channel *chan)
+ {
+ struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device);
+@@ -192,9 +120,6 @@ nouveau_bo_kalloc(struct nouveau_bo_priv *nvbo, struct nouveau_channel *chan)
+ if (nvbo->handle || (nvbo->flags & NOUVEAU_BO_PIN))
+ return 0;
+
+- if (!nvdev->mm_enabled)
+- return nouveau_bo_kalloc_nomm(nvbo);
+-
+ req.channel_hint = chan ? chan->id : 0;
+ req.align = nvbo->align;
+
+@@ -227,21 +152,6 @@ nouveau_bo_kalloc(struct nouveau_bo_priv *nvbo, struct nouveau_channel *chan)
+ }
+
+ static int
+-nouveau_bo_kmap_nomm(struct nouveau_bo_priv *nvbo)
+-{
+- struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device);
+- int ret;
+-
+- ret = drmMap(nvdev->fd, nvbo->handle, nvbo->size, &nvbo->map);
+- if (ret) {
+- nvbo->map = NULL;
+- return ret;
+- }
+-
+- return 0;
+-}
+-
+-static int
+ nouveau_bo_kmap(struct nouveau_bo_priv *nvbo)
+ {
+ struct nouveau_device_priv *nvdev = nouveau_device(nvbo->base.device);
+@@ -252,9 +162,6 @@ nouveau_bo_kmap(struct nouveau_bo_priv *nvbo)
+ if (!nvbo->map_handle)
+ return -EINVAL;
+
+- if (!nvdev->mm_enabled)
+- return nouveau_bo_kmap_nomm(nvbo);
+-
+ nvbo->map = mmap(0, nvbo->size, PROT_READ | PROT_WRITE,
+ MAP_SHARED, nvdev->fd, nvbo->map_handle);
+ if (nvbo->map == MAP_FAILED) {
+@@ -328,7 +235,7 @@ nouveau_bo_user(struct nouveau_device *dev, void *ptr, int size,
+ struct nouveau_bo_priv *nvbo;
+ int ret;
+
+- ret = nouveau_bo_new(dev, 0, 0, size, bo);
++ ret = nouveau_bo_new(dev, NOUVEAU_BO_MAP, 0, size, bo);
+ if (ret)
+ return ret;
+ nvbo = nouveau_bo(*bo);
+@@ -339,28 +246,6 @@ nouveau_bo_user(struct nouveau_device *dev, void *ptr, int size,
+ }
+
+ int
+-nouveau_bo_fake(struct nouveau_device *dev, uint64_t offset, uint32_t flags,
+- uint32_t size, void *map, struct nouveau_bo **bo)
+-{
+- struct nouveau_bo_priv *nvbo;
+- int ret;
+-
+- ret = nouveau_bo_new(dev, flags & ~NOUVEAU_BO_PIN, 0, size, bo);
+- if (ret)
+- return ret;
+- nvbo = nouveau_bo(*bo);
+-
+- nvbo->flags = flags | NOUVEAU_BO_PIN;
+- nvbo->domain = (flags & (NOUVEAU_BO_VRAM|NOUVEAU_BO_GART));
+- nvbo->offset = offset;
+- nvbo->size = nvbo->base.size = size;
+- nvbo->map = map;
+- nvbo->base.flags = nvbo->flags;
+- nvbo->base.offset = nvbo->offset;
+- return 0;
+-}
+-
+-int
+ nouveau_bo_wrap(struct nouveau_device *dev, uint32_t handle,
+ struct nouveau_bo **bo)
+ {
+@@ -369,9 +254,6 @@ nouveau_bo_wrap(struct nouveau_device *dev, uint32_t handle,
+ struct nouveau_bo_priv *nvbo;
+ int ret;
+
+- if (!nvdev->mm_enabled)
+- return -ENODEV;
+-
+ ret = nouveau_bo_new(dev, 0, 0, 0, bo);
+ if (ret)
+ return ret;
+@@ -386,6 +268,7 @@ nouveau_bo_wrap(struct nouveau_device *dev, uint32_t handle,
+ }
+
+ nouveau_bo_info(nvbo, &req);
++ nvbo->base.size = nvbo->size;
+ return 0;
+ }
+
+@@ -406,18 +289,14 @@ nouveau_bo_handle_get(struct nouveau_bo *bo, uint32_t *handle)
+ if (ret)
+ 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;
++ 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;
+ }
+
+ *handle = nvbo->global_handle;
+@@ -433,51 +312,25 @@ nouveau_bo_handle_ref(struct nouveau_device *dev, uint32_t handle,
+ struct drm_gem_open req;
+ int ret;
+
+- if (!nvdev->mm_enabled) {
+- ret = nouveau_bo_new(dev, 0, 0, 0, bo);
+- if (ret)
+- return ret;
+- nvbo = nouveau_bo(*bo);
+-
+- nvbo->handle = 0;
+- nvbo->offset = handle;
+- nvbo->domain = NOUVEAU_BO_VRAM;
+- nvbo->flags = NOUVEAU_BO_VRAM | NOUVEAU_BO_PIN;
+- nvbo->base.offset = nvbo->offset;
+- nvbo->base.flags = nvbo->flags;
+- } else {
+- req.name = handle;
+- ret = ioctl(nvdev->fd, DRM_IOCTL_GEM_OPEN, &req);
+- if (ret) {
+- nouveau_bo_ref(NULL, bo);
+- return ret;
+- }
+-
+- ret = nouveau_bo_wrap(dev, req.handle, bo);
+- if (ret) {
+- nouveau_bo_ref(NULL, bo);
+- return ret;
+- }
++ req.name = handle;
++ ret = ioctl(nvdev->fd, DRM_IOCTL_GEM_OPEN, &req);
++ if (ret) {
++ nouveau_bo_ref(NULL, bo);
++ return ret;
++ }
+
+- nvbo = nouveau_bo(*bo);
++ ret = nouveau_bo_wrap(dev, req.handle, bo);
++ if (ret) {
++ nouveau_bo_ref(NULL, bo);
++ return ret;
+ }
+
++ nvbo = nouveau_bo(*bo);
+ nvbo->base.handle = nvbo->handle;
+ return 0;
+ }
+
+ static void
+-nouveau_bo_del_cb(void *priv)
+-{
+- 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);
+-}
+-
+-static void
+ nouveau_bo_del(struct nouveau_bo **bo)
+ {
+ struct nouveau_bo_priv *nvbo;
+@@ -496,18 +349,8 @@ nouveau_bo_del(struct nouveau_bo **bo)
+ }
+
+ nouveau_bo_ufree(nvbo);
+-
+- if (!nouveau_device(nvbo->base.device)->mm_enabled && nvbo->fence) {
+- nouveau_fence_flush(nvbo->fence->channel);
+- if (nouveau_fence(nvbo->fence)->signalled) {
+- nouveau_bo_del_cb(nvbo);
+- } else {
+- nouveau_fence_signal_cb(nvbo->fence,
+- nouveau_bo_del_cb, nvbo);
+- }
+- } else {
+- nouveau_bo_del_cb(nvbo);
+- }
++ nouveau_bo_kfree(nvbo);
++ free(nvbo);
+ }
+
+ int
+@@ -527,24 +370,7 @@ nouveau_bo_ref(struct nouveau_bo *ref, struct nouveau_bo **pbo)
+ }
+
+ static int
+-nouveau_bo_wait_nomm(struct nouveau_bo *bo, int cpu_write)
+-{
+- struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
+- int ret = 0;
+-
+- if (cpu_write)
+- ret = nouveau_fence_wait(&nvbo->fence);
+- else
+- ret = nouveau_fence_wait(&nvbo->wr_fence);
+- if (ret)
+- return ret;
+-
+- nvbo->write_marker = 0;
+- return 0;
+-}
+-
+-static int
+-nouveau_bo_wait(struct nouveau_bo *bo, int cpu_write)
++nouveau_bo_wait(struct nouveau_bo *bo, int cpu_write, int no_wait, int no_block)
+ {
+ struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
+ struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
+@@ -560,10 +386,15 @@ nouveau_bo_wait(struct nouveau_bo *bo, int cpu_write)
+ nouveau_pushbuf_flush(nvbo->pending_channel, 0);
+ }
+
+- if (!nvdev->mm_enabled)
+- return nouveau_bo_wait_nomm(bo, cpu_write);
+-
+ req.handle = nvbo->handle;
++ req.flags = 0;
++ if (cpu_write)
++ req.flags |= NOUVEAU_GEM_CPU_PREP_WRITE;
++ if (no_wait)
++ req.flags |= NOUVEAU_GEM_CPU_PREP_NOWAIT;
++ if (no_block)
++ req.flags |= NOUVEAU_GEM_CPU_PREP_NOBLOCK;
++
+ do {
+ ret = drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GEM_CPU_PREP,
+ &req, sizeof(req));
+@@ -608,7 +439,8 @@ nouveau_bo_map_range(struct nouveau_bo *bo, uint32_t delta, uint32_t size,
+ return ret;
+
+ if (!(flags & NOUVEAU_BO_NOSYNC)) {
+- ret = nouveau_bo_wait(bo, (flags & NOUVEAU_BO_WR));
++ ret = nouveau_bo_wait(bo, (flags & NOUVEAU_BO_WR),
++ (flags & NOUVEAU_BO_NOWAIT), 0);
+ if (ret)
+ return ret;
+ }
+@@ -633,10 +465,9 @@ nouveau_bo_map(struct nouveau_bo *bo, uint32_t flags)
+ void
+ nouveau_bo_unmap(struct nouveau_bo *bo)
+ {
+- struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
+ struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
+
+- if (nvdev->mm_enabled && bo->map && !nvbo->sysmem) {
++ if (bo->map && !nvbo->sysmem) {
+ struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
+ struct drm_nouveau_gem_cpu_fini req;
+
+@@ -649,95 +480,6 @@ nouveau_bo_unmap(struct nouveau_bo *bo)
+ }
+
+ int
+-nouveau_bo_validate_nomm(struct nouveau_bo_priv *nvbo, uint32_t flags)
+-{
+- struct nouveau_bo *new = NULL;
+- uint32_t t_handle, t_domain, t_offset, t_size, t_maph;
+- void *t_map;
+- int ret;
+-
+- if ((flags & NOUVEAU_BO_VRAM) && nvbo->domain == NOUVEAU_BO_VRAM)
+- return 0;
+- if ((flags & NOUVEAU_BO_GART) && nvbo->domain == NOUVEAU_BO_GART)
+- return 0;
+- assert(flags & (NOUVEAU_BO_VRAM|NOUVEAU_BO_GART));
+-
+- /* Keep tiling info */
+- flags |= (nvbo->flags & (NOUVEAU_BO_TILED|NOUVEAU_BO_ZTILE));
+-
+- ret = nouveau_bo_new(nvbo->base.device, flags, 0, nvbo->size, &new);
+- if (ret)
+- return ret;
+-
+- ret = nouveau_bo_kalloc(nouveau_bo(new), NULL);
+- if (ret) {
+- nouveau_bo_ref(NULL, &new);
+- return ret;
+- }
+-
+- if (nvbo->handle || nvbo->sysmem) {
+- nouveau_bo_kmap(nouveau_bo(new));
+-
+- if (!nvbo->base.map) {
+- nouveau_bo_map(&nvbo->base, NOUVEAU_BO_RD);
+- memcpy(nouveau_bo(new)->map, nvbo->base.map, nvbo->base.size);
+- nouveau_bo_unmap(&nvbo->base);
+- } else {
+- memcpy(nouveau_bo(new)->map, nvbo->base.map, nvbo->base.size);
+- }
+- }
+-
+- t_handle = nvbo->handle;
+- t_maph = nvbo->map_handle;
+- t_domain = nvbo->domain;
+- t_offset = nvbo->offset;
+- t_size = nvbo->size;
+- t_map = nvbo->map;
+-
+- nvbo->handle = nouveau_bo(new)->handle;
+- nvbo->map_handle = nouveau_bo(new)->map_handle;
+- nvbo->domain = nouveau_bo(new)->domain;
+- nvbo->offset = nouveau_bo(new)->offset;
+- nvbo->size = nouveau_bo(new)->size;
+- nvbo->map = nouveau_bo(new)->map;
+-
+- nouveau_bo(new)->handle = t_handle;
+- nouveau_bo(new)->map_handle = t_maph;
+- nouveau_bo(new)->domain = t_domain;
+- nouveau_bo(new)->offset = t_offset;
+- nouveau_bo(new)->size = t_size;
+- nouveau_bo(new)->map = t_map;
+-
+- nouveau_bo_ref(NULL, &new);
+-
+- return 0;
+-}
+-
+-static int
+-nouveau_bo_pin_nomm(struct nouveau_bo *bo, uint32_t flags)
+-{
+- struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
+- int ret;
+-
+- if (!nvbo->handle) {
+- if (!(flags & (NOUVEAU_BO_VRAM | NOUVEAU_BO_GART)))
+- return -EINVAL;
+-
+- ret = nouveau_bo_validate_nomm(nvbo, flags & ~NOUVEAU_BO_PIN);
+- if (ret)
+- return ret;
+- }
+-
+- nvbo->pinned = 1;
+-
+- /* Fill in public nouveau_bo members */
+- bo->flags = nvbo->domain;
+- bo->offset = nvbo->offset;
+-
+- return 0;
+-}
+-
+-int
+ nouveau_bo_pin(struct nouveau_bo *bo, uint32_t flags)
+ {
+ struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
+@@ -748,9 +490,6 @@ nouveau_bo_pin(struct nouveau_bo *bo, uint32_t flags)
+ if (nvbo->pinned)
+ return 0;
+
+- if (!nvdev->mm_enabled)
+- return nouveau_bo_pin_nomm(bo, flags);
+-
+ /* Ensure we have a kernel object... */
+ if (!nvbo->flags) {
+ if (!(flags & (NOUVEAU_BO_VRAM | NOUVEAU_BO_GART)))
+@@ -801,80 +540,16 @@ nouveau_bo_unpin(struct nouveau_bo *bo)
+ if (!nvbo->pinned)
+ return;
+
+- if (nvdev->mm_enabled) {
+- req.handle = nvbo->handle;
+- drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GEM_UNPIN,
+- &req, sizeof(req));
+- }
++ req.handle = nvbo->handle;
++ drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GEM_UNPIN, &req, sizeof(req));
+
+ nvbo->pinned = bo->offset = bo->flags = 0;
+ }
+
+ int
+-nouveau_bo_tile(struct nouveau_bo *bo, uint32_t flags, uint32_t delta,
+- uint32_t size)
+-{
+- struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
+- struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
+- uint32_t kern_flags = 0;
+- int ret = 0;
+-
+- if (flags & NOUVEAU_BO_TILED) {
+- kern_flags |= NOUVEAU_MEM_TILE;
+- if (flags & NOUVEAU_BO_ZTILE)
+- kern_flags |= NOUVEAU_MEM_TILE_ZETA;
+- }
+-
+- if (nvdev->mm_enabled) {
+- struct drm_nouveau_gem_tile req;
+-
+- req.handle = nvbo->handle;
+- req.delta = delta;
+- req.size = size;
+- req.flags = kern_flags;
+- ret = drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GEM_TILE,
+- &req, sizeof(req));
+- } else {
+- struct drm_nouveau_mem_tile req;
+-
+- req.offset = nvbo->offset;
+- req.delta = delta;
+- req.size = size;
+- req.flags = kern_flags;
+-
+- if (flags & NOUVEAU_BO_VRAM)
+- req.flags |= NOUVEAU_MEM_FB;
+- if (flags & NOUVEAU_BO_GART)
+- req.flags |= NOUVEAU_MEM_AGP;
+-
+- ret = drmCommandWrite(nvdev->fd, DRM_NOUVEAU_MEM_TILE,
+- &req, sizeof(req));
+- }
+-
+- return 0;
+-}
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/libdrm/libdrm.spec?r1=1.28&r2=1.29&f=u
More information about the pld-cvs-commit
mailing list