platform/upstream/libdrm.git
3 years agopackaging: add freedreno package 09/253809/2 accepted/tizen_6.5_base accepted/tizen_unified tizen tizen_6.5_base accepted/tizen/6.5/base/20211028.060127 accepted/tizen/base/20210825.055328 accepted/tizen/unified/20210224.131656 submit/tizen/20210223.111948 submit/tizen_6.5_base/20211028.134101 submit/tizen_base/20210825.031000 submit/tizen_base/20210825.035742 tizen_6.5.m2_release
Seung-Woo Kim [Thu, 18 Feb 2021 06:30:06 +0000 (15:30 +0900)]
packaging: add freedreno package

To support freedreno in mesa, it is reuqired to build freedreno.
Add freedreno packages.

To remove build warning, add -fno-strict-aliasing to CFLAGS.

Change-Id: Ia52c06a2e5ad8260e2b6534d890f7ef51b2074d6
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
3 years agofreedreno/msm: fix __u64 printing format 60/254060/1
Seung-Woo Kim [Mon, 22 Feb 2021 11:13:59 +0000 (20:13 +0900)]
freedreno/msm: fix __u64 printing format

__u64 is always unsigned long long, so print with %llu instead
of PRIu64 for uint64_t.

Change-Id: Ic88578b626cb7e05fb5829955e0d10cb77b1be2b
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
3 years agopackaging: set pc file name for devel package explicitly 59/254059/1
Seung-Woo Kim [Mon, 22 Feb 2021 03:32:04 +0000 (12:32 +0900)]
packaging: set pc file name for devel package explicitly

To use exact pc file for each module package, set pc file name for
devel package explicitly.

Change-Id: I67187fa179ede78ef9beee2dbc97002746c785f2
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
3 years agolibdrm : add nexell api accepted/tizen/unified/20201209.124856 submit/tizen/20201208.090512
jino.cho [Thu, 25 Aug 2016 09:42:35 +0000 (18:42 +0900)]
libdrm : add nexell api

This patch imports the nexell api of the libdrm

Change-Id: If8009fc30f46edcf4fdcc04679523e590e165003
Signed-off-by: jino.cho <jino.cho@samsung.com>
nexell: Add meson build system

Change-Id: I58d2e2b7a2605f087bf78e340ba156b8b8399da7
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
packaging: enable nexell and add lib

Change-Id: I22b2e6324bf6b07f289bb7b33054b6f80dbee945
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
nexell: add explicit cast for gem size

The nexell gem alloc api has int parameter, so it should be casted
to uint64_t for kernel gem alloc interface.

Change-Id: Icc98b42645fd8ec234b99193304b5f91bcdd3389
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
tests: add nexell drm to default test modules

Add nexell drm to test modules for the artik devices.

Change-Id: I5f15f6bf28064ebc6ad178ba40ada0c6e666ad49
Signed-off-by: SooChan Lim <sc1.lim@samsung.com>
nexell: add gem buffer type

Add gem buffer type to sync with kernel header.

libtbm nexell backend refers to gem buffer type for cache control.
So this patch adds the buffer type to identify if cache operation
is required or not.

Change-Id: I7760a54496a1a9e7c2f17f0a77e640e346d9b455
Signed-off-by: Inki Dae <inki.dae@samsung.com>
nexell: fix to check return of drmIoctl()

Fix to check return value of drmIoctl().

Change-Id: I456184820278ee38ff1a7e5bba283acb8c2ea99f
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
nexell: fix signed/unsinged cast

The commit 4f6c18f11c68 ("nexell: add explicit cast for gem size")
introduced signed 32bit value into unsigned 64bit value and it can
cause wrong value conversion. Fix to cast signed 32bit value into
unsigned 32bit value first and then cast into unsigned 64bit value.

Change-Id: I9550b74987ddd981e905f3b5085d4abaede01c65
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
nexell: add drm_public macro for nexell drm api

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
3 years agolibdrm : add vigs api
jinhyung.jo [Thu, 26 Sep 2013 05:58:40 +0000 (14:58 +0900)]
libdrm : add vigs api

Change-Id: Ie67c19bdb4a6f9e2190dbb4d3f825e878fca3635
Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com>
Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com>
[sw0312.kim: remove direct config.h include]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
vigs: Add meson build system

Change-Id: I263e91fece8336c6f530b49402e9e839519a855c
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
packaging: Enable vigs

Change-Id: I06c54a9cca66f23aaad2c9142b0d6c839be8c8b2
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
libdrm_vigs: Fence support added

VIGS kernel driver now supports fences, so
update libdrm to expose them to user space

Change-Id: I9c07084a357c0a8dc87c049e01238f9049ca0828
Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com>
libdrm_vigs: Scanout flag added to surfaces

Change-Id: Ib6f96d2542c3df0b78f7ef1b610bcc3fa0b678d6
Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com>
libdrm_vigs: Support plane z-pos setting

Change-Id: I2e1418425f1b4a17f49f19fabb8c4a2bdc84e5ef
Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com>
VIGS: Support DP memory

DP memory is used by some of the tizen
gstreamer plugins, TBM and X.Org video driver.
Its main purpose is to share GEM buffers between
media decoding and presentation layers

Change-Id: Ie377119b46d6033355bf6ce00adc01e36096742a
Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com>
VIGS: Implement plane flip/rotate

Planes can now be horizontally/vertically flipped
and rotated by 90, 180 or 270 degrees

Change-Id: I3db7dc3854add2b777e41aed54039a0d2323e0b1
Signed-off-by: Stanislav Vorobiov <s.vorobiov@samsung.com>
Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
VIGS: add PRIME functions

Change-Id: I488c4529c1fb1f52aec9081cb6eb82c40d256dc3
Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
VIGS: Add surface convert ioctl

Change-Id: Ic7fcb69be2a2fcc58363647278c0be62ac48766e
Signed-off-by: Vladislav Andresov <v.andresov@partner.samsung.com>
VIGS: fix always to check return of drmIoctl()

Fix to check return value of drmIoctl().

Change-Id: I0aae8953ebcb0b2b580638c1c730e2a4833df9f2
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
vigs: add drm_public macro to vigs api

For visibility, public api should have drm_public macro.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
3 years agotests/util: Remove unused variable warning in fill_tiles_rgb16fp()
Seung-Woo Kim [Mon, 24 Feb 2020 02:33:32 +0000 (11:33 +0900)]
tests/util: Remove unused variable warning in fill_tiles_rgb16fp()

There is an unused variable causing build warning in
fill_tiles_rgb16fp(). Remove the unused variable.

Change-Id: Ib25b08b954cf0e086a42a79319d48662f426ee54
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
3 years agointel: Fix type pruned cast
Seung-Woo Kim [Wed, 5 Feb 2020 06:38:42 +0000 (15:38 +0900)]
intel: Fix type pruned cast

Fix build waring about type pruned cast in test_decode.c.

Change-Id: Iceea47c4a87c9db9d31a8a3c9e913a7407152e0a
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
3 years agosupport drm_user_handler to handle vendor events
Boram Park [Sun, 22 Nov 2015 04:06:49 +0000 (13:06 +0900)]
support drm_user_handler to handle vendor events

Add drm_user_hander to handle vendor drm events like ipp events.

Note: From tizen, this is used from libtdm vendor layer.

Change-Id: I23149a08d9f9f66f9929d95dcfe6a96c1c897404
Signed-off-by: Boram Park <boram1288.park@samsung.com>
check if user_handler_list inited

Change-Id: I95abd7e8cc8d0485a7cc06dca54bfa46775eb8aa
Signed-off-by: Boram Park <boram1288.park@samsung.com>
[inki.dae: add omitted patch from tizen libdrm-2.4.75]
Signed-off-by: Inki Dae <inki.dae@samsung.com>
[sw0312.kim: squash user_handler patches]
Signed-off-by: Seung-Woo Kim <sw0312.kim>
3 years agoexynos: add support kernel userspace api for IPPv2 calls
Marek Szyprowski [Fri, 9 Feb 2018 15:33:30 +0000 (16:33 +0100)]
exynos: add support kernel userspace api for IPPv2 calls

Add kernel header defines for Exynos DRM IPPv2 API.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I1f0e8d957829b85808b5332c4e0e9bf4ddec65df

3 years agoexynos: Add kernel userspace api for v1
Hoegeun Kwon [Tue, 8 Dec 2020 07:21:09 +0000 (16:21 +0900)]
exynos: Add kernel userspace api for v1

Change-Id: Ic2bbde341316924bc3c9bf3af8cd206c6f3f8f6b
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
drm: ipptest: support ipp dynamic color range

This patch supports dynamic range for color space conversion.
COLOR_RANGE_LIMITED: selects narrow -> Y(16 to 235), Cb/Cr(16 to 240)
COLOR_RANGE_FULL: selects wide -> Y/Cb/Cr(0 to 255), Wide default

Change-Id: I94190ac3f3630904d2461e226d34378ac2b82b9d
Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
libdrm/exynos: add support for IPP blending, dithering, and colorfill

This patch adds the fields for IPP bleding, dithering, and colorfill.

Change-Id: Ib9cd7c7b22ee9f1017d1db3ae34d39dea342ffec
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
ipptest: added M2M to screen on fimc_m2m_set_mode

This patch added for the function outputing the M2M to a screen.
So, you can check for Image Post processing dirver to screen.
Also you can select the degree about (0, 90, 180, 270).

I will briefly explain the process of the function:
 - Memory(YUV422) ---> IPP ---> Memory(RGB888) ---> Screen
   - Create four DMA memory.
   - Draw the image of the YUV422 format on three DMA memories.
   - Rotate the relevant image by using IPP driver.
   - The rotated image is stored in one DMA memory as the RGB888 format.
   - The one DMA memory output screen.

I referred to the modetest code.

Change-Id: I2bf5738d98a457ced274dc8237df8ef108153e61
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
exynos/drm: sync with v4.1.36 rebased tree for exynos_ipp_prop_list

There is a problem using the IPP_GET_RPOPERTY ioctl because the
structure exynos_ipp_prop_list is not synchronized. Synchronize with
exynos_ipp_prop_list structure of tizen kernel v4.1.36

Refer below commit of tizen kernel:
- Commit id: 60f8b78 (drm/exynos/gsc: Add rotation hardware limits of gscaler)
- https://review.tizen.org/git/?p=platform/kernel/linux-exynos.git;a=commit;h=60f8b78ad8b75c5c3a52f2ad66897da628153eec

Change-Id: Id1989f571c989afb2c73bd4d654f560c3be4067c
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
3 years agoexynos: support DRM_IOCTL_EXYNOS_GEM_MAP
Joonyoung Shim [Tue, 6 Oct 2015 10:09:16 +0000 (19:09 +0900)]
exynos: support DRM_IOCTL_EXYNOS_GEM_MAP

The commit d41b7a3a745a("exynos: Don't use DRM_EXYNOS_GEM_{MAP_OFFSET/
MMAP} ioctls") removed it same with the ioctl that this patch adds. The
reason that removed DRM_IOCTL_EXYNOS_GEM_MAP_OFFSET was we could use
DRM_IOCTL_MODE_MAP_DUMB. Both did exactly same thing.

Now exynos-drm driver of linux kernel revives it as DRM_EXYNOS_GEM_MAP
because of render node. DRM_IOCTL_MODE_MAP_DUMB isn't permitted in
render node, so this patch also supports DRM_IOCTL_EXYNOS_GEM_MAP.

Change-Id: Ib548dc8a6bea076375465f64ee2fdd658a90e435
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
exynos: fix build warnings

Fix build warnings to exynos_fimg2d module.

This patch fixes below two build warnings,

exynos_fimg2d.c: In function 'g2d_scale_and_blend':
exynos_fimg2d.c:978:3: warning: 'scale_y' may be used uninitialized in this function [-Wmaybe-uninitialized]
   g2d_add_cmd(ctx, SRC_YSCALE_REG, scale_y);
   ^
exynos_fimg2d.c:977:3: warning: 'scale_x' may be used uninitialized in this function [-Wmaybe-uninitialized]
   g2d_add_cmd(ctx, SRC_XSCALE_REG, scale_x);

Change-Id: I70908088c61b85570aec6e3ec19b405df4820d37
Signed-off-by: Inki Dae <inki.dae@samsung.com>
3 years agoadd packaging
Anas Nashif [Tue, 13 Nov 2012 15:03:45 +0000 (07:03 -0800)]
add packaging

do not install libdrm_intel on ARM

added baselibs for multi lib supporta for intel drm

Fixed package groups

Fixed groups, dependencies and rpmlint warnings

resetting manifest requested domain to floor

Remove dependency on xorg-macros

libdrm didn't use any macros from xorg-macros, so remove it.

Change-Id: I37cda1f7bc48a2d0f98c9a319c78f8dca6b0f90c
Signed-off-by: Alex Wu <zhiwen.wu@linux.intel.com>
packaging: build using upstream tags

Change-Id: I1587634bfdd59172b7032cd968d0005261f1ad77
Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
fixed arch check for libdrm-intel requires.
Currently we have invalid requires for libdrm-intel for non-arm and non-intel arches.

Change-Id: I19c90a272da284f63c6d862a2e67e94f110a2807
Signed-off-by: Andriy Prystupa <andriy.prystupa@globallogic.com>
packaging: add libdrm-tools

This patch adds libdrm-tools package which includes test utilities such
as modetest/modeprint.

Change-Id: Icc10b1c56625af7954823664156cfec8b7b57c3e
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
clean spec file

 - allow build for yocto
 - improve rpmlint score

Change-Id: I1d563567b30914925e67fd3aebf3a6cc5e65026a
Signed-off-by: Ronan Le Martret <ronan@fridu.net>
packaging: depend on the same release

Change-Id: I02c7ff42eb688c6a6b03532966f2a16daad8910f
Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
packaging: add tools-exynos for testing exynos_drm

This patch adds tools-exynos package to test exynos.

Change-Id: I8dbd821f056ac3f7e2a043a97d0c39bec7f75b40
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
remove manifest for security domain policy

Change-Id: I556117f4dca6c11e3477b3404244f5a8c17b1ede
Signed-off-by: Mun, Gwan-gyeong <kk.moon@samsung.com>
Add manifest for security domain policy

Change-Id: I18f14262475041b2f1e919923907f998a8f12d87

packaging: Clean up kmstest

There is no reason to remove kmstest from package.

Change-Id: I772c21ca005f7edb23bb832a2ae3f8b3259d7a08
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Update to 2.4.75

Change-Id: I54ef37f9be4c03a7502b2e0cc8b93e46efe87a8a
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
packaging: notice license of libdrm package

This patch copies license file to /usr/share/licenses/libdrm/.
The licenses of all packages should be noticed when released.

Change-Id: I0224046d19ff73b44ec825c2b2327836e55b44c2
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Update to 2.4.90 / Update to 2.4.97 / Update to 2.4.98 / Update to 2.4.100

Add drmdevice tool packaging.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
add COPYING file

Add COPYING file with MIT license.

Change-Id: I5ce242bea2bdd74f8c58d30da82e987eeb9a5c55
Signed-off-by: Boram Park <boram1288.park@samsung.com>
[sw0312.kim: replaces xf86free license as proper MIT license copying]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
packaging: spec: Fix to meson build system

Change-Id: Ib1b454a96750600cdcd7c76dbb87f7bde48f54c6
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
package: Fix to enable intel api

Change-Id: I475f56afe71073174f867dc8d13d1d7121672481
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
3 years agoBump version to 2.4.103 libdrm-2.4.103
Dave Airlie [Wed, 4 Nov 2020 03:19:09 +0000 (13:19 +1000)]
Bump version to 2.4.103

Signed-off-by: Dave Airlie <airlied@redhat.com>
3 years agotests/util: Add imx-dcss driver
Lucas Stach [Fri, 20 Mar 2020 17:27:59 +0000 (18:27 +0100)]
tests/util: Add imx-dcss driver

This makes the test utilities work with the i.MX DCSS driver without the
necessity of using the -M argument.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
3 years agoxf86drm.c: Use integer logarithm.
Paul Gofman [Mon, 26 Oct 2020 13:11:20 +0000 (16:11 +0300)]
xf86drm.c: Use integer logarithm.

log() is affected by FP control word and can provide inaccurate result.

Fixes Killer Instinct under Wine not being able to find AMD vulkan
device.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
3 years agotests/amdgpu: disable VCN test if no VCN ring available(v2)
Tianci.Yin [Fri, 23 Oct 2020 06:56:11 +0000 (14:56 +0800)]
tests/amdgpu: disable VCN test if no VCN ring available(v2)

If KMD has no VCN support, remove the VCN test.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Tianci.Yin <tianci.yin@amd.com>
3 years agotests: add komeda to list of modules to look for for testing
Carsten Haitzler [Fri, 16 Oct 2020 10:00:15 +0000 (11:00 +0100)]
tests: add komeda to list of modules to look for for testing

komeda is one of the supported GPUs in the kernel tree so this adds it
to libdrm modules to look for in tests.

Signed-off-by: Carsten Haitzler <carsten.haitzler@arm.com>
3 years agoamdgpu: only enable security tests on raven family
Alex Deucher [Wed, 27 May 2020 21:33:10 +0000 (17:33 -0400)]
amdgpu: only enable security tests on raven family

It's the only asic with support at the moment.

Acked-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: Secure bounce test (v4)
Luben Tuikov [Thu, 6 Feb 2020 00:40:46 +0000 (19:40 -0500)]
tests/amdgpu: Secure bounce test (v4)

Implement secure bounce test. Steps implemented
as outlined by Christian K.

v2: Remove gpu_info; add comment describing
    the purpose and steps of the test.
v3: Parameterize "secure" in amdgpu_bo_lcopy() and
    amdgpu_bo_move(). Set them both to 0.
    Allocate buffer Bob to be non-TMZ.
v4: Fix an off-by-one bug which was causing
    the test to segfault.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: Remove forward declarations
Luben Tuikov [Thu, 21 May 2020 19:32:08 +0000 (15:32 -0400)]
tests/amdgpu: Remove forward declarations

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotest/amdgpu: enable security suite tests
Aaron Liu [Mon, 18 Nov 2019 08:49:47 +0000 (16:49 +0800)]
test/amdgpu: enable security suite tests

This patch enables security suite tests.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotest/amdgpu: add drm version checking for security suite
Aaron Liu [Mon, 18 Nov 2019 08:46:11 +0000 (16:46 +0800)]
test/amdgpu: add drm version checking for security suite

Adding drm version checking for security suite.
drm version need to be at least 3.37.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: add test to submit a sdma command with secure context
Aaron Liu [Fri, 15 Nov 2019 01:46:32 +0000 (09:46 +0800)]
tests/amdgpu: add test to submit a sdma command with secure context

This patch add test to submit a sdma command with secure context.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: add atomic dma command to verify the secure buffer (v2)
Aaron Liu [Fri, 15 Nov 2019 01:42:03 +0000 (09:42 +0800)]
tests/amdgpu: add atomic dma command to verify the secure buffer (v2)

DMA's atomic behavir is unlike GFX,If the comparing data is not
equal to destination data,
For GFX, loop again till gfx timeout(system hang).
For DMA, loop again till timer expired and then send interrupt.
So testcase can't use interrupt mechanism.
We take another way to verify. When the comparing data is not
equal to destination data, overwrite the source data to the destination
buffer. Otherwise, original destination data unchanged.
So if the bo_cpu data is overwritten, the result is passed.

Steps:
1. use linear write packet to write 0xdeadbeaf to secure buffer,
2. use atmoic packet and ATOMIC_CMPSWAP_RTN_32 opcode to compare
the cmp_data(0xdeadbeaf) to the written data which has been encrypted.

v2: add the case of (dest_data != cmp_data).

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: add test to submit a gfx command with secure context
Aaron Liu [Thu, 14 Nov 2019 08:36:53 +0000 (16:36 +0800)]
tests/amdgpu: add test to submit a gfx command with secure context

This patch is to test the command submission with secure context.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: add atomic_mem cp_packet to verify the secure buffer
Aaron Liu [Thu, 14 Nov 2019 08:14:06 +0000 (16:14 +0800)]
tests/amdgpu: add atomic_mem cp_packet to verify the secure buffer

Secure buffer is only able to be read with trusted ip block.
So we need use GFX ip to read it back instead of CPU.
Steps:
1. use write_data packet to write 0xdeadbeaf to secure buffer,
2. use atmoic_mem packet and ATOMIC_CMPSWAP_RTN_32 opcode to compare
the cmp_data(0xdeadbeaf) to the written data which has been encrypted.
If the result is equal, then overwrite the src_data(0x12345678) to the
secure buffer and return directly. Otherwise loop again until gfx timeout
and the secure buffer data unchanged.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: expand secure param for exec_cs_helper (v2)
Aaron Liu [Thu, 14 Nov 2019 07:54:10 +0000 (15:54 +0800)]
tests/amdgpu: expand secure param for exec_cs_helper (v2)

This patch expands secure param for amdgpu_test_exec_cs_helper_raw.
The flag is transfered to kernel with cs.

v2: squash in change from context to IB flag

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: add device handle as input param for exec_cs_helper and write_linear_he...
Huang Rui [Fri, 16 Aug 2019 11:02:51 +0000 (19:02 +0800)]
tests/amdgpu: add device handle as input param for exec_cs_helper and write_linear_helper (v4)

This patch is to add add device handle as input param for exec_cs_helper
and write_linear_helper.

Because they are needed in security tests.

v2: fix typo that basic tests should be un-secure.
v3: refine the function implementation.
v4: remove amdgpu_cs_ctx_create3 calling.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: expand write linear helper for security (v3)
Huang Rui [Fri, 16 Aug 2019 09:07:07 +0000 (17:07 +0800)]
tests/amdgpu: expand write linear helper for security (v3)

This patch expand write linear helper for security to submit the command
with secure context.

v2: refine the function implementation.
v3: remove amdgpu_cs_ctx_create3.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: add secure buffer allocation test for invisible VRAM
Huang Rui [Fri, 16 Aug 2019 08:32:16 +0000 (16:32 +0800)]
tests/amdgpu: add secure buffer allocation test for invisible VRAM

This patch is to add secure buffer allocation test for invisible VRAM.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: add secure buffer allocation test for system memory
Huang Rui [Fri, 16 Aug 2019 08:18:21 +0000 (16:18 +0800)]
tests/amdgpu: add secure buffer allocation test for system memory

This patch is to add secure buffer allocation test for system memory.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: add security test suite (v2)
Huang Rui [Sun, 11 Aug 2019 13:23:24 +0000 (21:23 +0800)]
tests/amdgpu: add security test suite (v2)

This patch is to add a new test suite to store security tests.
In Raven+ asics, it will support TMZ (trust memory zone), and it is
page-based protection feature.

v2: remove tests/amdgpu/Makefile.am and update to
tests/amdgpu/meson.build

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Aaron Liu <aaron.liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agoamdgpu: sync up amdgpu_drm.h with latest from kernel
Alex Deucher [Thu, 21 May 2020 19:28:23 +0000 (15:28 -0400)]
amdgpu: sync up amdgpu_drm.h with latest from kernel

From drm-next:

commit c41219fda6e04255c44d37fd2c0d898c1c46abf1
Merge: e20bb857dea2 d96536f0fe69
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu May 21 10:44:32 2020 +1000

    Merge tag 'drm-intel-next-fixes-2020-05-20' of git://anongit.freedesktop.org/drm/drm-intel into drm-next

    Fix for TypeC power domain toggling on resets (Cc: stable).
    Two compile time warning fixes.

Signed-off-by: Dave Airlie <airlied@redhat.com>
    From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200520123227.GA21104@jlahtine-desk.ger.corp.intel.com
Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: disable unsupported test cases for Arcturus
Le Ma [Wed, 24 Jul 2019 08:47:08 +0000 (16:47 +0800)]
tests/amdgpu: disable unsupported test cases for Arcturus

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Le Ma <le.ma@amd.com>
Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: move arcturus asic check function to common place
Le Ma [Wed, 24 Jul 2019 07:42:24 +0000 (15:42 +0800)]
tests/amdgpu: move arcturus asic check function to common place

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Le Ma <le.ma@amd.com>
Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu/vcn: add Arcturus decode test support
James Zhu [Thu, 15 Oct 2020 17:41:26 +0000 (13:41 -0400)]
tests/amdgpu/vcn: add Arcturus decode test support

Add Arcturus decode test support only

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: disable gfx engine basic test cases for Arcturus
Le Ma [Mon, 4 Mar 2019 08:56:55 +0000 (16:56 +0800)]
tests/amdgpu: disable gfx engine basic test cases for Arcturus

Since Arcturus has no gfx pipeline(CPG), cases below is not suitable:
  - Command submission Test (GFX)
  - Command submission Test (Multi-Fence)
  - Sync dependency Test

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Le Ma <le.ma@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: create Active function for basic test suite
Le Ma [Mon, 4 Mar 2019 10:27:48 +0000 (18:27 +0800)]
tests/amdgpu: create Active function for basic test suite

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Le Ma <le.ma@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agotests/amdgpu: add function to check Asic is Arcturus
Le Ma [Thu, 27 Jun 2019 10:57:14 +0000 (18:57 +0800)]
tests/amdgpu: add function to check Asic is Arcturus

Since Arcturus has no gfx engine, add function to blacklist gfx related test.

Acked-by: Huang Rui <ray.huang@amd.com>
Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Le Ma <le.ma@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agoamdgpu: add marketing names from 20.40
Alex Deucher [Mon, 5 Oct 2020 14:55:25 +0000 (10:55 -0400)]
amdgpu: add marketing names from 20.40

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agointel: add INTEL_DG1_IDS to the pciids list
Tapani Pälli [Fri, 25 Sep 2020 06:19:35 +0000 (09:19 +0300)]
intel: add INTEL_DG1_IDS to the pciids list

This enables drm_intel_bufmgr on DG1 and allows us to pass dmabuf
import/export related tests with Piglit.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
3 years agoamdgpu: add device IDs for Raven, Picasso and Renoir
sitanliu [Thu, 27 Aug 2020 17:01:28 +0000 (17:01 +0000)]
amdgpu: add device IDs for Raven, Picasso and Renoir

3 years agointel: sync i915_pciids.h with kernel
Adam Miszczak [Fri, 21 Aug 2020 06:15:10 +0000 (08:15 +0200)]
intel: sync i915_pciids.h with kernel

Add DG1 and clean-up VLV PCI IDs.

Align with kernel commits:
f2bde2546b81 ("drm/i915: Remove dubious Valleyview PCI IDs")
fd38cdb81105 ("drm/i915/dg1: Add DG1 PCI IDs")

Signed-off-by: Adam Miszczak <adam.miszczak@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
3 years agoman: Update the bug URL to gitlab.freedesktop.org
Jeremy Cline [Thu, 13 Aug 2020 17:00:53 +0000 (13:00 -0400)]
man: Update the bug URL to gitlab.freedesktop.org

Point users to the GitLab issue tracker instead of Bugzilla, which is no
longer used.

Signed-off-by: Jeremy Cline <jcline@redhat.com>
3 years ago intel: Add PCI ID support to RKL platform
sunil kumar dora sermsity [Fri, 21 Aug 2020 20:02:53 +0000 (20:02 +0000)]
intel: Add PCI ID support to RKL platform

    Missing RKL PCI ID preventing below test cases to succeed on RKL Platform.
    igt@kms_frontbuffer_tracking
    igt@kms_draw-crc
    igt@kms_big_fb

Signed-off-by: sunil kumar dora sermsity <sunilx.kumar.dora.sermsity@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
3 years agoamdgpu: Add Device IDs for Embedded Raven2 platforms
Pavan Kumar Ramayanam [Tue, 18 Aug 2020 11:28:51 +0000 (16:58 +0530)]
amdgpu: Add Device IDs for Embedded Raven2 platforms

Acked-by: Leo Liu <leo.liu@amd.com>
Signed-off-by: Pavan Kumar Ramayanam <pavan.ramayanam@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agointel: sync i915_pciids.h with kernel
José Roberto de Souza [Wed, 8 Jul 2020 17:44:53 +0000 (10:44 -0700)]
intel: sync i915_pciids.h with kernel

Two new patches landed in kernel adding new PCI ids:
123f62de419f ("drm/i915/rkl: Add RKL platform info and PCI ids")
52797a8e8529 ("drm/i915/ehl: Add new PCI ids")

Cc: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
3 years agotests/amdgpu: clear the extension flag
Leo Liu [Thu, 14 May 2020 16:30:28 +0000 (12:30 -0400)]
tests/amdgpu: clear the extension flag

This is workaround of firmware issue, and the change has no impact
on the legacy HW.

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: James Zhu <James.Zhu@amd.com>
3 years agotests/amdgpu: clear msg decode flag
Leo Liu [Thu, 14 May 2020 16:27:41 +0000 (12:27 -0400)]
tests/amdgpu: clear msg decode flag

It is not used for VCN from VCN1, but VCN3 use it
for other feature, so clear it, because we don't
use the feature for now

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: James Zhu <James.Zhu@amd.com>
3 years agotests/amdgpu: add VCN3.0 regs support
Leo Liu [Thu, 14 May 2020 16:24:53 +0000 (12:24 -0400)]
tests/amdgpu: add VCN3.0 regs support

VCN3.0 has its own set of internal regs

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Thong Thai <thong.thai@amd.com>
Reviewed-by: James Zhu <James.Zhu@amd.com>
3 years agoxf86drm.c: fix build failure
Heiko Thiery [Fri, 5 Jun 2020 21:46:52 +0000 (23:46 +0200)]
xf86drm.c: fix build failure

./xf86drm.c: In function 'drmNodeIsDRM':
../xf86drm.c:2825:7: error: "__FreeBSD__" is not defined [-Werror=undef]
 #elif __FreeBSD__
       ^
../xf86drm.c: In function 'drmGetMinorNameForFD':
../xf86drm.c:2938:7: error: "__FreeBSD__" is not defined [-Werror=undef]
 #elif __FreeBSD__
       ^
../xf86drm.c: In function 'drmParsePciBusInfo':
../xf86drm.c:3258:7: error: "__FreeBSD__" is not defined [-Werror=undef]
 #elif __FreeBSD__
       ^
../xf86drm.c: In function 'drmParsePciDeviceInfo':
../xf86drm.c:3427:7: error: "__FreeBSD__" is not defined [-Werror=undef]
 #elif __FreeBSD__
       ^
../xf86drm.c: In function 'drmGetDeviceNameFromFd2':
../xf86drm.c:4305:7: error: "__FreeBSD__" is not defined [-Werror=undef]
 #elif __FreeBSD__
       ^

Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
3 years agocore: use `O_RDONLY` instead of ambiguous `0` flag
Eric Engestrom [Thu, 28 May 2020 15:17:26 +0000 (17:17 +0200)]
core: use `O_RDONLY` instead of ambiguous `0` flag

Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
3 years agoamdgpu: add marketing names from 20.10
Alex Deucher [Thu, 21 May 2020 17:21:54 +0000 (13:21 -0400)]
amdgpu: add marketing names from 20.10

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
3 years agoBump version to 2.4.102 libdrm-2.4.102
Dave Airlie [Tue, 26 May 2020 20:32:57 +0000 (06:32 +1000)]
Bump version to 2.4.102

Signed-off-by: Dave Airlie <airlied@redhat.com>
3 years agomodetest: Add a new "-r" option to set a default mode
Emil Velikov [Mon, 22 Jul 2019 16:08:23 +0000 (13:08 -0300)]
modetest: Add a new "-r" option to set a default mode

This option finds all connected connector and then sets its preferred
mode on it. If no preferred mode is available, first mode is used.

This option must be set w/o any mode or plane.

This allows for a quick test on all connected outputs.

Loosely based on the work by Ezequiel Garcia <ezequiel@collabora.com>

Changes since Ezequiel's work:
 - implement atomic codepath
 - set all connectors
 - pick correct crtc
 - don't set -r by default
 - nearly identical output in atomic and non-atomic codepaths

v2:
 - Use the crtc->crtc_id, instead of the plane's current crtc_id

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: reorder atomic path alike the non-atomic
Emil Velikov [Wed, 15 Apr 2020 09:37:24 +0000 (10:37 +0100)]
modetest: reorder atomic path alike the non-atomic

Makes the code a tiny bit more symmetrical.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: don't error out of final AtomicCommit
Emil Velikov [Wed, 15 Apr 2020 09:28:36 +0000 (10:28 +0100)]
modetest: don't error out of final AtomicCommit

The very final drmModeAtommicCommit tears down the existing mode/plane
setup. Following it we clean up other misc state laying around.

Chances are that it will not fail, but in the extremely unlikely case it
does, there's nothing one can do.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: factor out atomic pageflip test
Emil Velikov [Wed, 15 Apr 2020 09:20:07 +0000 (10:20 +0100)]
modetest: factor out atomic pageflip test

Move the hunk of code into a function, making the overall flow easier to
follow and providing some symmetry to the non-atomic path.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: push pipe_resolve_connectors() to set_mode
Emil Velikov [Mon, 13 Apr 2020 14:33:50 +0000 (15:33 +0100)]
modetest: push pipe_resolve_connectors() to set_mode

The function is closely related to pipe_find_crtc_and_mode() so we might
as well keep them together.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: move pipe_resolve_connectors() further up
Emil Velikov [Wed, 15 Apr 2020 08:57:09 +0000 (09:57 +0100)]
modetest: move pipe_resolve_connectors() further up

Move the function above set_mode, since we'll be using it from there as
of next commit.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: unify {,atomic_}set_mode()
Emil Velikov [Mon, 13 Apr 2020 15:05:52 +0000 (16:05 +0100)]
modetest: unify {,atomic_}set_mode()

Instead of duplicating the exact same code across the two functions,
fold them into one.

For some strange reason git diff may show atomic_clear_mode() as changed
The function in untouched, despite the misleading output.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: get the crtc_id from the pipe_arg
Emil Velikov [Mon, 13 Apr 2020 11:09:59 +0000 (12:09 +0100)]
modetest: get the crtc_id from the pipe_arg

Makes the code shorter and easier to read.

Currently if the user has not set the crtc_id, we fetch the crtc yet do
not "bother" setting the id - do so.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: introduce and use get_crtc_by_id() and get_crtc_mask()
Emil Velikov [Mon, 13 Apr 2020 11:31:23 +0000 (12:31 +0100)]
modetest: introduce and use get_crtc_by_id() and get_crtc_mask()

Let's make the code shorter, this avoid crashes (when drmModeGetCrtc()
fails) by using a couple of helpers. As get_resources() considers the
drmModeGetCrtc() fail non-fatal, we might as well handle it properly.

v2: Add a comment above the unreachable abort() (Eze)

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: close the device on exit
Emil Velikov [Tue, 14 Apr 2020 10:31:07 +0000 (11:31 +0100)]
modetest: close the device on exit

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: remove drmMode{,Plane}Res
Emil Velikov [Mon, 13 Apr 2020 10:26:18 +0000 (11:26 +0100)]
modetest: remove drmMode{,Plane}Res

There's no point in keeping these around since we already fetch the
complete data set. Add respective count_ variables and greatly simplify
the existing code.

Extra brownie points for:
 - using the inverse order in free_resources()
 - don't memory leak the connector properties
 - free the properties themselves, instead of only the objects

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: add and use bo_fb_create() helper
Emil Velikov [Fri, 10 Apr 2020 22:29:58 +0000 (23:29 +0100)]
modetest: add and use bo_fb_create() helper

Flesh out the bo_create + drmModeAddFB2 dance into a helper and use it.
Currently we're duplicating that in 4 places, many of which leaking et
al.

As a bonus point this highlights that the atomic_set_plane() seems tad
buggy. That'll be fixed with separate commit.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: set atomic cap, _only_ when needed
Emil Velikov [Fri, 10 Apr 2020 17:31:18 +0000 (18:31 +0100)]
modetest: set atomic cap, _only_ when needed

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: move basic args check before open()
Emil Velikov [Fri, 10 Apr 2020 19:17:07 +0000 (20:17 +0100)]
modetest: move basic args check before open()

Don't bother opening the device node, if the args combination is invalid

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: remove cursor/page_flipping_supported stubs
Emil Velikov [Fri, 10 Apr 2020 19:14:32 +0000 (20:14 +0100)]
modetest: remove cursor/page_flipping_supported stubs

The two functions have been stubs for ages. The alluded generic ioctls
never came to be, assumingly because all new drivers support those.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomodetest: simplify "dump all" logic
Emil Velikov [Fri, 10 Apr 2020 19:12:54 +0000 (20:12 +0100)]
modetest: simplify "dump all" logic

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Ezequiel Garcia <ezequiel@collabora.com>
Tested-by: Ezequiel Garcia <ezequiel@collabora.com>
3 years agomeson: require valgrind 3.10.0 to enable it with freedreno
Jose Maria Casanova Crespo [Tue, 5 May 2020 19:50:33 +0000 (21:50 +0200)]
meson: require valgrind 3.10.0 to enable it with freedreno

Freedreno uses VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE that was
introduced in Valgrind 3.10.0

Raspbian Buster includes Valgrind 3.7.0, so when valgrind is installed
as freedreno is build by default the build becomes broken. So lets
require 3.10 to enable valgrind when freedreno is built.

v2: Keep the arguments listed in the same order (Emil Velikov)

Closes: https://gitlab.freedesktop.org/mesa/drm/-/issues/37
Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agonouveau: sync up with nouveau_abi16.h and nouveau_drm.h
Karol Herbst [Tue, 5 May 2020 17:14:55 +0000 (19:14 +0200)]
nouveau: sync up with nouveau_abi16.h and nouveau_drm.h

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
3 years agodrm mode : fix memory leak when freeing drmModePropertyPtr
Boram Park [Sat, 1 Oct 2011 00:30:09 +0000 (09:30 +0900)]
drm mode : fix memory leak when freeing drmModePropertyPtr

Closes: https://gitlab.freedesktop.org/mesa/drm/-/issues/5
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: drmGetDeviceNameFromFd: Always return /dev/dri/ node for FreeBSD
Emmanuel Vadot [Tue, 28 Apr 2020 14:33:05 +0000 (16:33 +0200)]
libdrm: drmGetDeviceNameFromFd: Always return /dev/dri/ node for FreeBSD

Since we now always returns the /dev/dri/ node for
drmGet<nodetype>DeviceNameFromFd, be consistant with the names returned
in drmGetDeviceNameFromFd.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
3 years agolibdrm: drmGetMinorNameFromFd: Fix FreeBSD variant
Emmanuel Vadot [Tue, 28 Apr 2020 13:26:13 +0000 (15:26 +0200)]
libdrm: drmGetMinorNameFromFd: Fix FreeBSD variant

Fix the FreeBSD variant by getting the node type represented by fd to deduce
the target minor name.
We then return the full /dev/dri/<minorname><id> version.

Fix: #41
Fixes: 6818a50b12
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
3 years agonouveau: fix compile error with -DDEBUG on newer gcc
Karol Herbst [Sun, 3 May 2020 14:17:42 +0000 (16:17 +0200)]
nouveau: fix compile error with -DDEBUG on newer gcc

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
3 years agolibdrm: intel: add DRM_RDWR flag in drm_intel_bo_gem_export_to_prime
Nicholas Bishop [Wed, 5 Feb 2020 01:27:33 +0000 (20:27 -0500)]
libdrm: intel: add DRM_RDWR flag in drm_intel_bo_gem_export_to_prime

This is similar to b81d44d587d1706d5c7568e539340632a748782b: the
DRM_RDWR flag is needed for mmap to work.

Signed-off-by: Nicholas Bishop <nicholasbishop@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agointel: properly escape sed pattern for tests
Nicholas Bishop [Fri, 24 Apr 2020 16:16:31 +0000 (12:16 -0400)]
intel: properly escape sed pattern for tests

The sed was incorrectly modifying e.g. "nicholasbishop" to
"nicholasbop". The updated pattern will only match `.sh` at the end of
the string.

Signed-off-by: Nicholas Bishop <nicholasbishop@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agotests/amdgpu/vcn: add Renoir VCN2.0 decode support
Leo Liu [Thu, 23 Apr 2020 16:05:09 +0000 (12:05 -0400)]
tests/amdgpu/vcn: add Renoir VCN2.0 decode support

Renoir is the same family as Raven, but it's with VCN2.0,
so it has to use VCN2.0 reg set

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-By: Thong Thai <thong.thai@amd.com>
3 years agolibdrm: Handle usb_interface devices for usb parsing
Scott Anderson [Fri, 31 Jan 2020 03:18:19 +0000 (16:18 +1300)]
libdrm: Handle usb_interface devices for usb parsing

Currently the code expects that the device found at
/sys/char/$maj:$min/device for USB devices is a "usb_device". However,
at least for some devices, such as for the udl driver, they are instead
a "usb_interface".

A usb_interface is a child of the usb_device we're interested in, so we
walk up one in the /sys path to get there.

For example, with a USB device I have, trimmed to show the relevant
information:
```
$ udevadm info /dev/dri/card1
P: /devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-4/1-4:1.0/drm/card1
E: DEVTYPE=drm_minor
$ udevadm info /sys/devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-4/1-4:1.0
E: DEVTYPE=usb_interface
E: DRIVER=udl
$ udevadm info /sys/devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-4
E: DEVTYPE=usb_device
E: DRIVER=usb
E: BUSNUM=001
E: DEVNUM=009
```

Signed-off-by: Scott Anderson <scott@anderso.nz>
3 years agoxf86drm: Check non-absolute path only for virtio based devices
Mikhail Golubev [Mon, 20 Apr 2020 18:08:50 +0000 (20:08 +0200)]
xf86drm: Check non-absolute path only for virtio based devices

This fixes bug in drmParseSubsystemType() that cases situation when
subsequent call to readlink() from get_subsystem_type() will result in
EACCESS.

Signed-off-by: Mikhail Golubev <mikhail.golubev@opensynergy.com>
3 years agotests/amdgpu: needs atomic_ops
Peter Seiderer [Sat, 7 Mar 2020 11:23:09 +0000 (12:23 +0100)]
tests/amdgpu: needs atomic_ops

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Acked-by: Alex Deucher alexander.deucher@amd.com
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agotests: install drmdevice
Emil Velikov [Tue, 21 Apr 2020 10:27:01 +0000 (11:27 +0100)]
tests: install drmdevice

Just like the other tests (tools really) install drmdevice. It is a
simple tool which is useful for basic check/testing.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Acked-by: Eric Engestrom <eric@engestrom.ch>
3 years agotests/nouveau/threaded: adapt ioctl signature for FreeBSD
Emmanuel Vadot [Fri, 24 Jan 2020 18:27:41 +0000 (19:27 +0100)]
tests/nouveau/threaded: adapt ioctl signature for FreeBSD

FreeBSD also use (int, unsigned long int, ...) like GLIBC.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: Implement drmParsePciDeviceInfo for FreeBSD
Emmanuel Vadot [Tue, 21 Jan 2020 17:49:47 +0000 (18:49 +0100)]
libdrm: Implement drmParsePciDeviceInfo for FreeBSD

The FreeBSD kernel expose a pseudo-device /dev/pci to obtain information
about present PCI device.
Uee the PCIOCGETCONF ioctl on this device to look up the desired device
information.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: get_pci_path is Linux only so add an ifdef
Emmanuel Vadot [Mon, 20 Apr 2020 20:44:02 +0000 (22:44 +0200)]
libdrm: get_pci_path is Linux only so add an ifdef

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: Add get_sysctl_pci_bus_info for FreeBSD
Emmanuel Vadot [Tue, 21 Jan 2020 17:49:11 +0000 (18:49 +0100)]
libdrm: Add get_sysctl_pci_bus_info for FreeBSD

The FreeBSD drm driver expose a sysctl hw.dri.%d.busid which contain
the busid.
Use this sysctl to parse the busid information based on the major/minor
that allow us to implement FreeBSD support for drmParsePciBusInfo.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: drmCheckModesettingSupported: fix for FreeBSD
Emmanuel Vadot [Fri, 24 Jan 2020 19:43:05 +0000 (20:43 +0100)]
libdrm: drmCheckModesettingSupported: fix for FreeBSD

FreeBSD only support up to 10 GPUs not 16.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: drmCheckModesettingSupported: Fix for FreeBSD
Emmanuel Vadot [Tue, 21 Jan 2020 17:41:38 +0000 (18:41 +0100)]
libdrm: drmCheckModesettingSupported: Fix for FreeBSD

Remove some useless busid rewritting.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: drmGetDeviceNameFromFd2: Add FreeBSD variant
Emmanuel Vadot [Tue, 21 Jan 2020 16:58:28 +0000 (17:58 +0100)]
libdrm: drmGetDeviceNameFromFd2: Add FreeBSD variant

The FreeBSD variant of drmGetDeviceNameFromFd can already handle
the different node type so just call it.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: Default to PCI for FreeBSD
Emmanuel Vadot [Tue, 21 Jan 2020 16:56:49 +0000 (17:56 +0100)]
libdrm: Default to PCI for FreeBSD

FreeBSD have some support for DRM on !PCI device but no code is currently
upstream. Default to PCI for now.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: drmGetMinorNameForFD: Add FreeBSD variant
Emmanuel Vadot [Tue, 21 Jan 2020 16:53:07 +0000 (17:53 +0100)]
libdrm: drmGetMinorNameForFD: Add FreeBSD variant

Use the FreeBSD variant function to obtain the minor name and the
device node.
Return the correct path based on where the node is (drm/ versus dri/).

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: drmGetDeviceNameFromFd: Add FreeBSD variant
Emmanuel Vadot [Tue, 21 Jan 2020 16:50:15 +0000 (17:50 +0100)]
libdrm: drmGetDeviceNameFromFd: Add FreeBSD variant

Get the major/minor via fstat and after checking that this is a drm node
construct the full device node name using devname.
Note that we should be able to use fdevname to avoid calling fstat + devname
but for some reason it doesn't work on drm node (probably due to how the device
node are created in the linux compat code for drm on FreeBSD).

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: drmGetMinorType: Add FreeBSD version
Emmanuel Vadot [Tue, 21 Jan 2020 16:47:09 +0000 (17:47 +0100)]
libdrm: drmGetMinorType: Add FreeBSD version

Resolve the minor type based on the device node path.
The minor type is either in /dev/drm/X where X is the type or
in a Linux-compatible device node in /dev/dri/
This means we need the major number on FreeBSD so add it to the function
arguments.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agoxf86drm: Remove ifdef for FreeBSD and DRM_MAJOR
Emmanuel Vadot [Tue, 21 Jan 2020 16:39:10 +0000 (17:39 +0100)]
xf86drm: Remove ifdef for FreeBSD and DRM_MAJOR

FreeBSD devfs only provides on the fly generated major/minor.
The major number is irrelevant for FreeBSD so remove the special case.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agolibdrm: drmNodeIsDRM: Add FreeBSD variant
Emmanuel Vadot [Tue, 21 Jan 2020 16:42:44 +0000 (17:42 +0100)]
libdrm: drmNodeIsDRM: Add FreeBSD variant

FreeBSD devfs have on the gly generated major minor so we cannot use them
to test if the device is a drm node.
Instead get the devfs node name and test if it is in a subdirectory "drm/"
or "dri/".
Historycally DRM device on FreeBSD are created in /dev/drm/ and link are
present in /dev/dri/ for compatibility reason.

Signed-off-by: Emmanuel Vadot <manu@FreeBSD.org>
Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
3 years agomeson: don't detect <sys/sysctl.h> on Linux
Eric Engestrom [Sun, 29 Mar 2020 20:45:52 +0000 (22:45 +0200)]
meson: don't detect <sys/sysctl.h> on Linux

The header is not required on Linux, and is in fact deprecated in glibc 2.30+

Reported-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Niclas Zeising <zeising@daemonic.se>
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Tested-by: Niclas Zeising <zeising@daemonc.se>
4 years agotests/amdgpu/vcn: add dummy feedback message
James Zhu [Sat, 11 Apr 2020 13:50:15 +0000 (09:50 -0400)]
tests/amdgpu/vcn: add dummy feedback message

Latest VCN firmware has feedback header check.

Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
4 years agoBump version to 2.4.101 libdrm-2.4.101
Timo Aaltonen [Fri, 3 Apr 2020 11:39:47 +0000 (14:39 +0300)]
Bump version to 2.4.101

4 years agoamdgpu: increase cpu_map_count storage size
Pierre-Eric Pelloux-Prayer [Tue, 17 Mar 2020 15:50:56 +0000 (16:50 +0100)]
amdgpu: increase cpu_map_count storage size

Mesa expects to be able to map the same buffer, without unmapping it.
This leads to problem on long-running program.

On the other hand, libdrm uses cpu_map_count as a refcount and expects
its value to decrease so it can unmap buffers.

The previoulsy proprosed fix (https://patchwork.freedesktop.org/patch/258005/)
stopped increased the counter when it went past INT_MAX.

This commit instead proposes to use a larger type to store cpu_map_count.
The outcome is the same: long running apps will not crash, only the
implementation differs.

Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1423
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>