summaryrefslogtreecommitdiffstats
path: root/recipes-graphics/drm
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-graphics/drm')
-rw-r--r--recipes-graphics/drm/libdrm/0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch140
-rw-r--r--recipes-graphics/drm/libdrm_2.4.99.imx.bb7
2 files changed, 145 insertions, 2 deletions
diff --git a/recipes-graphics/drm/libdrm/0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch b/recipes-graphics/drm/libdrm/0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch
new file mode 100644
index 00000000..ae6b0ab7
--- /dev/null
+++ b/recipes-graphics/drm/libdrm/0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch
@@ -0,0 +1,140 @@
1From 45f48f8a5de59c04b0510c23853772bc970f411e Mon Sep 17 00:00:00 2001
2From: Max Krummenacher <max.krummenacher@toradex.com>
3Date: Thu, 9 Jan 2020 01:01:35 +0000
4Subject: [PATCH] meson: add libdrm-vivante to the meson meta data
5
6Upstream libdrm added the option to use meason as the buildsystem.
7Integrate Vivante into the relevant meson build information.
8
9Upstream-Status: Pending
10
11Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
12---
13 meson.build | 14 +++++++++++++
14 meson_options.txt | 7 +++++++
15 vivante/meson.build | 50 +++++++++++++++++++++++++++++++++++++++++++++
16 3 files changed, 71 insertions(+)
17 create mode 100644 vivante/meson.build
18
19diff --git a/meson.build b/meson.build
20index e292554a..f4740634 100644
21--- a/meson.build
22+++ b/meson.build
23@@ -157,6 +157,15 @@ if _vc4 != 'false'
24 with_vc4 = _vc4 == 'true' or ['arm', 'aarch64'].contains(host_machine.cpu_family())
25 endif
26
27+with_vivante = false
28+_vivante = get_option('vivante')
29+if _vivante == 'true'
30+ if not with_atomics
31+ error('libdrm_vivante requires atomics.')
32+ endif
33+ with_vivante = true
34+endif
35+
36 # XXX: Apparently only freebsd and dragonfly bsd actually need this (and
37 # gnu/kfreebsd), not openbsd and netbsd
38 with_libkms = false
39@@ -312,6 +321,7 @@ install_headers(
40 'include/drm/savage_drm.h', 'include/drm/sis_drm.h',
41 'include/drm/tegra_drm.h', 'include/drm/vc4_drm.h',
42 'include/drm/via_drm.h', 'include/drm/virtgpu_drm.h',
43+ 'include/drm/vivante_drm.h',
44 subdir : 'libdrm',
45 )
46 if with_vmwgfx
47@@ -362,6 +372,9 @@ endif
48 if with_etnaviv
49 subdir('etnaviv')
50 endif
51+if with_vivante
52+ subdir('vivante')
53+endif
54 if with_man_pages
55 subdir('man')
56 endif
57@@ -382,5 +395,6 @@ message(' EXYNOS API @0@'.format(with_exynos))
58 message(' Freedreno API @0@ (kgsl: @1@)'.format(with_freedreno, with_freedreno_kgsl))
59 message(' Tegra API @0@'.format(with_tegra))
60 message(' VC4 API @0@'.format(with_vc4))
61+message(' Vivante API @0@'.format(with_etnaviv))
62 message(' Etnaviv API @0@'.format(with_etnaviv))
63 message('')
64diff --git a/meson_options.txt b/meson_options.txt
65index 8af33f1c..dc69563d 100644
66--- a/meson_options.txt
67+++ b/meson_options.txt
68@@ -95,6 +95,13 @@ option(
69 choices : ['true', 'false', 'auto'],
70 description : '''Enable support for vc4's KMS API.''',
71 )
72+option(
73+ 'vivante',
74+ type : 'combo',
75+ value : 'false',
76+ choices : ['true', 'false', 'auto'],
77+ description : '''Enable support for vivante's propriatary experimental KMS API.''',
78+)
79 option(
80 'etnaviv',
81 type : 'combo',
82diff --git a/vivante/meson.build b/vivante/meson.build
83new file mode 100644
84index 00000000..f6adb598
85--- /dev/null
86+++ b/vivante/meson.build
87@@ -0,0 +1,50 @@
88+# Copyright © 2017-2018 Intel Corporation
89+
90+# Permission is hereby granted, free of charge, to any person obtaining a copy
91+# of this software and associated documentation files (the "Software"), to deal
92+# in the Software without restriction, including without limitation the rights
93+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
94+# copies of the Software, and to permit persons to whom the Software is
95+# furnished to do so, subject to the following conditions:
96+
97+# The above copyright notice and this permission notice shall be included in
98+# all copies or substantial portions of the Software.
99+
100+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
101+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
102+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
103+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
104+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
105+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
106+# SOFTWARE.
107+
108+
109+libdrm_vivante = shared_library(
110+ 'drm_vivante',
111+ [
112+ files(
113+ 'vivante_bo.c',
114+ ),
115+ config_file
116+ ],
117+ include_directories : [inc_root, inc_drm],
118+ link_with : libdrm,
119+ c_args : libdrm_c_args,
120+ dependencies : [dep_pthread_stubs, dep_rt, dep_atomic_ops],
121+ version : '1.0.0',
122+ install : true,
123+)
124+
125+pkg.generate(
126+ name : 'libdrm_vivante',
127+ libraries : libdrm_vivante,
128+ subdirs : ['.', 'libdrm'],
129+ version : meson.project_version(),
130+ requires_private : 'libdrm',
131+ description : 'Userspace interface to Vivante kernel DRM services',
132+)
133+
134+ext_libdrm_vivante = declare_dependency(
135+ link_with : [libdrm, libdrm_vivante],
136+ include_directories : [inc_drm, include_directories('.')],
137+)
138--
1392.20.1
140
diff --git a/recipes-graphics/drm/libdrm_2.4.99.imx.bb b/recipes-graphics/drm/libdrm_2.4.99.imx.bb
index fb0d235b..18c1ce5f 100644
--- a/recipes-graphics/drm/libdrm_2.4.99.imx.bb
+++ b/recipes-graphics/drm/libdrm_2.4.99.imx.bb
@@ -13,7 +13,8 @@ DEPENDS = "libpthread-stubs"
13IMX_LIBDRM_SRC ?= "git://source.codeaurora.org/external/imx/libdrm-imx.git;protocol=https;nobranch=1" 13IMX_LIBDRM_SRC ?= "git://source.codeaurora.org/external/imx/libdrm-imx.git;protocol=https;nobranch=1"
14IMX_LIBDRM_BRANCH ?= "libdrm-imx-2.4.99" 14IMX_LIBDRM_BRANCH ?= "libdrm-imx-2.4.99"
15SRC_URI = "${IMX_LIBDRM_SRC};branch=${IMX_LIBDRM_BRANCH} \ 15SRC_URI = "${IMX_LIBDRM_SRC};branch=${IMX_LIBDRM_BRANCH} \
16 file://musl-ioctl.patch" 16 file://musl-ioctl.patch \
17 file://0001-meson-add-libdrm-vivante-to-the-meson-meta-data.patch "
17SRCREV = "5748c8ff40f1ae87487c01e580f145a43542cbda" 18SRCREV = "5748c8ff40f1ae87487c01e580f145a43542cbda"
18S = "${WORKDIR}/git" 19S = "${WORKDIR}/git"
19 20
@@ -63,8 +64,10 @@ FILES_${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*"
63 64
64BBCLASSEXTEND = "native nativesdk" 65BBCLASSEXTEND = "native nativesdk"
65 66
66PACKAGES_append_imxgpu = " ${PN}-vivante" 67PACKAGES_prepend_imxgpu = "${PN}-vivante "
67RRECOMMENDS_${PN}-drivers_append_imxgpu = " ${PN}-vivante" 68RRECOMMENDS_${PN}-drivers_append_imxgpu = " ${PN}-vivante"
68FILES_${PN}-vivante = "${libdir}/libdrm_vivante.so.*" 69FILES_${PN}-vivante = "${libdir}/libdrm_vivante.so.*"
70PACKAGECONFIG_append_imxgpu = " vivante"
71PACKAGECONFIG[vivante] = "-Dvivante=true,-Dvivante=false"
69 72
70PACKAGE_ARCH = "${MACHINE_SOCARCH}" 73PACKAGE_ARCH = "${MACHINE_SOCARCH}"