platform/upstream/libdrm.git
20 months agoinclude/drm/drm_fourcc.h: Update from Linux v6.0-rc7
Jordan Justen [Wed, 28 Sep 2022 23:46:20 +0000 (16:46 -0700)]
include/drm/drm_fourcc.h: Update from Linux v6.0-rc7

Generated from the Linux v6.0-rc7 tag with a sha1 of
f76349cf41451c5c42a99f18a9163377e4b364ff.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
20 months agomeson: fast-fail on unsupported OSes
Eli Schwartz [Sun, 11 Sep 2022 05:09:17 +0000 (01:09 -0400)]
meson: fast-fail on unsupported OSes

It's not worth even attempting to configure anything on OSes where there
is no DRM to have a userspace library for.

This failure message can be useful in e.g. the case where libdrm is an
optional wrap fallback in another project.

Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
21 months agobuild: bump to version 2.4.113 libdrm-2.4.113
Simon Ser [Wed, 31 Aug 2022 14:38:38 +0000 (16:38 +0200)]
build: bump to version 2.4.113

Signed-off-by: Simon Ser <contact@emersion.fr>
21 months agotests/modetest: use drmGetFormatName()
Simon Ser [Sun, 21 Aug 2022 12:18:28 +0000 (14:18 +0200)]
tests/modetest: use drmGetFormatName()

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Marius Vlad <marius.vlad@collabora.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
21 months agoxf86drm: add drmGetFormatName()
Simon Ser [Sun, 21 Aug 2022 12:17:35 +0000 (14:17 +0200)]
xf86drm: add drmGetFormatName()

Same as drmGetFormatModifierName() but for formats.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Marius Vlad <marius.vlad@collabora.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
21 months agointel: Hook up new platforms IDs
Matt Roper [Fri, 26 Aug 2022 23:26:33 +0000 (16:26 -0700)]
intel: Hook up new platforms IDs

In commit 98794e2a0d ("lib: sync i915_pciids.h with kernel") we
resynchronized the PCI header with the kernel to bring in the
definitions for several new platforms.  But before those IDs will be
recognized, we still need to hook them up in the libdrm chipset code as
well.

References: https://gitlab.freedesktop.org/drm/intel/-/issues/5416
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
21 months agomeson: auto-enable etnaviv on arm, arc, mips and loongarch architectures
Sui Jingfeng [Mon, 17 Jan 2022 09:36:50 +0000 (17:36 +0800)]
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>
21 months agointel: Avoid aliasing violation
Matt Turner [Tue, 23 Aug 2022 01:36:52 +0000 (21:36 -0400)]
intel: Avoid aliasing violation

../intel/test_decode.c: In function ‘compare_batch’:
../intel/test_decode.c:109:39: error: dereferencing type-punned pointer might break strict-aliasing rules [-Werror=strict-aliasing]
  109 |         out = open_memstream((char **)&ptr, &size);
      |                                       ^~~~
cc1: some warnings being treated as errors

The fix is simple: just declare `ptr` as a `char *` to begin with.

21 months agoatomic: fix atomic_add_unless() fallback's return value
Eric Engestrom [Wed, 15 Mar 2017 23:27:25 +0000 (23:27 +0000)]
atomic: fix atomic_add_unless() fallback's return value

According to the kernel documentation:
  Returns non-zero if @v was not @u, and zero otherwise.

Fixes: 63fc571863aa64683400 ("atomic: add atomic_add_unless()")
Closes: https://gitlab.freedesktop.org/mesa/drm/issues/17
Signed-off-by: David Shao <davshao@gmail.com>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
[Eric: fix its callers to maintain current behaviour]
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
21 months agoRemove unused 3rd parameter to open(2)
Matthieu Herrb [Tue, 26 Oct 2021 17:00:22 +0000 (19:00 +0200)]
Remove unused 3rd parameter to open(2)

The 3rd parameter is only used with the O_CREAT flag

Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
21 months agomeson: simplify some more build options by using features
Eric Engestrom [Mon, 22 Aug 2022 16:10:16 +0000 (17:10 +0100)]
meson: simplify some more build options by using features

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Simon Ser <contact@emersion.fr>
21 months agomeson: convert auto combos into proper features
Eric Engestrom [Mon, 22 Aug 2022 16:04:52 +0000 (17:04 +0100)]
meson: convert auto combos into proper features

Allows users to easily enable everything (eg. packagers), or select just
the drivers they want with something like:
    -D auto-features=disabled -D amdgpu=enabled

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Simon Ser <contact@emersion.fr>
21 months agoci: drop dead script since e722ba9f67
Eric Engestrom [Tue, 23 Aug 2022 16:51:34 +0000 (17:51 +0100)]
ci: drop dead script since e722ba9f67

Noticed-by: Michel Daenzer <michel@daenzer.net>
21 months agomeson: fix value of `auto` for a bunch of drivers
Eric Engestrom [Mon, 22 Aug 2022 19:20:40 +0000 (20:20 +0100)]
meson: fix value of `auto` for a bunch of drivers

You can't have an error if your driver is requested by you're missing
a dep, but then happily build that driver without the dep in `auto`.

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
21 months agoci: bump images tags to take !255 into effect
Eric Engestrom [Mon, 22 Aug 2022 17:16:46 +0000 (18:16 +0100)]
ci: bump images tags to take !255 into effect

Reviewed-by: Simon Ser <contact@emersion.fr>
21 months agoci/freedesktop: bump python version of docutils package as 3.8 no longer exists
Eric Engestrom [Mon, 22 Aug 2022 17:22:46 +0000 (18:22 +0100)]
ci/freedesktop: bump python version of docutils package as 3.8 no longer exists

21 months agoci: fix the tested meson version
Eric Engestrom [Mon, 22 Aug 2022 16:41:18 +0000 (17:41 +0100)]
ci: fix the tested meson version
Reviewed-by: Simon Ser <contact@emersion.fr>
21 months agoci: remove system meson before installing the pip one
Eric Engestrom [Mon, 22 Aug 2022 16:40:09 +0000 (17:40 +0100)]
ci: remove system meson before installing the pip one
Reviewed-by: Simon Ser <contact@emersion.fr>
21 months agobuild: make tests optional
Simon Zeni [Thu, 28 Jul 2022 10:18:33 +0000 (06:18 -0400)]
build: make tests optional

Building the project as a meson subproject, meson inherits the warning level
from the parent project. Making the tests optional bypasses that issue and
reduces build time.

Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
Reviewed-by: Simon Ser <contact@emersion.fr>
21 months agotests/amdgpu: add sdma slow copy linear hang test
Likun Gao [Wed, 13 Jul 2022 05:43:51 +0000 (13:43 +0800)]
tests/amdgpu: add sdma slow copy linear hang test

Issue slow copy linear for sdma to trigger SDMA hang test.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
21 months agotests/amdgpu: add sdma corrupted header hang test
Likun Gao [Wed, 13 Jul 2022 02:28:20 +0000 (10:28 +0800)]
tests/amdgpu: add sdma corrupted header hang test

Issue corrupted header for sdma to trigger SDMA hang test.

Signed-off-by: Likun Gao <Likun.Gao@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
21 months agotests/amdgpu: add dispatch/draw test for gfx11
Flora Cui [Thu, 7 Jul 2022 13:01:56 +0000 (21:01 +0800)]
tests/amdgpu: add dispatch/draw test for gfx11

Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
21 months agotests/amdgpu: refactor dispatch/draw test
Flora Cui [Thu, 7 Jul 2022 12:48:19 +0000 (20:48 +0800)]
tests/amdgpu: refactor dispatch/draw test

Signed-off-by: Flora Cui <flora.cui@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
21 months agotests/amdgpu: skip gfx CE subtest in gfx11
Hawking Zhang [Sat, 12 Feb 2022 06:56:01 +0000 (14:56 +0800)]
tests/amdgpu: skip gfx CE subtest in gfx11

CE is not available in gfx11

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Likun Gao <Likun.Gao@amd.com>
22 months agolib: sync i915_pciids.h with kernel
Matt Roper [Wed, 27 Jul 2022 04:42:50 +0000 (21:42 -0700)]
lib: sync i915_pciids.h with kernel

This synchronizes with kernel commit 7835303982d1 ("drm/i915/mtl: Add
MeteorLake PCI IDs") to bring in the missing PCI IDs for several recent
platforms.

These days adding PCI IDs to libdrm doesn't really matter for real-world
system usage.  However there are still a few driver testing situations
where they're needed (such as the IGT dma-buf tests that still rely on
libdrm's bufmgr code).  At some point we should probably break that
final IGT dependency on libdrm so that these PCI ID resyncs won't be
necessary anymore, but that hasn't happened yet.

References: https://gitlab.freedesktop.org/drm/intel/-/issues/5416
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
22 months agobuild: set c_std to c11
Stephan Lachnit [Mon, 25 Jul 2022 15:37:32 +0000 (17:37 +0200)]
build: set c_std to c11

Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
22 months agotests/util: Add simpledrm driver
Eric Curtin [Mon, 13 Jun 2022 15:07:35 +0000 (16:07 +0100)]
tests/util: Add simpledrm driver

Add an entry for the "simpledrm" driver, so that the test utilities
work with the simpledrm driver without passing the -M argument.

Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Eric Curtin <ecurtin@redhat.com>
22 months agotests/amdgpu/vcn: add unified queue support in vcn4
Ruijing Dong [Mon, 18 Jul 2022 15:41:23 +0000 (11:41 -0400)]
tests/amdgpu/vcn: add unified queue support in vcn4

add unified queue headers on the existing tests.

Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
22 months agotests/amdgpu/vcn: align comments for AMDGPU_HW_IP_VCN_ENC
Ruijing Dong [Mon, 18 Jul 2022 15:36:14 +0000 (11:36 -0400)]
tests/amdgpu/vcn: align comments for AMDGPU_HW_IP_VCN_ENC

From VCN4, AMDGPU_HW_IP_VCN_ENC is re-used to support both encoding
and decoding jobs.

Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Signed-off-by: Ruijing Dong <ruijing.dong@amd.com>
22 months agotests/amdgpu: enable vcn swRing test for version 4 and later
James Zhu [Fri, 11 Mar 2022 17:46:47 +0000 (12:46 -0500)]
tests/amdgpu: enable vcn swRing test for version 4 and later

Enable vcn decode software ring test for version 4 and later.

Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
22 months agoamdgpu: update marketing names for 22.20
Alex Deucher [Mon, 18 Jul 2022 21:06:32 +0000 (17:06 -0400)]
amdgpu: update marketing names for 22.20

Add new marketing names.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
23 months agobuild: bump version to 2.4.112 libdrm-2.4.112
Simon Ser [Wed, 6 Jul 2022 08:43:38 +0000 (10:43 +0200)]
build: bump version to 2.4.112

Signed-off-by: Simon Ser <contact@emersion.fr>
23 months agoxf86drmMode: introduce drmModeConnectorGetPossibleCrtcs
Simon Ser [Fri, 21 Jan 2022 22:14:50 +0000 (23:14 +0100)]
xf86drmMode: introduce drmModeConnectorGetPossibleCrtcs

Nowadays, users don't really care about encoders except for retrieving
the list of CRTCs compatible with a connector. Introduce a new function
so that users no longer need to deal with encoders.

This is a re-do of [1], but with a slightly different API.

Signed-off-by: Simon Ser <contact@emersion.fr>
[1]: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/102

23 months agotests: use drmModeGetConnectorTypeName
Simon Ser [Tue, 1 Feb 2022 13:36:52 +0000 (14:36 +0100)]
tests: use drmModeGetConnectorTypeName

Drop util_lookup_connector_type_name and use
drmModeGetConnectorTypeName instead.

Signed-off-by: Simon Ser <contact@emersion.fr>
23 months agoxf86drmMode: introduce drmModeGetConnectorTypeName
Simon Ser [Tue, 1 Feb 2022 13:33:34 +0000 (14:33 +0100)]
xf86drmMode: introduce drmModeGetConnectorTypeName

User-space often needs to print the name of a connector type.
When a new connector type is added, all user-space programs need
to be updated to support the new connector type.

Expose a function to get a connector type name in libdrm.

The names are taken from the kernel [1].

[1]: https://cgit.freedesktop.org/drm/drm/tree/drivers/gpu/drm/drm_connector.c?h=4fc8cb47fcfdc93e274a1291757e478df4f9c39b#n83

Signed-off-by: Simon Ser <contact@emersion.fr>
23 months agotests/amdgpu/vcn:vcn encoder unit test
Saleemkhan Jamadar [Tue, 19 Oct 2021 09:00:11 +0000 (14:30 +0530)]
tests/amdgpu/vcn:vcn encoder unit test

 Add support for vcn encoder unit test

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Signed-off-by: Saleemkhan Jamadar <saleemkhan.jamadar@amd.com>
Signed-off-by: Satyajit Sahu <satyajit.sahu@amd.com>
23 months agotests/amdgpu: fix decode test failure on VCN2.5
Sathishkumar S [Wed, 25 May 2022 09:15:08 +0000 (14:45 +0530)]
tests/amdgpu: fix decode test failure on VCN2.5

For VCN2.5 wrong index was chosen, fix it.

Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
2 years agoxf86drmMode: constify drmModeAtomicReq functions
Simon Ser [Mon, 7 Feb 2022 10:59:54 +0000 (11:59 +0100)]
xf86drmMode: constify drmModeAtomicReq functions

This acts as an additional ABI guarantee, and improves
documentation for users.

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
2 years agogen_table_fourcc: strip _MODIFIER suffix for INVALID
Simon Ser [Mon, 2 May 2022 17:24:43 +0000 (19:24 +0200)]
gen_table_fourcc: strip _MODIFIER suffix for INVALID

This is the only modifier printed with a "_MODIFIER" suffix. It
looks inconsistent when callers already print this word (e.g.
"modifier: INVALID_MODIFIER").

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Marius Vlad <marius.vlad@collabora.com>
2 years agobuild: bump version to 2.4.111 libdrm-2.4.111
Dave Airlie [Fri, 3 Jun 2022 04:02:49 +0000 (14:02 +1000)]
build: bump version to 2.4.111

Signed-off-by: Dave Airlie <airlied@redhat.com>
2 years agotests/amdgpu: use appropriate ring for different asics
Guchun Chen [Thu, 26 May 2022 01:42:58 +0000 (09:42 +0800)]
tests/amdgpu: use appropriate ring for different asics

Use compute ring in case of no gfx ring.

Signed-off-by: Guchun Chen <guchun.chen@amd.com>
2 years agoamdgpu: add marketing names from 22.10
Alex Deucher [Thu, 12 May 2022 20:23:45 +0000 (16:23 -0400)]
amdgpu: add marketing names from 22.10

Add new marketing names

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 years agotests/modeprint: fix argument type
Eleni Maria Stea [Mon, 9 May 2022 12:00:54 +0000 (15:00 +0300)]
tests/modeprint: fix argument type

Replaced the type PRId64 with PRIu64 in a printf as the argument was
unsigned to fix the related compiler warning.

Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomodeprint, modetest, proptest: cast __u64 to uint64_t
Eleni Maria Stea [Mon, 9 May 2022 11:59:37 +0000 (14:59 +0300)]
modeprint, modetest, proptest: cast __u64 to uint64_t

It seems that __u64 values are defined differently across systems. In
glibc it's defined as unsigned long, in Linux kernel headers
(int-ll64.h) as unsigned long long, and on FreeBSD as uint64_t so it
matches glibc. A temporal solution is to cast all __u64 values to
uint64_t to avoid warnings on Linux, but ideally we'd like a better fix
in the future.

See also: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/212
for discussion.

Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
2 years agoxf86drm.c: fix C99 warning
Eleni Maria Stea [Mon, 9 May 2022 11:56:11 +0000 (14:56 +0300)]
xf86drm.c: fix C99 warning

Moved declaration to the top to resolve C99 compliance warning.

Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agonouveau: add ioctl wrapper to check for dead channels
Karol Herbst [Tue, 3 Aug 2021 17:29:04 +0000 (19:29 +0200)]
nouveau: add ioctl wrapper to check for dead channels

v2: explicitly set nr_push to 0 as well

Signed-off-by: Karol Herbst <kherbst@redhat.com>
2 years agointel: Add support for RPLP
Tejas Upadhyay [Thu, 21 Apr 2022 17:04:52 +0000 (22:34 +0530)]
intel: Add support for RPLP

Add RPLP platform support and PCIIDs

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
Signed-off-by: Raviteja Goud Talla <ravitejax.goud.talla@intel.com>
2 years agoman: Add formatting to drmModeGetConnector reference
Matt Turner [Tue, 19 Apr 2022 20:10:57 +0000 (13:10 -0700)]
man: Add formatting to drmModeGetConnector reference

Signed-off-by: Matt Turner <mattst88@gmail.com>
2 years agoman: Fix some typos
Matt Turner [Tue, 19 Apr 2022 18:53:55 +0000 (11:53 -0700)]
man: Fix some typos

Signed-off-by: Matt Turner <mattst88@gmail.com>
2 years agolibkms: Remove libkms completely
Daniel Stone [Tue, 29 Mar 2022 12:59:57 +0000 (13:59 +0100)]
libkms: Remove libkms completely

libkms was a very early attempt at a KMS management library, that only
got as far as handling requests to create buffers. It has since been
superseded by GBM in doing this, which everyone uses, unlike libkms
which no-one uses.

Remove it from the tree to avoid any confusion.

Signed-off-by: Daniel Stone <daniels@collabora.com>
2 years agotests/amdgpu: add dispatch test for gfx10
Flora Cui [Wed, 13 Nov 2019 08:16:55 +0000 (16:16 +0800)]
tests/amdgpu: add dispatch test for gfx10

Signed-off-by: Flora Cui <flora.cui@amd.com>
2 years agotests/amdgpu: add draw test for gfx10
Flora Cui [Wed, 13 Nov 2019 05:54:54 +0000 (13:54 +0800)]
tests/amdgpu: add draw test for gfx10

Signed-off-by: Flora Cui <flora.cui@amd.com>
2 years agotests/amdgpu: Add test suite CP DMA
Lu Jiacheng [Wed, 9 Mar 2022 15:05:04 +0000 (15:05 +0000)]
tests/amdgpu: Add test suite CP DMA

2 years agoamdgpu: add marketing names from 21.50
Alex Deucher [Wed, 2 Mar 2022 16:51:08 +0000 (11:51 -0500)]
amdgpu: add marketing names from 21.50

Add new marketing names

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 years agotest/amdgpu: only disable deadlock tests on asics without GPU reset
Alex Deucher [Mon, 14 Feb 2022 21:31:45 +0000 (16:31 -0500)]
test/amdgpu: only disable deadlock tests on asics without GPU reset

Switch the logic to only disable the tests for asics which don't
have GPU reset support.  This way we don't need to update it
every time we add a new asic which does support it.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2 years agotests/amdgpu/hotunplu: Enable hotunplug tests.
Andrey Grodzovsky [Tue, 1 Mar 2022 17:56:05 +0000 (12:56 -0500)]
tests/amdgpu/hotunplu: Enable hotunplug tests.

I tested with latest amd-staging-drm-next and after minor
fix for me all the testys pass. I bumped libdrm minor version
for this.

Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
2 years agotests: tegra: Add VIC flip test
Thierry Reding [Fri, 9 Jul 2021 19:10:22 +0000 (21:10 +0200)]
tests: tegra: Add VIC flip test

This test will attempt to use the VIC to blit one surface to another
and perform a vertical flip.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC blit test
Thierry Reding [Fri, 9 Jul 2021 19:10:02 +0000 (21:10 +0200)]
tests: tegra: Add VIC blit test

This test will attempt to use the VIC to blit from one surface to
another.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC clear test
Thierry Reding [Fri, 9 Jul 2021 19:09:39 +0000 (21:09 +0200)]
tests: tegra: Add VIC clear test

This test will attempt to use VIC to clear a surface.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC 4.2 support
Thierry Reding [Fri, 9 Jul 2021 19:09:04 +0000 (21:09 +0200)]
tests: tegra: Add VIC 4.2 support

The Video Image Composer (VIC) 4.2 can be found on NVIDIA Tegra194 SoCs.
It uses a different class (C5B6) that is slightly incompatible with the
class found on earlier generations, although it is backwards compatible
with the class implemented on Tegra186 (B1B6).

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC 4.1 support
Thierry Reding [Fri, 9 Jul 2021 19:08:35 +0000 (21:08 +0200)]
tests: tegra: Add VIC 4.1 support

The Video Image Composer (VIC) 4.1 can be found on NVIDIA Tegra186 SoCs.
It uses a different class (B1B6) that is slightly incompatible with the
class found on earlier generations.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC 4.0 support
Thierry Reding [Fri, 9 Jul 2021 19:07:57 +0000 (21:07 +0200)]
tests: tegra: Add VIC 4.0 support

The Video Image Composer (VIC) 4.0 can be found on NVIDIA Tegra210 SoCs.
It uses a different class (B0B6) that is slightly incompatible with the
class found on earlier generations.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC 3.0 support
Thierry Reding [Fri, 9 Jul 2021 19:06:59 +0000 (21:06 +0200)]
tests: tegra: Add VIC 3.0 support

The Video Image Composer (VIC) 3.0 can be found on NVIDIA Tegra124 SoCs.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add VIC support
Thierry Reding [Fri, 9 Jul 2021 19:02:32 +0000 (21:02 +0200)]
tests: tegra: Add VIC support

Implement a small abstraction interface to allow different versions of
VIC to be used transparently. An implementation will be chosen based on
the VIC version number reported by the DRM_TEGRA_IOCTL_OPEN_CHANNEL
IOCTL.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add syncpoint timeout test
Thierry Reding [Fri, 9 Jul 2021 18:59:32 +0000 (20:59 +0200)]
tests: tegra: Add syncpoint timeout test

This test can be used to purposefully trigger a job timeout.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add syncpt-wait test
Thierry Reding [Fri, 9 Jul 2021 18:58:41 +0000 (20:58 +0200)]
tests: tegra: Add syncpt-wait test

This is a very simple sanity test to check whether or not a syncpt can
be incremented by a host1x client. This uses gr2d on Tegra20 through
Tegra114 and VIC on Tegra124 and later.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add gr2d-fill test
Thierry Reding [Fri, 9 Jul 2021 18:56:56 +0000 (20:56 +0200)]
tests: tegra: Add gr2d-fill test

This test uses the IOCTLs for job submission and fences to fill a sub-
region of the screen to a specific color using gr2d.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests: tegra: Add helper library for tests
Thierry Reding [Fri, 9 Jul 2021 18:54:57 +0000 (20:54 +0200)]
tests: tegra: Add helper library for tests

This library provides helpers for common functionality needed by test
programs.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Add syncpoint APIs
Thierry Reding [Fri, 9 Jul 2021 18:45:20 +0000 (20:45 +0200)]
tegra: Add syncpoint APIs

These new functions can be used to allocate and free syncpoints, as well
as wait for a syncpoint threshold to be reached. Jobs can also be waited
on if a syncpoint was attached to them.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Add job and push buffer APIs
Thierry Reding [Fri, 9 Jul 2021 18:35:32 +0000 (20:35 +0200)]
tegra: Add job and push buffer APIs

These new functions can be used to create a job on a given channel, add
commands to the job using its push buffer and submit the job.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Add channel APIs
Thierry Reding [Fri, 9 Jul 2021 18:30:07 +0000 (20:30 +0200)]
tegra: Add channel APIs

These new functions can be used to open a channel to a given engine, map
and unmap buffer objects to that channel, and close the channel.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Include private.h in list of source files
Thierry Reding [Fri, 9 Jul 2021 18:21:35 +0000 (20:21 +0200)]
tegra: Include private.h in list of source files

This makes sure that the proper dependencies are created and that the
file is distributed.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Update for new UABI
Thierry Reding [Fri, 9 Jul 2021 18:19:38 +0000 (20:19 +0200)]
tegra: Update for new UABI

This new UABI is a more modern version that works better with both old
and recent chips.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Install tegra-openclose test
Thierry Reding [Tue, 20 Mar 2018 12:34:48 +0000 (13:34 +0100)]
tegra: Install tegra-openclose test

Allow this simple test to be installed so that it can easily be run on a
target device.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Make API more consistent
Thierry Reding [Fri, 9 Jul 2021 18:13:12 +0000 (20:13 +0200)]
tegra: Make API more consistent

Most functions in libdrm_tegra take as first parameter the object that
they operate on. Make the device and buffer object creation functions
follow the same scheme.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Add PRIME support helpers
Thierry Reding [Mon, 23 Apr 2018 09:01:36 +0000 (11:01 +0200)]
tegra: Add PRIME support helpers

These helpers facilitate exporting and importing buffer objects to and
from PRIME file descriptors.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Add flink helpers
Thierry Reding [Mon, 23 Apr 2018 09:00:56 +0000 (11:00 +0200)]
tegra: Add flink helpers

Add helpers to export and import buffer objects via flink names.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Fix mmap() of GEM buffer objects
Thierry Reding [Fri, 9 Jul 2021 18:05:54 +0000 (20:05 +0200)]
tegra: Fix mmap() of GEM buffer objects

Store 64-bit offset values and use libdrm's built-in drm_mmap() function
instead of mmap() to ensure the full 64-bit offset is used.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Extract common buffer object allocation code
Thierry Reding [Mon, 23 Apr 2018 08:58:09 +0000 (10:58 +0200)]
tegra: Extract common buffer object allocation code

All of the buffer object allocation functions use the same boilerplate
code. Move that code into a separate function that can be reused.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Remove unused IOCTL implementations
Thierry Reding [Fri, 9 Jul 2021 17:53:52 +0000 (19:53 +0200)]
tegra: Remove unused IOCTL implementations

The DRM_TEGRA_GEM_{GET,SET}_FLAGS and DRM_TEGRA_GEM_{GET,SET}_TILING
IOCTLs were badly designed and have since been obsoleted by framebuffer
modifiers. Remove these implementations to make it clear their usage is
discouraged.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotegra: Indent according to .editorconfig
Thierry Reding [Tue, 20 Mar 2018 11:55:04 +0000 (12:55 +0100)]
tegra: Indent according to .editorconfig

Reindent the sources according to the settings found in the newly added
.editorconfig.

Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2 years agotests/amdgpu: enable vcn test based on ip query
Sathishkumar S [Thu, 10 Feb 2022 13:49:50 +0000 (19:19 +0530)]
tests/amdgpu: enable vcn test based on ip query

family_id checks can be removed and instead use ip major/minor version

Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Reviewed-by: Veerabadhran Gopalakrishnan <veerabadhran.gopalakrishnan@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
2 years agotests/amdgpu: enable jpeg test based on ip query
Sathishkumar S [Thu, 10 Feb 2022 12:20:57 +0000 (17:50 +0530)]
tests/amdgpu: enable jpeg test based on ip query

enable jpeg test if ip query is successful and avoid family_id
based checks, instead use ip major/minor version

Signed-off-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Reviewed-by: Veerabadhran Gopalakrishnan <veerabadhran.gopalakrishnan@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
2 years agobuild: bump version to 2.4.110 libdrm-2.4.110
Samuel Pitoiset [Wed, 16 Feb 2022 10:00:13 +0000 (11:00 +0100)]
build: bump version to 2.4.110

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2 years agodrm/atomic: Stable sort for atomic request de-duplication
Daniel Stone [Wed, 19 May 2021 10:05:22 +0000 (11:05 +0100)]
drm/atomic: Stable sort for atomic request de-duplication

Atomic request property lists are defined to be de-duplicated: an atomic
request can contain multiple sets for the same property on the same
object, and only the last one will take effect.

drmModeAtomicCommit already sorts the property set by object and
property ID. We were relying on qsort to also sort by cursor - i.e.
pointer value - when object and property ID are equal, however whilst
glibc does this, the sort order is explicitly undefined when the
comparator is equal. Using the pointer is also not stable on all
implementations.

Add an explicit 'cursor' member to each property set which is used as
the tie-breaker comparator.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Fixes: #46

2 years agomeson: use summary() instead of message
Dylan Baker [Wed, 19 Jan 2022 19:26:21 +0000 (11:26 -0800)]
meson: use summary() instead of message

It's cleaner, it's nicer looking, and it's a nice builtin.

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: use the modern interface for pkg.generate
Dylan Baker [Wed, 19 Jan 2022 19:14:17 +0000 (11:14 -0800)]
meson: use the modern interface for pkg.generate

This produces no differences in the generated output. I've had to
manually add `requires : 'libdrm'` to libdrm_intel, otherwise libdrm
ends up in `Requires.private` instead of `Requires`.

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: use cc.has_function_attribute instead of open coding
Dylan Baker [Wed, 19 Jan 2022 19:12:43 +0000 (11:12 -0800)]
meson: use cc.has_function_attribute instead of open coding

It's less code, and also allows meson to short circuit for compilers is
knows don't support this.

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: use cc.check_header instead of open coding
Dylan Baker [Wed, 19 Jan 2022 19:10:58 +0000 (11:10 -0800)]
meson: use cc.check_header instead of open coding

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: use more standard formatting for better readability
Dylan Baker [Wed, 19 Jan 2022 19:09:07 +0000 (11:09 -0800)]
meson: use more standard formatting for better readability

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: switch to cc.get_supported_arguments
Dylan Baker [Wed, 19 Jan 2022 18:43:04 +0000 (10:43 -0800)]
meson: switch to cc.get_supported_arguments

This is generally faster, as meson is able to parallelize the checks for
us.

This also removes the workaround for checking gcc/clang -Wno-*
arguments, which meson now handles internally so we don't need to handle
it ourselves.

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agomeson: switch the meson builtin for symbol visiblity
Dylan Baker [Wed, 19 Jan 2022 18:42:20 +0000 (10:42 -0800)]
meson: switch the meson builtin for symbol visiblity

This allows meson to check if the compiler supports gnu style symbol
visibility, and apply the appropriate flags as necessary, rather than us
adding them by hand

Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
2 years agotests/amdgpu: add a test for new CTX OP to get/set stable pstates
Samuel Pitoiset [Mon, 3 Jan 2022 09:21:00 +0000 (10:21 +0100)]
tests/amdgpu: add a test for new CTX OP to get/set stable pstates

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2 years agoamdgpu: implement new CTX OP to set/get stable pstates
Samuel Pitoiset [Fri, 31 Dec 2021 08:10:03 +0000 (09:10 +0100)]
amdgpu: implement new CTX OP to set/get stable pstates

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2 years agoamdgpu: update_drm.h for new CTX OP to set/get stable pstates
Samuel Pitoiset [Fri, 31 Dec 2021 07:54:34 +0000 (08:54 +0100)]
amdgpu: update_drm.h for new CTX OP to set/get stable pstates

Based on agd5f/drm-next.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2 years agouse standard `__typeof__()` instead of GNU extension `typeof()`
Eric Engestrom [Tue, 17 Dec 2019 23:01:08 +0000 (23:01 +0000)]
use standard `__typeof__()` instead of GNU extension `typeof()`

And switch to c_std=c99. This simplifies using libdrm as a meson
subproject for mesa.

v2: (dylan)
  - switch to c99 as the standard
  - Fix amdgpu security tests as well

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Signed-off-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emma Anholt <emma@anholt.net>
2 years agotests/amdgpu: Add VCN test support for Biege Goby
Guchun Chen [Thu, 13 Jan 2022 06:47:52 +0000 (14:47 +0800)]
tests/amdgpu: Add VCN test support for Biege Goby

Added Beige Goby chip id in vcn test.

Signed-off-by: Guchun Chen <guchun.chen@amd.com>
Reviewed-By: Veerabadhran Gopalakrishnan <Veerabadhran.gopalakrishnan@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
2 years agointel: Add support for ADL-N
Tejas Upadhyay [Tue, 21 Dec 2021 09:54:59 +0000 (15:24 +0530)]
intel: Add support for ADL-N

Add ADL-N platform support and PCIIDs

Align with kernel commit:
7e28d0b26759 ("drm/i915/adl-n: Enable ADL-N platform")

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>
2 years agoreleasing: s/master/main/
Simon Ser [Mon, 8 Nov 2021 16:39:23 +0000 (17:39 +0100)]
releasing: s/master/main/

This default branch name has been changed. Update RELEASING
accordingly.

Signed-off-by: Simon Ser <contact@emersion.fr>
2 years agointel: Add support for RPLS platform
ravitejax [Tue, 21 Dec 2021 05:07:25 +0000 (10:37 +0530)]
intel: Add support for RPLS platform

Fixes: 3d8e59ce019907 ("intel: sync i915_pciids.h with kernel")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Tejas Upadhyay <tejaskumarx.surendrakumar.upadhyay@intel.com>