recipes-graphics: drm: Update recipes to new BSP release imx_5.4.70_2.3.0

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
This commit is contained in:
Mike Engel 2021-02-01 10:10:24 +01:00
parent e9c4a09bf0
commit bad803d09e
7 changed files with 255 additions and 113 deletions

View File

@ -1,54 +0,0 @@
From 9be904a70e6b7e6b3cc4e1b270bca02d14a4179b Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Mon, 5 Sep 2016 14:41:37 +0300
Subject: [PATCH] configure.ac: Allow explicit enabling of cunit tests
Add --with-cunit to make it easier to do reproducible builds. Default
is still to probe cunit and build opportunistically.
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Upstream-Status: Submitted [mailing list]
---
configure.ac | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1341f51..bef46e0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -168,6 +168,12 @@ AC_ARG_ENABLE(install-test-programs,
[Install test programs (default: no)]),
[INSTALL_TESTS=$enableval], [INSTALL_TESTS=no])
+AC_ARG_WITH([cunit],
+ [AS_HELP_STRING([--with-cunit],
+ [Build tests that use cunit (default: auto)])],
+ [],
+ [with_cunit=auto])
+
dnl ===========================================================================
dnl check compiler flags
AC_DEFUN([LIBDRM_CC_TRY_FLAG], [
@@ -416,7 +422,7 @@ else
AC_DEFINE(HAVE_RADEON, 0)
fi
-if test "x$AMDGPU" != xno; then
+if test "x$with_cunit" != xno -a "x$AMDGPU" != xno; then
# Detect cunit library
PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1], [have_cunit=yes], [have_cunit=no])
# If pkg-config does not find cunit, check it using AC_CHECK_LIB. We
@@ -441,7 +447,11 @@ if test "x$AMDGPU" = xyes; then
AC_DEFINE(HAVE_AMDGPU, 1, [Have amdgpu support])
if test "x$have_cunit" = "xno"; then
- AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests])
+ if test "x$with_cunit" = "xyes"; then
+ AC_MSG_ERROR([Could not find cunit library but --with-cunit was given])
+ elif test "x$with_cunit" = "xauto"; then
+ AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests])
+ fi
fi
else
AC_DEFINE(HAVE_AMDGPU, 0)

View File

@ -0,0 +1,140 @@
From 45f48f8a5de59c04b0510c23853772bc970f411e Mon Sep 17 00:00:00 2001
From: Max Krummenacher <max.krummenacher@toradex.com>
Date: Thu, 9 Jan 2020 01:01:35 +0000
Subject: [PATCH] meson: add libdrm-vivante to the meson meta data
Upstream libdrm added the option to use meason as the buildsystem.
Integrate Vivante into the relevant meson build information.
Upstream-Status: Pending
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
---
meson.build | 14 +++++++++++++
meson_options.txt | 7 +++++++
vivante/meson.build | 50 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 71 insertions(+)
create mode 100644 vivante/meson.build
diff --git a/meson.build b/meson.build
index e292554a..f4740634 100644
--- a/meson.build
+++ b/meson.build
@@ -157,6 +157,15 @@ if _vc4 != 'false'
with_vc4 = _vc4 == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
endif
+with_vivante = false
+_vivante = get_option('vivante')
+if _vivante == 'true'
+ if not with_atomics
+ error('libdrm_vivante requires atomics.')
+ endif
+ with_vivante = true
+endif
+
# XXX: Apparently only freebsd and dragonfly bsd actually need this (and
# gnu/kfreebsd), not openbsd and netbsd
with_libkms = false
@@ -312,6 +321,7 @@ install_headers(
'include/drm/savage_drm.h', 'include/drm/sis_drm.h',
'include/drm/tegra_drm.h', 'include/drm/vc4_drm.h',
'include/drm/via_drm.h', 'include/drm/virtgpu_drm.h',
+ 'include/drm/vivante_drm.h',
subdir : 'libdrm',
)
if with_vmwgfx
@@ -362,6 +372,9 @@ endif
if with_etnaviv
subdir('etnaviv')
endif
+if with_vivante
+ subdir('vivante')
+endif
if with_man_pages
subdir('man')
endif
@@ -382,5 +395,6 @@ message(' EXYNOS API @0@'.format(with_exynos))
message(' Freedreno API @0@ (kgsl: @1@)'.format(with_freedreno, with_freedreno_kgsl))
message(' Tegra API @0@'.format(with_tegra))
message(' VC4 API @0@'.format(with_vc4))
+message(' Vivante API @0@'.format(with_etnaviv))
message(' Etnaviv API @0@'.format(with_etnaviv))
message('')
diff --git a/meson_options.txt b/meson_options.txt
index 8af33f1c..dc69563d 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -95,6 +95,13 @@ option(
choices : ['true', 'false', 'auto'],
description : '''Enable support for vc4's KMS API.''',
)
+option(
+ 'vivante',
+ type : 'combo',
+ value : 'false',
+ choices : ['true', 'false', 'auto'],
+ description : '''Enable support for vivante's propriatary experimental KMS API.''',
+)
option(
'etnaviv',
type : 'combo',
diff --git a/vivante/meson.build b/vivante/meson.build
new file mode 100644
index 00000000..f6adb598
--- /dev/null
+++ b/vivante/meson.build
@@ -0,0 +1,50 @@
+# Copyright © 2017-2018 Intel Corporation
+
+# 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 OR COPYRIGHT HOLDERS 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.
+
+
+libdrm_vivante = shared_library(
+ 'drm_vivante',
+ [
+ files(
+ 'vivante_bo.c',
+ ),
+ config_file
+ ],
+ include_directories : [inc_root, inc_drm],
+ link_with : libdrm,
+ c_args : libdrm_c_args,
+ dependencies : [dep_pthread_stubs, dep_rt, dep_atomic_ops],
+ version : '1.0.0',
+ install : true,
+)
+
+pkg.generate(
+ name : 'libdrm_vivante',
+ libraries : libdrm_vivante,
+ subdirs : ['.', 'libdrm'],
+ version : meson.project_version(),
+ requires_private : 'libdrm',
+ description : 'Userspace interface to Vivante kernel DRM services',
+)
+
+ext_libdrm_vivante = declare_dependency(
+ link_with : [libdrm, libdrm_vivante],
+ include_directories : [inc_drm, include_directories('.')],
+)
--
2.20.1

View File

@ -1,32 +0,0 @@
From 860a227277ab425b0377875adc7ff5bdf3fa206e Mon Sep 17 00:00:00 2001
From: "Maxin B. John" <maxin.john@intel.com>
Date: Fri, 13 Oct 2017 10:52:35 -0500
Subject: [PATCH] drmdevice.c: define _GNU_SOURCE
Include config.h to fix this build error with uclibc:
libdrm-2.4.66/tests/drmdevice.c: In function 'main':
libdrm-2.4.66/tests/drmdevice.c:96:60: error:
'O_CLOEXEC' undeclared (first use in this function)
fd = open(devices[i]->nodes[j],O_RDONLY | O_CLOEXEC, 0);
Upstream-Status: Pending
Signed-off-by: Maxin B. John <maxin.john@intel.com>
---
tests/drmdevice.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/drmdevice.c b/tests/drmdevice.c
index 9dd5098..78fcc39 100644
--- a/tests/drmdevice.c
+++ b/tests/drmdevice.c
@@ -21,6 +21,7 @@
*
*/
+#include <config.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>

View File

@ -1,23 +0,0 @@
From 14e42311309712228588fc9adf612b2ab3f0097f Mon Sep 17 00:00:00 2001
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
Date: Tue, 21 Feb 2017 14:37:52 +0200
Subject: [PATCH] tests: also install test apps
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
tests/Makefile.am | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 0355a92..b4882cd 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -45,3 +45,4 @@ TESTS = \
check_PROGRAMS = \
$(TESTS) \
drmdevice
+bin_PROGRAMS = $(check_PROGRAMS)

View File

@ -0,0 +1,35 @@
Upstream-Status: Submitted
Signed-off-by: Ross Burton <ross.burton@intel.com>
From 46c0fd6c827a8cb4d04e067bf04fab579ac4712e Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@intel.com>
Date: Mon, 18 Jun 2018 15:07:03 +0100
Subject: [PATCH] tests/nouveau/threaded: adapt ioctl signature
POSIX says ioctl() has the signature (int, int, ...) but glibc has decided to
use (int, unsigned long int, ...) instead.
Use a #ifdef to adapt the replacement function as appropriate.
---
tests/nouveau/threaded.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/nouveau/threaded.c b/tests/nouveau/threaded.c
index 3669bcd3..e1c27c01 100644
--- a/tests/nouveau/threaded.c
+++ b/tests/nouveau/threaded.c
@@ -36,7 +36,11 @@ static int failed;
static int import_fd;
+#ifdef __GLIBC__
int ioctl(int fd, unsigned long request, ...)
+#else
+int ioctl(int fd, int request, ...)
+#endif
{
va_list va;
int ret;
--
2.11.0

View File

@ -0,0 +1,9 @@
require libdrm_2.4.99.imx.bb
FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"
LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71"
IMX_LIBDRM_BRANCH = "libdrm-imx-2.4.102"
SRCREV = "f525ae649cd6e81e5d4e459799b0f7a120c4e174"
SRC_URI_remove = "file://musl-ioctl.patch"

View File

@ -1,6 +1,73 @@
require recipes-graphics/drm/libdrm_2.4.91.imx.bb SUMMARY = "Userspace interface to the kernel DRM services"
DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \
stands for \"Direct Rendering Manager\", which is the kernel portion of the \
\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \
accelerated OpenGL drivers."
HOMEPAGE = "http://dri.freedesktop.org"
SECTION = "x11/base"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71" LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71"
IMX_LIBDRM_BRANCH = "libdrm-imx-2.4.99" PROVIDES = "drm"
SRC_URI_remove = "file://installtests.patch" DEPENDS = "libpthread-stubs"
IMX_LIBDRM_SRC ?= "git://source.codeaurora.org/external/imx/libdrm-imx.git;protocol=https;nobranch=1"
IMX_LIBDRM_BRANCH ?= "libdrm-imx-2.4.99"
SRC_URI = "${IMX_LIBDRM_SRC};branch=${IMX_LIBDRM_BRANCH} \
file://musl-ioctl.patch \
file://0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch "
SRCREV = "f421c9c8c4b8fe48d9e6ef43910e98569c94a4b2" SRCREV = "f421c9c8c4b8fe48d9e6ef43910e98569c94a4b2"
S = "${WORKDIR}/git"
DEFAULT_PREFERENCE = "-1"
inherit meson pkgconfig manpages
PACKAGECONFIG ??= "libkms intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv install-test-programs"
PACKAGECONFIG[libkms] = "-Dlibkms=true,-Dlibkms=false"
PACKAGECONFIG[intel] = "-Dintel=true,-Dintel=false,libpciaccess"
PACKAGECONFIG[radeon] = "-Dradeon=true,-Dradeon=false"
PACKAGECONFIG[amdgpu] = "-Damdgpu=true,-Damdgpu=false"
PACKAGECONFIG[nouveau] = "-Dnouveau=true,-Dnouveau=false"
PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=true,-Dvmwgfx=false"
PACKAGECONFIG[omap] = "-Domap=true,-Domap=false"
PACKAGECONFIG[exynos] = "-Dexynos=true,-Dexynos=false"
PACKAGECONFIG[freedreno] = "-Dfreedreno=true,-Dfreedreno=false"
PACKAGECONFIG[tegra] = "-Dtegra=true,-Dtegra=false"
PACKAGECONFIG[vc4] = "-Dvc4=true,-Dvc4=false"
PACKAGECONFIG[etnaviv] = "-Detnaviv=true,-Detnaviv=false"
PACKAGECONFIG[freedreno-kgsl] = "-Dfreedreno-kgsl=true,-Dfreedreno-kgsl=false"
PACKAGECONFIG[valgrind] = "-Dvalgrind=true,-Dvalgrind=false,valgrind"
PACKAGECONFIG[install-test-programs] = "-Dinstall-test-programs=true,-Dinstall-test-programs=false"
PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=true,-Dcairo-tests=false"
PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev"
PACKAGECONFIG[manpages] = "-Dman-pages=true,-Dman-pages=false,libxslt-native xmlto-native"
ALLOW_EMPTY_${PN}-drivers = "1"
PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \
${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu \
${PN}-etnaviv"
RRECOMMENDS_${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \
${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \
${PN}-etnaviv"
FILES_${PN}-tests = "${bindir}/*"
FILES_${PN}-radeon = "${libdir}/libdrm_radeon.so.*"
FILES_${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*"
FILES_${PN}-omap = "${libdir}/libdrm_omap.so.*"
FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*"
FILES_${PN}-exynos = "${libdir}/libdrm_exynos.so.*"
FILES_${PN}-kms = "${libdir}/libkms*.so.*"
FILES_${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*"
FILES_${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.* ${datadir}/${PN}/amdgpu.ids"
FILES_${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*"
BBCLASSEXTEND = "native nativesdk"
PACKAGES_prepend_imxgpu = "${PN}-vivante "
RRECOMMENDS_${PN}-drivers_append_imxgpu = " ${PN}-vivante"
FILES_${PN}-vivante = "${libdir}/libdrm_vivante.so.*"
PACKAGECONFIG_append_imxgpu = " vivante"
PACKAGECONFIG[vivante] = "-Dvivante=true,-Dvivante=false"
PACKAGE_ARCH = "${MACHINE_SOCARCH}"