summaryrefslogtreecommitdiff
path: root/lib/libdrm/freedreno
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2021-02-11 10:16:48 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2021-02-11 10:16:48 +0000
commit0b432e174bc71dbf28f00abd310370c9ec4b7e9b (patch)
tree69c23fb85801d99698e8c91a29991169bde271fe /lib/libdrm/freedreno
parent2b16e5a05f7e17f1e05b79aeb569521a363e46a9 (diff)
Import libdrm 2.4.104
Diffstat (limited to 'lib/libdrm/freedreno')
-rw-r--r--lib/libdrm/freedreno/freedreno-symbols.txt45
-rw-r--r--lib/libdrm/freedreno/kgsl/README26
-rw-r--r--lib/libdrm/freedreno/meson.build11
3 files changed, 78 insertions, 4 deletions
diff --git a/lib/libdrm/freedreno/freedreno-symbols.txt b/lib/libdrm/freedreno/freedreno-symbols.txt
new file mode 100644
index 000000000..471ca9974
--- /dev/null
+++ b/lib/libdrm/freedreno/freedreno-symbols.txt
@@ -0,0 +1,45 @@
+fd_bo_cpu_fini
+fd_bo_cpu_prep
+fd_bo_del
+fd_bo_dmabuf
+fd_bo_from_dmabuf
+fd_bo_from_fbdev
+fd_bo_from_handle
+fd_bo_from_name
+fd_bo_get_iova
+fd_bo_get_name
+fd_bo_handle
+fd_bo_map
+fd_bo_new
+fd_bo_put_iova
+fd_bo_ref
+fd_bo_size
+fd_device_del
+fd_device_fd
+fd_device_new
+fd_device_new_dup
+fd_device_ref
+fd_device_version
+fd_pipe_del
+fd_pipe_get_param
+fd_pipe_new
+fd_pipe_new2
+fd_pipe_ref
+fd_pipe_wait
+fd_pipe_wait_timeout
+fd_ringbuffer_cmd_count
+fd_ringbuffer_del
+fd_ringbuffer_emit_reloc_ring_full
+fd_ringbuffer_flush
+fd_ringbuffer_grow
+fd_ringbuffer_new
+fd_ringbuffer_new_flags
+fd_ringbuffer_new_object
+fd_ringbuffer_ref
+fd_ringbuffer_reloc
+fd_ringbuffer_reloc2
+fd_ringbuffer_reset
+fd_ringbuffer_set_parent
+fd_ringbuffer_size
+fd_ringbuffer_timestamp
+fd_ringbuffer_flush2
diff --git a/lib/libdrm/freedreno/kgsl/README b/lib/libdrm/freedreno/kgsl/README
new file mode 100644
index 000000000..c46ba08b9
--- /dev/null
+++ b/lib/libdrm/freedreno/kgsl/README
@@ -0,0 +1,26 @@
+This is a historical description of what is now the kgsl backend
+in libdrm freedreno (before the upstream drm/msm driver). Note
+that the kgsl backend requires the "kgsl-drm" shim driver, which
+usually is in disrepair (QCOM does not build it for android), and
+due to random differences between different downstream android
+kernel branches it may or may not work. So YMMV.
+
+Original README:
+----------------
+
+Note that current msm kernel driver is a bit strange. It provides a
+DRM interface for GEM, which is basically sufficient to have DRI2
+working. But it does not provide KMS. And interface to 2d and 3d
+cores is via different other devices (/dev/kgsl-*). This is not
+quite how I'd write a DRM driver, but at this stage it is useful for
+xf86-video-freedreno and fdre (and eventual gallium driver) to be
+able to work on existing kernel driver from QCOM, to allow to
+capture cmdstream dumps from the binary blob drivers without having
+to reboot. So libdrm_freedreno attempts to hide most of the crazy.
+The intention is that when there is a proper kernel driver, it will
+be mostly just changes in libdrm_freedreno to adapt the gallium
+driver and xf86-video-freedreno (ignoring the fbdev->KMS changes).
+
+So don't look at freedreno as an example of how to write a libdrm
+module or a DRM driver.. it is just an attempt to paper over a non-
+standard kernel driver architecture.
diff --git a/lib/libdrm/freedreno/meson.build b/lib/libdrm/freedreno/meson.build
index 5d8d8e9bb..63b84fc94 100644
--- a/lib/libdrm/freedreno/meson.build
+++ b/lib/libdrm/freedreno/meson.build
@@ -70,8 +70,11 @@ pkg.generate(
)
test(
- 'freedreno-symbol-check',
- find_program('freedreno-symbol-check'),
- env : env_test,
- args : libdrm_freedreno,
+ 'freedreno-symbols-check',
+ symbols_check,
+ args : [
+ '--lib', libdrm_freedreno,
+ '--symbols-file', files('freedreno-symbols.txt'),
+ '--nm', prog_nm.path(),
+ ],
)