summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSui Jingfeng <15330273260@189.cn>2022-01-17 17:36:50 +0800
committerEric Engestrom <eric@engestrom.ch>2022-08-30 16:03:36 +0100
commit33f0009de5534b3e0ad886dfe0414f982644aade (patch)
treef63907db91640735b133c303a3df5aa71cc24e9d
parentd4bb19e2c49de32a01cef56ad739cc10e9afd237 (diff)
downloaddrm-33f0009de5534b3e0ad886dfe0414f982644aade.tar.gz
meson: auto-enable etnaviv on arm, arc, mips and loongarch architectures
There is a Vivante GC1000 gpu in LS2K1000 and LS7A1000. LS7A1000 is a bridge chip made by Loongson corporation which act as north and/or south bridge of loongson's desktop and server level processor. It is equivalent to RS780E or something like that. In fact, the company use RS780E as bridge of LS3A3000 at its early stage, but as RS780E is out of stock long long time ago, the company have to made one by themself. More details can be read from its user manual[1]. This bridge chip typically use with LS3A3000, LS3A4000 and LS3A5000. LS3A3000 is 4 core 1.45gHz mips64r2 compatible cpu. LS3A4000 is 4 core 1.8gHz mips64r5 compatible cpu. LS3A5000 is 4 core 2.5gHz loongarch cpu, the company acclaim that loongarch a new archtecture with its instruction set is released[2]. LS2K1000 is a double core 1.0Ghz mips64r2 compatible SoC[3]. we need to enable it to test and developing driver on above listed archtecture. [1] https://loongson.github.io/LoongArch-Documentation/Loongson-7A1000-usermanual-EN.html [2] https://loongson.github.io/LoongArch-Documentation/Loongson-3A5000-usermanual-EN.html [3] https://wiki.debian.org/InstallingDebianOn/Lemote/Loongson2K1000 Signed-off-by: Sui Jingfeng <15330273260@189.cn> [Eric: rebase over meson changes, add ARM & ARC architectures, and drop "experimental" from the description] Signed-off-by: Eric Engestrom <eric@engestrom.ch>
-rw-r--r--.gitlab-ci.yml2
-rw-r--r--meson.build11
-rw-r--r--meson_options.txt3
3 files changed, 10 insertions, 6 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 27027233..4a3ed214 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -213,7 +213,7 @@ x86_64-freebsd-container_prep:
# the workspace to see details about the failed tests.
- |
set +e
- /app/vmctl exec "pkg info; cd $CI_PROJECT_NAME ; meson build --auto-features=enabled -D nouveau=disabled -D valgrind=disabled && ninja -C build"
+ /app/vmctl exec "pkg info; cd $CI_PROJECT_NAME ; meson build --auto-features=enabled -D etnaviv=disabled -D nouveau=disabled -D valgrind=disabled && ninja -C build"
set -ex
scp -r vm:$CI_PROJECT_NAME/build/meson-logs .
/app/vmctl exec "ninja -C $CI_PROJECT_NAME/build install"
diff --git a/meson.build b/meson.build
index 2b142c68..4249b627 100644
--- a/meson.build
+++ b/meson.build
@@ -165,11 +165,16 @@ summary('Tegra', with_tegra)
with_etnaviv = false
_etnaviv = get_option('etnaviv')
-if _etnaviv.enabled()
- if not with_atomics
+if not _etnaviv.disabled()
+ if _etnaviv.enabled() and not with_atomics
error('libdrm_etnaviv requires atomics.')
endif
- with_etnaviv = true
+ with_etnaviv = _etnaviv.enabled() or (
+ with_atomics and [
+ 'loongarch64', 'mips', 'mips64',
+ 'arm', 'aarch64', 'arc',
+ ].contains(host_machine.cpu_family())
+ )
endif
summary('Etnaviv', with_etnaviv)
diff --git a/meson_options.txt b/meson_options.txt
index caddeff2..e80d79e2 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -74,8 +74,7 @@ option(
option(
'etnaviv',
type : 'feature',
- value : 'disabled',
- description : '''Enable support for etnaviv's experimental KMS API.''',
+ description : '''Enable support for etnaviv's KMS API.''',
)
option(
'cairo-tests',