extra/libdrm to 2.4.90-3

This commit is contained in:
Kevin Mihelich 2018-02-21 13:30:49 +00:00
parent 07efa0859a
commit 19f53a4144
5 changed files with 77 additions and 87 deletions

View file

@ -1,34 +0,0 @@
From 677cd97dc4a930af508388713f5016baf664ed18 Mon Sep 17 00:00:00 2001
From: Rob Herring <robh@kernel.org>
Date: Fri, 21 Oct 2016 10:07:59 -0700
Subject: [PATCH 1/2] Return an -ENODEV from drmGetDevice() when no device was
found.
Fixes crashes in Mesa on platform devices, which expected *device to
have a device when 0 was returned.
(code from a paste by Rob, commit message by anholt)
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
---
xf86drm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/xf86drm.c b/xf86drm.c
index 9cfca49..9b52889 100644
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -3181,6 +3181,8 @@ int drmGetDevice(int fd, drmDevicePtr *device)
closedir(sysdir);
free(local_devices);
+ if (*device == NULL)
+ return -ENODEV;
return 0;
free_devices:
--
2.10.2

View file

@ -1,38 +0,0 @@
From 2d8c01f256011c013edf3a76672d6ce9e2b05d8f Mon Sep 17 00:00:00 2001
From: Eric Anholt <eric@anholt.net>
Date: Fri, 21 Oct 2016 10:09:47 -0700
Subject: [PATCH 2/2] Silence runtime complaints on platform devices
glxgears was spamming this 12 times at startup because of Mesa's
probing of the DRM device code, which doesn't support platform
devices.
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
---
xf86drm.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/xf86drm.c b/xf86drm.c
index 9b52889..52add5e 100644
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -3149,7 +3149,6 @@ int drmGetDevice(int fd, drmDevicePtr *device)
break;
default:
- fprintf(stderr, "The subsystem type is not supported yet\n");
continue;
}
@@ -3259,7 +3258,6 @@ int drmGetDevices(drmDevicePtr devices[], int max_devices)
break;
default:
- fprintf(stderr, "The subsystem type is not supported yet\n");
continue;
}
--
2.10.2

View file

@ -6,22 +6,27 @@
# - drop valgrind makdepend for v5 and v6
pkgname=libdrm
pkgver=2.4.89
pkgrel=1
pkgver=2.4.90
pkgrel=3
pkgdesc="Userspace interface to kernel DRM services"
url="https://dri.freedesktop.org/"
arch=(x86_64)
license=('custom')
depends=('libpciaccess')
makedepends=('xorg-util-macros' 'libxslt' 'docbook-xsl')
makedepends=('valgrind' 'libxslt' 'docbook-xsl' 'meson')
makedepends=('libxslt' 'docbook-xsl' 'meson')
makedepends_armv7h=('valgrind')
makedepends_aarch64=('valgrind')
checkdepends=('cairo')
replaces=('libdrm-new' 'libdrm-nouveau')
url="http://dri.freedesktop.org/"
source=(https://dri.freedesktop.org/$pkgname/$pkgname-$pkgver.tar.bz2{,.sig}
no-drmdevice-test.diff
fix_mistake_in_initial_hole_size_calculation.diff
COPYING)
sha512sums=('380e4e46cd3971a73264bd1b482791fab0503268adb65ac81b674df009662cfb8ef5741e362f19670b2a43b1c46f022d857706c9a4bebed2b1cddaa317b7706d'
sha512sums=('3d32d60c44ffdcb58667d0926e6af8d375332add1f243d8b2d37567aeef4e4b26d786294aeecf46c3dea94fc002fb73756567c457300703acfc21e32ffbd458c'
'SKIP'
'f1dd5d8c2270c092ccb8e4f92a0da9ab27706dfa22dcedd3fb2414b968ced9333c8bf62baf0219b822e43dce0d804d1dd5cc27d09b0afe8c01967c1784d4a4bb'
'679ba7ef4f29cc4d511d5fbb7b505d8eade4cd3fc16eceaed2d1aa47947ebf31bac113ead5f2a1db8f5626ba290e9e1ffeab28c2abb924d0c85efe816c1201f8'
'b0ca349b882a4326b19f81f22804fabdb6fb7aef31cdc7b16b0a7ae191bfbb50c7daddb2fc4e6c33f1136af06d060a273de36f6f3412ea326f16fa4309fda660')
validpgpkeys=('B97BD6A80CAC4981091AE547FE558C72A67013C3') # Maarten Lankhorst <maarten.lankhorst@canonical.com>
validpgpkeys+=('215DEE688925CCB965BE5DA97C03D7797B6E1AE2') # Damien Lespiau <damien.lespiau@intel.com>
@ -36,21 +41,30 @@ validpgpkeys+=('CD47C5341A375F33BEF7BAFAFDD15D5ACEF0F2B1') # Marek Olšák <mara
validpgpkeys+=('A66D805F7C9329B4C5D82767CCC4F07FAC641EFF') # Daniel Stone <daniels@collabora.com>
validpgpkeys+=('CFD0E654BCBE5DD2D030D222CFCC297C6D0A120B') # Lucas Stach <l.stach@pengutronix.de>
build() {
prepare() {
cd $pkgname-$pkgver
[[ "$CARCH" == "armv7h" ]] && CONFIG="--enable-omap-experimental-api --enable-exynos-experimental-api --enable-tegra-experimental-api --enable-etnaviv-experimental-api"
./configure --prefix=/usr --enable-udev $CONFIG
make
# Fix version
sed -i 's/2\.4\.89/2.4.90/' meson.build
# Fails in a container; autotools skipped this one already
patch -Np1 -i ../no-drmdevice-test.diff
# FS#57576; fix amdgpu cards
patch -Np1 -i ../fix_mistake_in_initial_hole_size_calculation.diff
}
build() {
[[ "$CARCH" == "armv7h" ]] && CONFIG="-Domap=true -Dexynos=true -Dtegra=true -Detnaviv=true"
arch-meson $pkgname-$pkgver build -Dudev=true $CONFIG
ninja -C build
}
check() {
cd $pkgname-$pkgver
make -k check
cd build
meson test
}
package() {
cd $pkgname-$pkgver
make DESTDIR="$pkgdir" install
install -m755 -d "$pkgdir/usr/share/licenses/$pkgname"
install -m644 ../COPYING "$pkgdir/usr/share/licenses/$pkgname/"
DESTDIR="$pkgdir" ninja -C build install
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 COPYING
}

View file

@ -0,0 +1,39 @@
From 33a2851ab9bc3cd8a68bedf4cf0fdc549b0f3596 Mon Sep 17 00:00:00 2001
From: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Date: Mon, 19 Feb 2018 02:18:36 -0500
Subject: amdgpu: Fix mistake in initial hole size calculation.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
---
amdgpu/amdgpu_vamgr.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/amdgpu/amdgpu_vamgr.c b/amdgpu/amdgpu_vamgr.c
index 722067f..5840042 100644
--- a/amdgpu/amdgpu_vamgr.c
+++ b/amdgpu/amdgpu_vamgr.c
@@ -57,7 +57,7 @@ drm_private void amdgpu_vamgr_init(struct amdgpu_bo_va_mgr *mgr, uint64_t start,
pthread_mutex_init(&mgr->bo_va_mutex, NULL);
pthread_mutex_lock(&mgr->bo_va_mutex);
n = calloc(1, sizeof(struct amdgpu_bo_va_hole));
- n->size = mgr->va_max;
+ n->size = mgr->va_max - start;
n->offset = start;
list_add(&n->list, &mgr->va_holes);
pthread_mutex_unlock(&mgr->bo_va_mutex);
@@ -80,6 +80,7 @@ amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
struct amdgpu_bo_va_hole *hole, *n;
uint64_t offset = 0, waste = 0;
+
alignment = MAX2(alignment, mgr->va_alignment);
size = ALIGN(size, mgr->va_alignment);
--
cgit v1.1

View file

@ -0,0 +1,9 @@
diff --git i/tests/meson.build w/tests/meson.build
index fdf950b7..a6a2f1f1 100644
--- i/tests/meson.build
+++ w/tests/meson.build
@@ -83,4 +83,3 @@ drmdevice = executable(
test('random', random, timeout : 240)
test('hash', hash)
test('drmsl', drmsl)
-test('drmdevice', drmdevice)