From 9751b23b2c7275ac5d270d1f316fd446e67d7056 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Thu, 28 Jan 2021 12:33:24 +0100 Subject: libdrm: update to 2.4.102.imx NXP release imx_5.4.70_2.3.0. Drop the explicit PACKAGE_ARCH setting. This is done by fsl-dynamic-packagearch.bbclass. The musl-ioctl.patch has been upstreamed. Related-to: ELB-3327 Signed-off-by: Max Krummenacher --- ...add-libdrm-vivante-to-the-meson-meta-data.patch | 140 +++++++++++++++++++++ .../recipes-graphics/drm/libdrm_2.4.102.imx.bb | 70 +++++++++++ 2 files changed, 210 insertions(+) create mode 100644 backports/recipes-graphics/drm/libdrm/0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch create mode 100644 backports/recipes-graphics/drm/libdrm_2.4.102.imx.bb diff --git a/backports/recipes-graphics/drm/libdrm/0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch b/backports/recipes-graphics/drm/libdrm/0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch new file mode 100644 index 0000000..ae6b0ab --- /dev/null +++ b/backports/recipes-graphics/drm/libdrm/0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch @@ -0,0 +1,140 @@ +From 45f48f8a5de59c04b0510c23853772bc970f411e Mon Sep 17 00:00:00 2001 +From: Max Krummenacher +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 +--- + 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 + diff --git a/backports/recipes-graphics/drm/libdrm_2.4.102.imx.bb b/backports/recipes-graphics/drm/libdrm_2.4.102.imx.bb new file mode 100644 index 0000000..d246757 --- /dev/null +++ b/backports/recipes-graphics/drm/libdrm_2.4.102.imx.bb @@ -0,0 +1,70 @@ +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" +PROVIDES = "drm" +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.102" +SRC_URI = "${IMX_LIBDRM_SRC};branch=${IMX_LIBDRM_BRANCH} \ + file://0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch " +SRCREV = "f525ae649cd6e81e5d4e459799b0f7a120c4e174" +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" -- cgit v1.2.3