OSDN Git Service

android-x86/external-libdrm.git
7 years agoheaders: the uint*_t vs. __u* discrepancy in amdgpu_drm is fixed
Nicolai Hähnle [Mon, 3 Apr 2017 08:23:03 +0000 (10:23 +0200)]
headers: the uint*_t vs. __u* discrepancy in amdgpu_drm is fixed

This was already done in commit 3dc002df3e5 ("amdgpu: sync amdgpu_drm.h
with kernel 4.11-rc2"), now update the README accordingly.

Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoheaders: sync amdgpu_drm.h from airlied/drm-next
Nicolai Hähnle [Mon, 3 Apr 2017 08:22:59 +0000 (10:22 +0200)]
headers: sync amdgpu_drm.h from airlied/drm-next

Changes include: PRT and preemption flags, sensor info, and some more
changes for Vega10.

Generated using make headers_install from airlied/drm-next commit
320d8c3d38739fa8e31a076b86cbdafcf8897d5e.

Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoamdgpu: add amdgpu_bo_va_op_raw
Nicolai Hähnle [Wed, 8 Feb 2017 12:02:56 +0000 (13:02 +0100)]
amdgpu: add amdgpu_bo_va_op_raw

This variant allows the caller full control over flags and size, and
allows passing a NULL bo (for PRT support).

Cc: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Cc: Jerry Zhang <Jerry.Zhang@amd.com>
Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
7 years agoetnaviv: remove struct etna_specs
Christian Gmeiner [Sun, 26 Mar 2017 13:57:28 +0000 (15:57 +0200)]
etnaviv: remove struct etna_specs

There is no need to cache spec values directly as library
users will cache them anyway.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
7 years agoconfigure.ac: bump version for release
Marek Olšák [Wed, 29 Mar 2017 18:06:22 +0000 (20:06 +0200)]
configure.ac: bump version for release

7 years agoamdgpu_drm: add AMDGPU_HW_IP_UVD_ENC
Leo Liu [Thu, 23 Mar 2017 14:43:40 +0000 (10:43 -0400)]
amdgpu_drm: add AMDGPU_HW_IP_UVD_ENC

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
7 years agoamdgpu: stop reading CC_RB_BACKEND_DISABLE on Vega10
Christian König [Mon, 27 Mar 2017 13:44:14 +0000 (15:44 +0200)]
amdgpu: stop reading CC_RB_BACKEND_DISABLE on Vega10

Follow up to 'drm: don't access deprecated register on Vega10'.

The same information is available in enabled_rb_pipes_mask and reading that
register can cause GRBM bus problems.

Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
7 years agotests/amdgpu: add Polaris12 support for cs test
Junwei Zhang [Tue, 20 Dec 2016 01:52:32 +0000 (09:52 +0800)]
tests/amdgpu: add Polaris12 support for cs test

Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
7 years agotests/amdgpu: add vce unit test support for vega10
Leo Liu [Tue, 13 Dec 2016 20:24:05 +0000 (15:24 -0500)]
tests/amdgpu: add vce unit test support for vega10

swizzle mode needs reference and input picture luma and
chroma pitch aligned with 256

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
7 years agotests/amdgpu: add uvd unit test support for vega10
Leo Liu [Mon, 5 Dec 2016 16:18:09 +0000 (11:18 -0500)]
tests/amdgpu: add uvd unit test support for vega10

Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
7 years agotests/amdgpu: fix the count number for vega10
Huang Rui [Wed, 9 Nov 2016 03:28:45 +0000 (11:28 +0800)]
tests/amdgpu: fix the count number for vega10

Signed-off-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
7 years agoamdgpu: don't read registers not present on Vega10
Huang Rui [Tue, 8 Nov 2016 06:00:45 +0000 (14:00 +0800)]
amdgpu: don't read registers not present on Vega10

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
7 years agoamdgpu: update amdgpu_drm.h for Vega10
Marek Olšák [Tue, 21 Mar 2017 19:14:45 +0000 (20:14 +0100)]
amdgpu: update amdgpu_drm.h for Vega10

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
7 years agoamdgpu: sync amdgpu_drm.h with kernel 4.11-rc2
Marek Olšák [Tue, 21 Mar 2017 19:31:53 +0000 (20:31 +0100)]
amdgpu: sync amdgpu_drm.h with kernel 4.11-rc2

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
7 years agofreedreno: fix device close issues
Rob Clark [Thu, 23 Mar 2017 18:58:38 +0000 (14:58 -0400)]
freedreno: fix device close issues

Move closing the fd to after subclass ->destroy() (since it might want
to delete gem bo's, etc), and actually free() the fd_device object.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
7 years agofreedreno: valgrind support
Rob Clark [Tue, 21 Mar 2017 23:44:57 +0000 (19:44 -0400)]
freedreno: valgrind support

Signed-off-by: Rob Clark <robclark@freedesktop.org>
7 years agoconfigure: Explicitly check for pkg-config at the top level
Adam Jackson [Thu, 23 Mar 2017 16:07:03 +0000 (12:07 -0400)]
configure: Explicitly check for pkg-config at the top level

If you don't, then the first place the m4 expands is:

    if test "x$INTEL" != "xno"; then
    PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
    fi

So on non-Intel architectures we never find it in the path, and all
subsequent PKG_CHECK_MODULESes fail. Boo autoconf.

Signed-off-by: Adam Jackson <ajax@redhat.com>
7 years agofreedreno: fix potential use-after-free on a5xx+
Rob Clark [Tue, 21 Mar 2017 14:01:02 +0000 (10:01 -0400)]
freedreno: fix potential use-after-free on a5xx+

Something that valgrind spotted:

==8441== Invalid read of size 4
==8441==    at 0x5DEE168: msm_ringbuffer_emit_reloc (msm_ringbuffer.c:506)
==8441==    by 0x5B48F0F: OUT_RELOCW (freedreno_util.h:241)
==8441==    by 0x5B48F0F: fd5_emit_blit (fd5_emit.h:131)
==8441==    by 0x5B48F0F: emit_gmem2mem_surf.isra.12 (fd5_gmem.c:450)
==8441==    by 0x5B4910F: fd5_emit_tile_gmem2mem (fd5_gmem.c:477)
==8441==    by 0x5B14943: render_tiles (freedreno_gmem.c:342)
==8441==    by 0x5B14943: fd_gmem_render_tiles (freedreno_gmem.c:416)
==8441==    by 0x5B0FBA7: batch_flush (freedreno_batch.c:281)
==8441==    by 0x5B0FBA7: fd_batch_flush (freedreno_batch.c:306)
==8441==    by 0x5B11FE7: fd_context_flush (freedreno_context.c:52)
==8441==    by 0x58AD783: st_glFlush (st_cb_flush.c:121)
==8441==    by 0x5751EE7: _mesa_make_current (context.c:1652)
==8441==    by 0x58E6A97: st_api_make_current (st_manager.c:811)
==8441==    by 0x5A2CE43: dri_unbind_context (dri_context.c:207)
==8441==    by 0x5A2C77F: driUnbindContext (dri_util.c:589)
==8441==    by 0x4AC8A67: MakeContextCurrent (glxcurrent.c:214)
==8441==  Address 0x6f5eb1c is 204 bytes inside a block of size 240 free'd
==8441==    at 0x4868F44: realloc (vg_replace_malloc.c:785)
==8441==    by 0x5DEE143: msm_ringbuffer_emit_reloc (msm_ringbuffer.c:502)
==8441==    by 0x5B48F0F: OUT_RELOCW (freedreno_util.h:241)
==8441==    by 0x5B48F0F: fd5_emit_blit (fd5_emit.h:131)
==8441==    by 0x5B48F0F: emit_gmem2mem_surf.isra.12 (fd5_gmem.c:450)
==8441==    by 0x5B4910F: fd5_emit_tile_gmem2mem (fd5_gmem.c:477)
==8441==    by 0x5B14943: render_tiles (freedreno_gmem.c:342)
==8441==    by 0x5B14943: fd_gmem_render_tiles (freedreno_gmem.c:416)
==8441==    by 0x5B0FBA7: batch_flush (freedreno_batch.c:281)
==8441==    by 0x5B0FBA7: fd_batch_flush (freedreno_batch.c:306)
==8441==    by 0x5B11FE7: fd_context_flush (freedreno_context.c:52)
==8441==    by 0x58AD783: st_glFlush (st_cb_flush.c:121)
==8441==    by 0x5751EE7: _mesa_make_current (context.c:1652)
==8441==    by 0x58E6A97: st_api_make_current (st_manager.c:811)
==8441==    by 0x5A2CE43: dri_unbind_context (dri_context.c:207)
==8441==    by 0x5A2C77F: driUnbindContext (dri_util.c:589)
==8441==  Block was alloc'd at
==8441==    at 0x4868F44: realloc (vg_replace_malloc.c:785)
==8441==    by 0x5DEE08B: msm_ringbuffer_emit_reloc (msm_ringbuffer.c:481)
==8441==    by 0x5B48F0F: OUT_RELOCW (freedreno_util.h:241)
==8441==    by 0x5B48F0F: fd5_emit_blit (fd5_emit.h:131)
==8441==    by 0x5B48F0F: emit_gmem2mem_surf.isra.12 (fd5_gmem.c:450)
==8441==    by 0x5B4909F: fd5_emit_tile_gmem2mem (fd5_gmem.c:465)
==8441==    by 0x5B14943: render_tiles (freedreno_gmem.c:342)
==8441==    by 0x5B14943: fd_gmem_render_tiles (freedreno_gmem.c:416)
==8441==    by 0x5B0FBA7: batch_flush (freedreno_batch.c:281)
==8441==    by 0x5B0FBA7: fd_batch_flush (freedreno_batch.c:306)
==8441==    by 0x5B11FE7: fd_context_flush (freedreno_context.c:52)
==8441==    by 0x58AD783: st_glFlush (st_cb_flush.c:121)
==8441==    by 0x5751EE7: _mesa_make_current (context.c:1652)
==8441==    by 0x58E6A97: st_api_make_current (st_manager.c:811)
==8441==    by 0x5A2CE43: dri_unbind_context (dri_context.c:207)
==8441==    by 0x5A2C77F: driUnbindContext (dri_util.c:589)

Signed-off-by: Rob Clark <robclark@freedesktop.org>
7 years agointel: Add handle to hashtable before freeing along an error path
Chris Wilson [Wed, 8 Mar 2017 21:00:59 +0000 (21:00 +0000)]
intel: Add handle to hashtable before freeing along an error path

drm_intel_gem_bo_free() unconditionally attempts to remove the handle
from the hashtable. This goes horribly wrong if we haven't already added
the bo to the hashtable.

Reported-by: Michael Thayer <michael.thayer@oracle.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
7 years agointel: avoid null pointer dereference
Thomas Hindoe Paaboel Andersen [Thu, 2 Feb 2017 22:57:29 +0000 (23:57 +0100)]
intel: avoid null pointer dereference

Move the dereference after the null check.
Fixes: 028715ee707469189505 ("intel: Avoid the need for most overflow
                              checks by using a scratch page.")
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoautogen.sh: run git commands in the (potentially) git dir
Eric Engestrom [Fri, 3 Feb 2017 18:21:10 +0000 (18:21 +0000)]
autogen.sh: run git commands in the (potentially) git dir

If the build dir is outside of the git dir, the order matters :)

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoautogen.sh: don't print old git-config values
Eric Engestrom [Fri, 3 Feb 2017 18:21:09 +0000 (18:21 +0000)]
autogen.sh: don't print old git-config values

Old values are of no interest to the user, so let's reduce the spam
a bit by hiding those.

Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
Reviewed-by: Chad Versace <chadversary@chromium.org>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoheaders: add explicit note against local changes in the README
Emil Velikov [Tue, 14 Feb 2017 01:34:14 +0000 (01:34 +0000)]
headers: add explicit note against local changes in the README

Even with the step by step guide people sometimes get confused.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agointel: Move 48b support to bo_gem->kflags
Chris Wilson [Sat, 11 Feb 2017 11:04:50 +0000 (11:04 +0000)]
intel: Move 48b support to bo_gem->kflags

Another boolean that can be set and used along side the other execobject
flags.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
7 years agointel: Move is_softpin to obj->kflags
Chris Wilson [Sat, 28 Jan 2017 16:32:23 +0000 (16:32 +0000)]
intel: Move is_softpin to obj->kflags

Use obj->kflags to set EXEC_OBJECT_PINNED when the object is softpinned,
and so remember to clear the softpin status when the object is freed
(and reused).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
7 years agoamdgpu: vamgr can be a struct instead of a pointer
Alex Xie [Sat, 28 Jan 2017 19:50:44 +0000 (21:50 +0200)]
amdgpu: vamgr can be a struct instead of a pointer

vamgr is an integral part of amdgpu_device. We don't need to calloc and free it.
This can save CPU time, reduce heap fragmentation.

Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Alex Xie <AlexBin.Xie@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
[Grazvydas Ignotas: rebase, correct a typo in commit message]
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
7 years agoamdgpu: vamgr_32 can be a struct instead of a pointer
Alex Xie [Sat, 28 Jan 2017 19:50:36 +0000 (21:50 +0200)]
amdgpu: vamgr_32 can be a struct instead of a pointer

vamgr_32 is an integral part of amdgpu_device. We don't need to calloc and free it.
This can save CPU time, reduce heap fragmentation.

Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Alex Xie <AlexBin.Xie@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
[Grazvydas Ignotas: rebase, correct a typo in commit message]
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
7 years agoamdgpu: Free/uninit vamgr_32 in theoretically correct order
Alex Xie [Sat, 28 Jan 2017 19:49:30 +0000 (21:49 +0200)]
amdgpu: Free/uninit vamgr_32 in theoretically correct order

vamgr_32 is a region inside general VAM range. It is better to free and
deinitialize it before general VAM range.

Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Alex Xie <AlexBin.Xie@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
7 years agoRemove unused tests/drmstat.c
Emil Velikov [Wed, 1 Feb 2017 15:29:38 +0000 (15:29 +0000)]
Remove unused tests/drmstat.c

Earlier commit removed all the legacy 'tests' but a file was left
danglig.

Fixes: 0c80fddd1d0 "tests: remove useless legacy tests"
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reported-by: Andreas Boll <andreas.boll.dev@gmail.com>
Reviewed-by: Andreas Boll <andreas.boll.dev@gmail.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
7 years agoBump version for 2.4.75 release
Chad Versace [Fri, 27 Jan 2017 20:18:00 +0000 (12:18 -0800)]
Bump version for 2.4.75 release

For Intel explicit fencing.

Signed-off-by: Chad Versace <chadversary@chromium.org>
7 years agointel: fix make distcheck
Dave Airlie [Sat, 28 Jan 2017 01:13:52 +0000 (11:13 +1000)]
intel: fix make distcheck

Signed-off-by: Dave Airlie <airlied@redhat.com>
7 years agoRevert "Bump version for 2.4.75 release"
Dave Airlie [Sat, 28 Jan 2017 01:13:40 +0000 (11:13 +1000)]
Revert "Bump version for 2.4.75 release"

This reverts commit 736970c49beb9de7ab549f076069d52f4e7bc6f2.

7 years agoBump version for 2.4.75 release
Chad Versace [Fri, 27 Jan 2017 20:18:00 +0000 (12:18 -0800)]
Bump version for 2.4.75 release

For Intel explicit fencing.

Signed-off-by: Chad Versace <chadversary@chromium.org>
7 years agointel: Export a function to re-enable implicit synchronisation
Chris Wilson [Fri, 27 Jan 2017 20:25:04 +0000 (20:25 +0000)]
intel: Export a function to re-enable implicit synchronisation

Implicit synchronisation is the default behaviour of the kernel when
rendering with an execobject. It may be disabled with
drm_intel_gem_bo_disable_implicit_sync(), and then to restore it use
drm_intel_gem_bo_enable_implicit_sync().

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
7 years agointel: Clear execobject flags before preserving object in reuse cache
Chris Wilson [Fri, 27 Jan 2017 20:20:30 +0000 (20:20 +0000)]
intel: Clear execobject flags before preserving object in reuse cache

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
7 years agointel: Support passing of explicit fencing from execbuf
Chris Wilson [Sat, 20 Aug 2016 11:38:46 +0000 (12:38 +0100)]
intel: Support passing of explicit fencing from execbuf

Allow the caller to pass in an fd to an array of fences to control
serialisation of the execbuf in the kernel and on the GPU, and in return
allow creation of a fence fd for signaling the completion (and flushing)
of the batch. When the returned fence is signaled, all writes to the
buffers inside the batch will be complete and coherent from the cpu, or
other consumers. The return fence is a sync_file object and can be
passed to other users (such as atomic modesetting, or other drivers).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
7 years agointel: Allow the client to control implicit synchronisation
Chris Wilson [Sat, 20 Aug 2016 17:36:42 +0000 (18:36 +0100)]
intel: Allow the client to control implicit synchronisation

The kernel allows implicit synchronisation to be disabled on individual
buffers. Use at your own risk.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
7 years agoImport uapi/i915_drm.h from v4.10-rc5-950-g152d5750dda9
Chris Wilson [Fri, 27 Jan 2017 10:39:10 +0000 (10:39 +0000)]
Import uapi/i915_drm.h from v4.10-rc5-950-g152d5750dda9

To sync with "drm/i915: Support explicit fencing for execbuf"

7 years agoamdgpu: A new option to run tests on render node
Alex Xie [Tue, 24 Jan 2017 22:29:52 +0000 (17:29 -0500)]
amdgpu: A new option to run tests on render node

Tested:
1. As root, tests passed on primary.
2. As root, tests passed on render node.
   BO export/import test was skipped
3. As non-privileged user, tests failed on primary as expected.
4. As non-privileged user, tests passed on render node.
   BO export/import test was skipped

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Alex Xie <AlexBin.Xie@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
7 years agoamdgpu: A new option to choose which device to run most tests
Alex Xie [Tue, 24 Jan 2017 22:29:51 +0000 (17:29 -0500)]
amdgpu: A new option to choose which device to run most tests

This can be used to test multiple GPUs

v2: Use PCI bus ID and optional PCI device ID to choose device
    Add an option to display information of AMDGPU devices

Tested:
   ./amdgpu_test -p
   ./amdgpu_test
   ./amdgpu_test -b 1 #fail as expected
   ./amdgpu_test -b 6 #pass
   ./amdgpu_test -b -d 1 #fail as expected
   ./amdgpu_test -b -d 0 #pass

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Alex Xie <AlexBin.Xie@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
7 years agoamdgpu: verify the tested device
Alex Xie [Tue, 24 Jan 2017 22:29:50 +0000 (17:29 -0500)]
amdgpu: verify the tested device

Verify the vender ID and driver name.
Open all AMDGPU devices.
Provide an option to open render node.

Tested as root: PASS
Tested as non-privileged user:
All tests failed as expected

v2: Return value in the ene of function amdgpu_open_devices.
    Check the return value of amdgpu_open_devices.
    amdgpu_test is not for USB device for the time being.
    Get the name of node from function drmGetDevices2.
    Drop the legacy drmAvailable() from the test.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Alex Xie <AlexBin.Xie@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
7 years agotests: Use -pthread in CFLAGS instead of -lpthread
Tomasz Figa [Fri, 27 Jan 2017 07:21:19 +0000 (16:21 +0900)]
tests: Use -pthread in CFLAGS instead of -lpthread

-lpthread is not always a valid flag to pull pthread support, especially
on Android it will fail to link due to a missing libpthread.so. The more
generic way to build-in pthread support is to use the -pthread CFLAG, so
let's use it instead.

Signed-off-by: Tomasz Figa <tfiga@chromium.org>
[Emil Velikov: rebase on top of previous commit]
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agotests/nouveau: automake: fold C and CPP flags
Emil Velikov [Fri, 27 Jan 2017 16:15:45 +0000 (16:15 +0000)]
tests/nouveau: automake: fold C and CPP flags

Since we don't have any C++ souces this should be a no-op. Folding the
two seems to be the common practise throughout the repo.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agoandroid: silence ~550 warnings
Emil Velikov [Sun, 22 Jan 2017 17:43:13 +0000 (17:43 +0000)]
android: silence ~550 warnings

Analogous to the autoconf build add the following to the build

   -Wno-unused-parameter
   -Wno-missing-field-initializers

Cc: Chih-Wei Huang <cwhuang@android-x86.org>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
7 years agoandroid: add note about command line defines and config.h
Emil Velikov [Sun, 22 Jan 2017 17:06:05 +0000 (17:06 +0000)]
android: add note about command line defines and config.h

Cc: Chih-Wei Huang <cwhuang@android-x86.org>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
7 years agoandroid: add HAVE_VISIBILITY to Android.common.mk
Emil Velikov [Sun, 22 Jan 2017 17:03:07 +0000 (17:03 +0000)]
android: add HAVE_VISIBILITY to Android.common.mk

Currently only libdrm.so properly annotates its internal/private
symbols. By setting the macro every binary produced will be in the same
boat. This should give is smaller and more secure files

Cc: Chih-Wei Huang <cwhuang@android-x86.org>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
7 years agoandroid: introduce Android.common.mk to reduce boilerplate
Emil Velikov [Sun, 22 Jan 2017 16:59:42 +0000 (16:59 +0000)]
android: introduce Android.common.mk to reduce boilerplate

... across the makefiles. Currently this isn't much but that will change
shortly.

As an added bonus this fixes all present and future cases where we've
forgotten to strip out the headers from LOCAL_SRC_FILES.

In a couple of cases (the tests) we start setting
LOCAL_EXPORT_C_INCLUDE_DIRS, which shouldn't be an issue.

Cc: Chih-Wei Huang <cwhuang@android-x86.org>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
7 years agoandroid: remove LOCAL_MODULE_TAGS := optional tag
Emil Velikov [Sun, 22 Jan 2017 16:16:27 +0000 (16:16 +0000)]
android: remove LOCAL_MODULE_TAGS := optional tag

Seems to be the default option since ~2009 with commit 2f31293ba78 "auto
import from //branches/cupcake/...@137197". Fleshed out from a larger
commit in the AOSP repo/fork.

Cc: Dan Willemsen <dwillemsen@google.com>
Cc: Chih-Wei Huang <cwhuang@android-x86.org>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
7 years agoxf86drm: Reuse sysfs_uevent_get()
Thierry Reding [Wed, 18 Jan 2017 07:29:23 +0000 (08:29 +0100)]
xf86drm: Reuse sysfs_uevent_get()

Recent patches for USB, platform and host1x bus support introduced the
sysfs_uevent_get() function that provides a generic way of parsing the
sysfs uevent file that is associated with each device in Linux.

Open-coded variants of this still exist in other places, so make those
reuse the new function to remove some code duplication.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agotests/drmdevice: Add USB, platform and host1x support
Thierry Reding [Thu, 12 Jan 2017 21:07:28 +0000 (22:07 +0100)]
tests/drmdevice: Add USB, platform and host1x support

Extend the drmdevice test with support for the newly added USB, platform
and host1x busses.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agoxf86drm: Add platform and host1x bus support
Thierry Reding [Wed, 21 Dec 2016 16:59:04 +0000 (17:59 +0100)]
xf86drm: Add platform and host1x bus support

ARM SoCs usually have their DRM/KMS devices on the platform bus, so add
support for that to enable these devices to be used with the drmDevice
infrastructure.

NVIDIA Tegra SoCs have an additional level in the hierarchy and DRM/KMS
devices can also be on the host1x bus. This is mostly equivalent to the
platform bus.

v4:
- continue on error to process platform or host1x device

v3:
- guard Linux-specific sysfs parsing code with #ifdef __linux__

v2:
- be careful not to overflow the full name
- read compatible strings into device info

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agoxf86drm: Add USB support
Thierry Reding [Wed, 21 Dec 2016 23:39:36 +0000 (00:39 +0100)]
xf86drm: Add USB support

Allow DRM/KMS devices hosted on USB to be detected by the drmDevice
infrastructure.

v4:
- continue on error to process USB devices

v3:
- guard Linux-specific sysfs parsing code with #ifdef __linux__

v2:
- make sysfs_uevent_get() more flexible using a format string

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
7 years agoxf86drm: Factor out drmDeviceAlloc()
Thierry Reding [Wed, 21 Dec 2016 16:54:48 +0000 (17:54 +0100)]
xf86drm: Factor out drmDeviceAlloc()

Subsequent patches will add support for other bus types to drmDevice and
they will duplicate a lot of the code to allocate a drmDevice. Factor
out the common code so it can be reused.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agotests/util: Add support for meson module
Neil Armstrong [Wed, 18 Jan 2017 13:59:21 +0000 (14:59 +0100)]
tests/util: Add support for meson module

Add support for Amlogic Meson DRM driver merged for Linux 4.10.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agoxf86drm: Fix type-punned pointer build warning
Thierry Reding [Mon, 13 Apr 2015 09:36:59 +0000 (11:36 +0200)]
xf86drm: Fix type-punned pointer build warning

      CC       libdrm_la-xf86drmMode.lo
    ../xf86drmMode.c: In function 'drmHandleEvent':
    ../xf86drmMode.c:854:15: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
       e = (struct drm_event *)(&buffer[i]);
                   ^

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99350
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agoxf86drmMode.h: Add DisplayPort MST and DPI encoders/connectors
Thierry Reding [Wed, 17 Dec 2014 10:53:31 +0000 (11:53 +0100)]
xf86drmMode.h: Add DisplayPort MST and DPI encoders/connectors

This brings xf86drmMode.h in sync with include/drm/drm_mode.h.
Eventually we really should only have a single set of definitions rather
than duplicating this in two files.

v2: add DPI encoder and connector types introduced in Linux v4.7

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agoxf86drmMode.h: Use consistent padding
Thierry Reding [Wed, 17 Dec 2014 10:52:40 +0000 (11:52 +0100)]
xf86drmMode.h: Use consistent padding

Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agoREADME: Fix grammar
Fabio Estevam [Mon, 16 Jan 2017 01:09:27 +0000 (23:09 -0200)]
README: Fix grammar

Fix two grammar issues:

- "standard  autotools  packages ---> "standard  autotools  package"
- "If you are install" ---> "If you are installing"

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agoxf86drm: fix null termination of string buffer
Taro Yamada [Tue, 13 Dec 2016 11:18:28 +0000 (20:18 +0900)]
xf86drm: fix null termination of string buffer

The string written to the buffer by read() is not null-terminated,
but currently drmParsePciBusInfo() places null character only at the end of the buffer, not at the end of the
string.
As a result, the string passed to sscanf() contains an uninitialized value.

This patch changes to places null character at the end of the string.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99045
Signed-off-by: Taro Yamada <archer_ame@yahoo.co.jp>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agointel: update global_name before HASH_ADD
Dongwon Kim [Sat, 14 Jan 2017 00:07:00 +0000 (16:07 -0800)]
intel: update global_name before HASH_ADD

bo->global_name should be updated first before a hash value
for the entry is calculated with it by HASH_ADD macro.

Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
7 years agoamdgpu: Provide more specific error message if non-privileged user runs amdgpu_test
Alex Xie [Thu, 12 Jan 2017 21:14:15 +0000 (16:14 -0500)]
amdgpu: Provide more specific error message if non-privileged user runs amdgpu_test

Before this change, the error message is:
"WARNING - Suite initialization failed..."
People might think this is a driver problem.

Tested with non-privileged user. Now the error message is like:
...
Error:Permission denied. Hint:Try to run this test program as root.
WARNING - Suite initialization failed for 'Basic Tests'.
...

Tested as root with no regression.

amdgpu_test uses CUnit. CUnit outputs warning message to stdout.
To be consistent, this commit outputs error message to stdout.

v2: Use strerror instead of %m. %m is a GNU C Library extension.
v3: Limit code and commit message within 80 characters per line.
    Update commit message.
    Remove a space before starting parenthesis in function call.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Xie <AlexBin.Xie@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
7 years agoAdd .editorconfig
Thierry Reding [Wed, 21 Dec 2016 17:08:29 +0000 (18:08 +0100)]
Add .editorconfig

This encodes the indentation style for libdrm and can be used with
various editors. See http://editorconfig.org for instructions.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agoxf86drm: Fix indentation
Thierry Reding [Wed, 21 Dec 2016 17:00:52 +0000 (18:00 +0100)]
xf86drm: Fix indentation

libdrm uses spaces for indentation. Fix the two inconsistent lines in
this file.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agoxf86drm: don't fatal on per device error in drmGetDevice[s]2
Jonathan Gray [Sat, 17 Dec 2016 05:09:53 +0000 (16:09 +1100)]
xf86drm: don't fatal on per device error in drmGetDevice[s]2

When iterating over all the device nodes if drmProcessPciDevice()
returned an error for any node the function would return an error,
ignoring any valid nodes.

The result of this on OpenBSD where drmProcessPciDevice() results in
device nodes being opened to issue ioctls to get pci data
was that data obtained from /dev/drm0 would be ignored if /dev/drm1
could not be opened.

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
7 years agoxf86drm: add a non-sysfs version of drmGetDeviceNameFromFd2
Jonathan Gray [Sat, 17 Dec 2016 05:09:52 +0000 (16:09 +1100)]
xf86drm: add a non-sysfs version of drmGetDeviceNameFromFd2

Implement a generic drmGetDeviceNameFromFd2() to use on non-linux
systems without sysfs.

v2: remove min < base test as requested by Emil

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
7 years agoxf86drm: adjust device node path for minor base
Jonathan Gray [Sat, 17 Dec 2016 05:09:51 +0000 (16:09 +1100)]
xf86drm: adjust device node path for minor base

When constructing a path to a device node the minor number retrieved
from fstat needs to have the offset of the node type subtracted from it.
Control and render node types have the same major as the primary node
but each has their own block of minor types at fixed offsets.

v2: remove min < base test as requested by Emil

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
7 years agomodetest: Allow the user to specify the plane ID
Ville Syrjälä [Tue, 19 Jul 2016 16:47:13 +0000 (19:47 +0300)]
modetest: Allow the user to specify the plane ID

Devices can have multiple planes, so allow the user to choose between
them.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
7 years agolibkms/exynos: fix memory leak in error path
Seung-Woo Kim [Mon, 14 Nov 2016 05:31:34 +0000 (14:31 +0900)]
libkms/exynos: fix memory leak in error path

This patch fixes memory leak in error path of exynos_bo_create().

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoautogen.sh: set format.subjectPrefix and sendemail.to if needed
Emil Velikov [Mon, 12 Dec 2016 17:50:46 +0000 (17:50 +0000)]
autogen.sh: set format.subjectPrefix and sendemail.to if needed

Just set the rules automatically rather than asking each contributor to
update thing locally.

v2: Silence errors if run outside of git repo. (Eric)

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
7 years agoxf86drm: fix sign-compare warning
Grazvydas Ignotas [Sun, 11 Dec 2016 18:03:56 +0000 (20:03 +0200)]
xf86drm: fix sign-compare warning

xf86drm.c:3601:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while (expected < sizeof(match)) {
                     ^

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoxf86drm: implement an OpenBSD specific drmGetDevice2
Jonathan Gray [Thu, 1 Dec 2016 04:18:43 +0000 (15:18 +1100)]
xf86drm: implement an OpenBSD specific drmGetDevice2

DRI devices on OpenBSD are not in their own directory.  They reside in
/dev with a large number of statically generated /dev nodes.

Avoid stat'ing all of /dev on OpenBSD by implementing this custom path.

v2:
   - use drmGetMinorType to get node type
   - adapt to drmProcessPciDevice changes
   - verify drmParseSubsystemType type is PCI
   - add a comment describing why this was added

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agoxf86drm: implement drmParsePciBusInfo for OpenBSD
Jonathan Gray [Thu, 1 Dec 2016 04:18:42 +0000 (15:18 +1100)]
xf86drm: implement drmParsePciBusInfo for OpenBSD

Implement drmParsePciBusInfo for OpenBSD by using the new
DRM_IOCTL_GET_PCIINFO ioctl.

v2: use drmGetMinorType to get node type instead of always
    using DRM_NODE_PRIMARY.

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agoxf86drm: implement drmParsePciDeviceInfo for OpenBSD
Jonathan Gray [Thu, 1 Dec 2016 04:18:41 +0000 (15:18 +1100)]
xf86drm: implement drmParsePciDeviceInfo for OpenBSD

Implement drmParsePciDeviceInfo for OpenBSD by using the new
DRM_IOCTL_GET_PCIINFO ioctl.

v2: adapt to drmParsePciDeviceInfo changes and use drmOpenMinor

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agoxf86drm: implement drmParseSubsystemType for OpenBSD
Jonathan Gray [Thu, 1 Dec 2016 04:18:40 +0000 (15:18 +1100)]
xf86drm: implement drmParseSubsystemType for OpenBSD

Implement drmParseSubsystemType for OpenBSD by always returning
DRM_BUS_PCI.  No non-pci drm drivers are in the kernel and this is
unlikely to change anytime soon as the existing ones aren't permissively
licensed.

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agoxf86drm: implement drmGetMinorNameForFD for non-sysfs
Jonathan Gray [Thu, 1 Dec 2016 04:18:39 +0000 (15:18 +1100)]
xf86drm: implement drmGetMinorNameForFD for non-sysfs

Implement drmGetMinorNameForFD for systems without sysfs by
adapting drm_get_device_name_for_fd() from the Mesa loader.

v2: use type parameter to select dev name instead of always
    using DRM_DEV_NAME

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agotests: automake: reorder makefile contents
Emil Velikov [Wed, 30 Nov 2016 19:04:33 +0000 (19:04 +0000)]
tests: automake: reorder makefile contents

Purely cosmetic changes.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agoconfigure: remove libudev checks
Emil Velikov [Wed, 30 Nov 2016 18:43:18 +0000 (18:43 +0000)]
configure: remove libudev checks

Library is no longer used.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agokms: remove commented out libudev code
Emil Velikov [Wed, 30 Nov 2016 18:39:07 +0000 (18:39 +0000)]
kms: remove commented out libudev code

Cc: Jakob Bornecrantz <wallbraker@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agotests: remove useless legacy tests
Emil Velikov [Wed, 30 Nov 2016 18:23:51 +0000 (18:23 +0000)]
tests: remove useless legacy tests

All of these 'tests' cover UMS functionality which is neither being
worked on or actively maintained.

The only cases where developers touch UMS code is to unwrap it from the
KMS codepaths and ensure that those are secure.

Anyone who feels strong about having these around can revive them, but
in all honestly do consider _seriously_ what you're doing ;-)

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
7 years agotests/drmdevice: use drmGetDevice[s]2
Emil Velikov [Wed, 30 Nov 2016 19:13:04 +0000 (19:13 +0000)]
tests/drmdevice: use drmGetDevice[s]2

Pass along DRM_DEVICE_GET_PCI_REVISION only when the individual nodes
are opened and update the printed messages accordingly.

v2: Attribute for the flag rename, call drmGetDevices2 w/o the flag.

v3: Keep drmParsePciDeviceInfo() hunk in previous patch.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
7 years agoxf86drm: introduce drmGetDevice[s]2
Emil Velikov [Wed, 30 Nov 2016 17:24:21 +0000 (17:24 +0000)]
xf86drm: introduce drmGetDevice[s]2

Relative to the original version, here one can provide a flags bitmask.
Currently only DRM_DEVICE_IGNORE_PCI_REVISION is supported.

Implementation detail:
If it's set, we will only parse the separate sysfs files and we won't
touch the config one. The latter awakes the device (causing delays)
which is the core reason why this API was introduced.

v2:
 - Initialize revision to 0xff if it's unread.
 - Change DRM_DEVICE_IGNORE_PCI_REVISION to DRM_DEVICE_GET_PCI_REVISION
 - Add explicit note that drmGetDevice[s]2 does not retrieve the
revision by default.

v3:
 - Correctly fold drmParsePciDeviceInfo() hunk in this patch.

Cc: Michel Dänzer <michel@daenzer.net>
Cc: Nicolai Hähnle <nhaehnle@gmail.com>
Cc: Mauro Santos <registo.mailling@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98502
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
7 years agoxf86drm: parse the separate sysfs files for vendor... info
Emil Velikov [Tue, 1 Nov 2016 18:04:06 +0000 (18:04 +0000)]
xf86drm: parse the separate sysfs files for vendor... info

Up-to recently (patch should land in 4.10) the kernel did not expose the
PCI device revision field as a separate sysfs file.

Thus one needed too parse the config file to retrieve it. This in
itself wakes up the device, which in some cases can be quite slow.

To avoid that, just check for the separate files and fall-back to the
original if kernel is not new enough.

v3: rework alongside drmGetDevice[s]2

Cc: Michel Dänzer <michel@daenzer.net>
Cc: Nicolai Hähnle <nhaehnle@gmail.com>
Cc: Mauro Santos <registo.mailling@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98502
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
7 years agoxf86drm: add plumbing to not retrieve PCI device revision
Emil Velikov [Wed, 30 Nov 2016 17:13:51 +0000 (17:13 +0000)]
xf86drm: add plumbing to not retrieve PCI device revision

Will be used with the drmGetDevice[s]2 API.

Cc: Michel Dänzer <michel@daenzer.net>
Cc: Nicolai Hähnle <nhaehnle@gmail.com>
Cc: Mauro Santos <registo.mailling@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98502
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoxf86drm: use maj/min in drmParsePciDeviceInfo()
Emil Velikov [Wed, 30 Nov 2016 16:41:27 +0000 (16:41 +0000)]
xf86drm: use maj/min in drmParsePciDeviceInfo()

Be consistent with drmParsePciBusInfo() and use solely the device
major/minor pair.

Cc: Jonathan Gray <jsg@jsg.id.au>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
7 years agoBump version for release
Robert Bragg [Tue, 29 Nov 2016 10:42:38 +0000 (10:42 +0000)]
Bump version for release

7 years agovc4: Add new GETPARAMs that have been merged to drm-next.
Eric Anholt [Thu, 17 Nov 2016 01:06:10 +0000 (17:06 -0800)]
vc4: Add new GETPARAMs that have been merged to drm-next.

Signed-off-by: Eric Anholt <eric@anholt.net>
7 years agofreedreno: 64bit support
Rob Clark [Wed, 9 Nov 2016 14:02:09 +0000 (09:02 -0500)]
freedreno: 64bit support

a5xx and later are 64bit devices.. make reloc's handle that.  A new
public symbol is introduced to avoid silent problems with new mesa and
old libdrm (since on 64b reloc consumes two dwords).

Signed-off-by: Rob Clark <robclark@freedesktop.org>
7 years agoetnaviv: add etna_pipe_wait_ns(..)
Christian Gmeiner [Wed, 23 Nov 2016 21:09:11 +0000 (22:09 +0100)]
etnaviv: add etna_pipe_wait_ns(..)

We need to pass through a timeout parameter to implement
pipe->fence_finish() properly. The new fxn accepts a timeout
in nanoseconds. Simplify etna_pipe_wait(..) by using
etna_pipe_wait_ns(..).

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agoetnaviv: change get_abs_timeout(..) to use ns.
Christian Gmeiner [Wed, 23 Nov 2016 21:02:25 +0000 (22:02 +0100)]
etnaviv: change get_abs_timeout(..) to use ns.

Also update all callers.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agolibdrm: random typo fixes
Grazvydas Ignotas [Sun, 20 Nov 2016 18:25:46 +0000 (20:25 +0200)]
libdrm: random typo fixes

Just some trivial boring typo fixes all over the tree.
READMEs and comments only.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agotests: kms: fix shadowed declaration warning
Grazvydas Ignotas [Sun, 20 Nov 2016 18:25:47 +0000 (20:25 +0200)]
tests: kms: fix shadowed declaration warning

There is no need to maintain the value in the shadowed variable from
what I can see.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agoxf86drm: introduce drmGetDeviceNameFromFd2
Emil Velikov [Thu, 10 Nov 2016 17:26:50 +0000 (17:26 +0000)]
xf86drm: introduce drmGetDeviceNameFromFd2

The original version considered only card devices, while this will pick
the device/node name regardless - card, control, renderD, other...

Current implementation is "linux" specific, in such that it relies on
sysfs/uevent file. At the same time this gives us the flexibility to
support any nodes even future ones, as long as they're within DRM_MAJOR.

Shamelessly copied from mesa, latter by: Gary Wong <gtw@gnu.org>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
7 years agoautomake: make the build less chatty
Emil Velikov [Sat, 12 Nov 2016 20:45:25 +0000 (20:45 +0000)]
automake: make the build less chatty

Having the "Entering|Leaving directory X" messages it not required nor
useful in vast majority of the cases.

One can always have them printed by `make -w' or by overriding the
AM_MAKEFLAGS variable.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
7 years agointel: Add drm_intel_gem_context_get_id to intel-symbols-check
Michel Dänzer [Tue, 22 Nov 2016 06:48:12 +0000 (15:48 +0900)]
intel: Add drm_intel_gem_context_get_id to intel-symbols-check

Fixes make check. Trivial.

7 years agointel: Add a getter for the intel_context ctx_id
Robert Bragg [Mon, 26 Jan 2015 16:11:26 +0000 (16:11 +0000)]
intel: Add a getter for the intel_context ctx_id

Exposing the u32 context ID makes it possible to define new drm kernel
interfaces based on the same IDs that e.g. execbuf uses to identify a
gem context, that aren't themselves abstracted by libdrm but need to be
used by libdrm/drm_intel_context based clients such as (parts of) i-g-t
or Mesa.

For example this can be used to configure an i915-perf stream to collect
metrics for a specific context.

v2: s/drm_intel_gem_context_get_context_id/drm_intel_gem_context_get_id/

Signed-off-by: Robert Bragg <robert@sixbynine.org>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
7 years agoetnaviv: add API to create etna_device from private dup() fd
Christian Gmeiner [Sun, 13 Nov 2016 20:29:22 +0000 (21:29 +0100)]
etnaviv: add API to create etna_device from private dup() fd

Like etna_device_new() but creates it's own private dup() of the fd
which is close()d when the device is finalized.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Acked-by: Eric Anholt <eric@anholt.net>
7 years agoetnaviv: add API to get drm fd from etna_device
Christian Gmeiner [Sun, 13 Nov 2016 20:14:57 +0000 (21:14 +0100)]
etnaviv: add API to get drm fd from etna_device

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Acked-by: Eric Anholt <eric@anholt.net>
7 years agointel: Add Geminilake PCI IDs
Ben Widawsky [Thu, 10 Nov 2016 18:28:02 +0000 (10:28 -0800)]
intel: Add Geminilake PCI IDs

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
7 years agoBump version for release
Emil Velikov [Mon, 14 Nov 2016 19:48:38 +0000 (19:48 +0000)]
Bump version for release

7 years agoxd86drm: read more than 128 bytes of uevent in drmParsePciBusInfo
Emil Velikov [Fri, 11 Nov 2016 19:04:11 +0000 (19:04 +0000)]
xd86drm: read more than 128 bytes of uevent in drmParsePciBusInfo

Some platforms (such as Macs using OF) can have more information in the
uevent file thus reading only the first 128 might not be sufficient.

Bump it to 512, which "should be enough for everybody" ;-)

v2: Use sizeof(data)-1 over hardcoded number (Eric).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98629
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reported-by: Mingcong Bai <jeffbai@aosc.xyz>
Tested-by: Mingcong Bai <jeffbai@aosc.xyz> (v1)
Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>