OSDN Git Service

android-x86/external-libdrm.git
8 years agofreedreno: small refactor for get_param
Rob Clark [Wed, 10 Feb 2016 17:26:55 +0000 (12:26 -0500)]
freedreno: small refactor for get_param

Will simplify next commit.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
8 years agofreedreno: update uapi
Rob Clark [Wed, 10 Feb 2016 17:26:20 +0000 (12:26 -0500)]
freedreno: update uapi

In drm-next.. needed for time-elapsed (and future perf ctrs) in mesa.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
8 years agoamdgpu: fix for submition with no ibs
Ken Wang [Thu, 4 Feb 2016 05:52:22 +0000 (13:52 +0800)]
amdgpu: fix for submition with no ibs

Avoid a crash if no IBs are specified.

Signed-off-by: Ken Wang <Qingqing.Wang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
8 years agotests/amdgpu: add a test for cp dma copy
Alex Deucher [Wed, 3 Feb 2016 23:59:33 +0000 (18:59 -0500)]
tests/amdgpu: add a test for cp dma copy

Use the CP to copy data between buffers

Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agotests/amdgpu: make amdgpu_command_submission_sdma_copy_linear generic
Alex Deucher [Wed, 3 Feb 2016 23:55:20 +0000 (18:55 -0500)]
tests/amdgpu: make amdgpu_command_submission_sdma_copy_linear generic

So it can be shared for CP tests.

Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agotests/amdgpu: add a test for cp dma fill
Alex Deucher [Wed, 3 Feb 2016 23:52:18 +0000 (18:52 -0500)]
tests/amdgpu: add a test for cp dma fill

Use the CP to fill to memory.

Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agotests/amdgpu: make amdgpu_command_submission_sdma_const_fill generic
Alex Deucher [Wed, 3 Feb 2016 23:38:50 +0000 (18:38 -0500)]
tests/amdgpu: make amdgpu_command_submission_sdma_const_fill generic

So it can be shared for CP tests.

Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agotests/amdgpu: add a test for cp write data
Alex Deucher [Wed, 3 Feb 2016 23:33:45 +0000 (18:33 -0500)]
tests/amdgpu: add a test for cp write data

Use the CP to write data to memory.

Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agotests/amdgpu: make amdgpu_command_submission_sdma_write_linear generic
Alex Deucher [Thu, 4 Feb 2016 17:23:43 +0000 (12:23 -0500)]
tests/amdgpu: make amdgpu_command_submission_sdma_write_linear generic

So it can be shared for CP tests.

Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agotests/amdgpu: make amdgpu_sdma_test_exec_cs() generic (v2)
Alex Deucher [Wed, 3 Feb 2016 23:14:48 +0000 (18:14 -0500)]
tests/amdgpu: make amdgpu_sdma_test_exec_cs() generic (v2)

Share with upcoming CP tests.

v2: drop unnecessary forward declaration

Reviewed-by: Ken Wang <Qingqing.Wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoandroid: enable building static version of libdrm
Sumit Semwal [Fri, 29 Jan 2016 16:00:47 +0000 (10:00 -0600)]
android: enable building static version of libdrm

Android needs libdrm built statically for recovery;
enable that as well.

Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Chih-Wei Huang <cwhuang@linux.org.tw>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agolibkms: add libdrm to Requires.private
Emil Velikov [Thu, 28 Jan 2016 11:39:03 +0000 (11:39 +0000)]
libkms: add libdrm to Requires.private

Analogous to last two changes (amdgpu and radeon).

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Jakob Bornecrantz <wallbraker@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
8 years agoradeon: add libdrm to Requires.private
Emil Velikov [Thu, 28 Jan 2016 11:33:34 +0000 (11:33 +0000)]
radeon: add libdrm to Requires.private

Equivalent to the amdgpu commit before. Additionally, when libdrm is
installed to a 'non-default' location, users of libdrm_radeon will fail
to build, as radeon_cs.h (and maybe others) won't have their
dependencies (drm.h radeon_drm.h) fulfilled.

Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
8 years agoamdgpu: add libdrm as private requirement/dependency
Emil Velikov [Thu, 28 Jan 2016 11:26:24 +0000 (11:26 +0000)]
amdgpu: add libdrm as private requirement/dependency

Otherwise libdrm.so won't end up in the --libs, when one static links
libdrm_amdgpu.

Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
8 years agovc4: Add headers and .pc files for VC4 userspace development.
Eric Anholt [Mon, 25 Jan 2016 18:16:56 +0000 (10:16 -0800)]
vc4: Add headers and .pc files for VC4 userspace development.

The headers were originally written in Mesa, imported to the kernel,
and improved upon in vc4-gpu-tools.  These come from the v-g-t copies
and will replace the Mesa and v-g-t copies, and hopefully be used from
new tests in igt, as well.

v2: Fix linking against libdrm_intel instead of libdrm.
v3: Drop Libs and Cflags since they'll be inherited from libdrm.
v4: Switch to Requires.private.  I was wrong about standard practice,
    apparently only Intel was doing plain Requires (sorry to all
    involved).

Signed-off-by: Eric Anholt <eric@anholt.net>
8 years agoutil: Add support for vc4.
Eric Anholt [Sat, 23 Jan 2016 00:37:25 +0000 (16:37 -0800)]
util: Add support for vc4.

This lets allows using modetest for overlay plane testing.

Signed-off-by: Eric Anholt <eric@anholt.net>
8 years agovc4: Add the DRM header file.
Eric Anholt [Sat, 23 Jan 2016 00:34:14 +0000 (16:34 -0800)]
vc4: Add the DRM header file.

I'll build some libdrm C code soon, but for now this lets libdrm users
use vc4 ioctls.  Produced from headers_install of
1df59b8497f47495e873c23abd6d3d290c730505 (drm-next) in the kernel.

Signed-off-by: Eric Anholt <eric@anholt.net>
8 years agotests/kmstest: inverse the order of LDADD libraries
Emil Velikov [Wed, 27 Jan 2016 11:59:43 +0000 (11:59 +0000)]
tests/kmstest: inverse the order of LDADD libraries

The utils library depends on libdrm. Flip the order, orderwise we might
error during link stage like below:

  CC       main.o
  CCLD     kmstest
/usr/bin/ld: ../../tests/util/.libs/libutil.a(libutil_la-kms.o):
undefined reference to symbol 'drmOpen'

Reported-by: Tom Stellard <thomas.stellard@amd.com>
Tested-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests: Include poll.h rather than sys/poll.h
Kylie McClain [Wed, 20 Jan 2016 03:27:28 +0000 (22:27 -0500)]
tests: Include poll.h rather than sys/poll.h

sys/poll.h is a non-standard location of the poll.h header, and is
incorrect on non-glibc libcs. poll.h, however, is defined in SUS (v2)
and is more portable.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93764
http://pubs.opengroup.org/onlinepubs/007908799/xsh/poll.h.html
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests: Include sys/select.h
Khem Raj [Wed, 20 Jan 2016 05:35:11 +0000 (05:35 +0000)]
tests: Include sys/select.h

Used in compliance with POSIX 2001/2008

Fixes errors e.g.
error: implicit declaration of function 'select'

and helps with missing definitions of FD_* defines

v2: conditionally include sys/select.h, include in every test where
needed.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Reviewed-by: Thierry Reding <thierry.reding@gmail.com> (v1)
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests: util: Fixup util_open() parameter order
Thierry Reding [Tue, 5 Jan 2016 14:21:23 +0000 (15:21 +0100)]
tests: util: Fixup util_open() parameter order

util_open() takes a device parameter, followed by a module parameter.
The existing tests used the drmOpen() function, which uses a different
ordering of the parameters, and the old ordering was accidentally kept
during the conversion.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests: add fsl-dcu-drm to modules
Stefan Agner [Sun, 20 Dec 2015 05:52:59 +0000 (21:52 -0800)]
tests: add fsl-dcu-drm to modules

Signed-off-by: Stefan Agner <stefan@agner.ch>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agokmstest: Use util_open()
Stefan Agner [Sun, 20 Dec 2015 05:52:58 +0000 (21:52 -0800)]
kmstest: Use util_open()

Use the new util_open() helper instead of open-coding the method for
finding a usable device. While at it, make the command-line interface
more consistent with that of modetest by adding the -D and -M options.

Signed-off-by: Stefan Agner <stefan@agner.ch>
v2: correctly use util_open() - swap device, module
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoconfigure.ac: don't detect disabled options dependencies
Marcin Ślusarz [Sun, 24 Jan 2016 12:17:34 +0000 (13:17 +0100)]
configure.ac: don't detect disabled options dependencies

Currently with --disable-amdgpu --disable-valgrind --disable-cairo-tests
cunit, valgrind and cairo are still detected.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoxf86drm: Bound strstr() to the allocated data
Damien Lespiau [Fri, 22 Jan 2016 12:41:55 +0000 (12:41 +0000)]
xf86drm: Bound strstr() to the allocated data

We are reading at most sizeof(data) bytes, but then data may not contain
a terminating '\0', at least in theory, so strstr() may overflow the
stack allocated array.

Make sure that data always contains at least one '\0'.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
8 years agoradeon: Pass radeon_bo_open flags to the DRM_RADEON_GEM_CREATE ioctl
Michel Dänzer [Thu, 21 Jan 2016 09:08:49 +0000 (18:08 +0900)]
radeon: Pass radeon_bo_open flags to the DRM_RADEON_GEM_CREATE ioctl

Not doing so makes it impossible for radeon_bo_open callers to set any
RADEON_GEM_* flags for the newly created BO.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoamdgpu: Add new symbols to amdgpu-symbols-check
Michel Dänzer [Wed, 20 Jan 2016 06:59:08 +0000 (15:59 +0900)]
amdgpu: Add new symbols to amdgpu-symbols-check

Fixes make check.

Trivial.

8 years agoamdgpu: list each entry safely for sw semaphore when submit ib
Junwei Zhang [Tue, 8 Dec 2015 00:34:55 +0000 (08:34 +0800)]
amdgpu: list each entry safely for sw semaphore when submit ib

Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: David Zhou <david1.zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agotests/amdgpu: add semaphore test
Chunming Zhou [Mon, 10 Aug 2015 09:08:25 +0000 (17:08 +0800)]
tests/amdgpu: add semaphore test

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agoamdgpu: add semaphore support
Marek Olšák [Tue, 12 Jan 2016 21:13:07 +0000 (22:13 +0100)]
amdgpu: add semaphore support

the semaphore is a binary semaphore. the work flow is:
1. create sem
2. signal sem
3. wait sem, reset sem after signalled
4. destroy sem.

Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agoamdgpu: validate user memory for userptr
Chunming Zhou [Mon, 30 Nov 2015 06:08:07 +0000 (14:08 +0800)]
amdgpu: validate user memory for userptr

Signed-off-by: Chunming Zhou <David1.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agoamdgpu: drop address patching logics
monk.liu [Tue, 25 Aug 2015 08:53:07 +0000 (16:53 +0800)]
amdgpu: drop address patching logics

we don't support non-page-aligned cpu pointer anymore

Signed-off-by: monk.liu <monk.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agoconfigure.ac: disable annoying warning -Wmissing-field-initializers
Marek Olšák [Tue, 12 Jan 2016 21:09:24 +0000 (22:09 +0100)]
configure.ac: disable annoying warning -Wmissing-field-initializers

It warns for all "{}" initializers.

Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
8 years agoFix memory leak with drmModeGetConnectorCurrent()
Ville Syrjälä [Tue, 15 Dec 2015 12:18:32 +0000 (14:18 +0200)]
Fix memory leak with drmModeGetConnectorCurrent()

drmModeGetConnectorCurrent() must provide temporary storage for the
kernel to fill in at least one mode (asking for !=0 modes is how
you prevent the heavyweight probe in the kernel). Currently we malloc
that temp storage but we fail to free it before overwriting the
pointer with the address of the actual storage we use to store the
real mode list we get from the kernel in the second ioctl call.

Let's just keep the temporary storage on the stack and thus we avoid the
leak and also eliminate some pointless mallocs.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Fixes: 5ed5fa10600f ("mode: Retrieve only the current information for a Connector")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
8 years agointel/kbl: Add Kabylake PCI ids
Rodrigo Vivi [Fri, 18 Sep 2015 18:26:39 +0000 (11:26 -0700)]
intel/kbl: Add Kabylake PCI ids

Also, following kernel definition Kabylake is skylake.

Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
8 years agointel: Restore formatting of offsets in debug statements
Michał Winiarski [Tue, 15 Dec 2015 15:28:55 +0000 (16:28 +0100)]
intel: Restore formatting of offsets in debug statements

Using lower_32_bits and upper_32_bits macros was accidentally dropped in:

    commit 8b4d57e7b75cb0bd01d11ad7f597909034a316aa
    Author: Michał Winiarski <michal.winiarski@intel.com>
    Date:   Wed Sep 9 16:07:10 2015 +0200

intel: Add support for softpin

Let's restore previous, more readable format.

Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
8 years agoBump version for release
Ben Skeggs [Tue, 24 Nov 2015 01:57:39 +0000 (11:57 +1000)]
Bump version for release

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: clean up nouveau.h, noting deprecated members/functions
Ben Skeggs [Wed, 25 Nov 2015 22:24:55 +0000 (08:24 +1000)]
nouveau: clean up nouveau.h, noting deprecated members/functions

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: add support for newer kernel interfaces
Ben Skeggs [Tue, 24 Nov 2015 03:08:21 +0000 (13:08 +1000)]
nouveau: add support for newer kernel interfaces

v2.
- leave client-provided pointer unmodified on sclass_get() failure

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: add new interface to create a nouveau_device
Ben Skeggs [Tue, 24 Nov 2015 01:21:05 +0000 (11:21 +1000)]
nouveau: add new interface to create a nouveau_device

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: remove nouveau_object_find()
Ben Skeggs [Fri, 27 Nov 2015 00:16:13 +0000 (10:16 +1000)]
nouveau: remove nouveau_object_find()

No more internal users, and there's never been external users.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: make use of nouveau_drm::fd instead of nouveau_device::fd
Ben Skeggs [Tue, 24 Nov 2015 01:00:53 +0000 (11:00 +1000)]
nouveau: make use of nouveau_drm::fd instead of nouveau_device::fd

The latter is deprecated, and will not be valid for newer clients.

v2.
- split out nouveau_object_find removal

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: stack legacy nouveau_device on top of nouveau_drm
Ben Skeggs [Tue, 24 Nov 2015 00:45:01 +0000 (10:45 +1000)]
nouveau: stack legacy nouveau_device on top of nouveau_drm

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: introduce object to represent the kernel client
Ben Skeggs [Tue, 24 Nov 2015 00:33:56 +0000 (10:33 +1000)]
nouveau: introduce object to represent the kernel client

Because NVIF intentionally lacks some of the paths necessary to be
compatible with various mistakes we've made over the years, libdrm
needs to know whether a client has been updated and that it's safe
to make use of the new kernel interfaces.

Clients still using nouveau_device_open()/wrap() will be forced to
make use of ABI16 instead of NVIF.

v2.
- remove lib_version, nothing used it
- leave client-provided pointer unmodified on failure

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: add interfaces to query information about supported classes
Ben Skeggs [Tue, 24 Nov 2015 00:10:04 +0000 (10:10 +1000)]
nouveau: add interfaces to query information about supported classes

This will expose functionality supported by newer kernel interfaces.

Current userspace uses the chipset to determine which classes are likely
exposed, which generally works pretty well, but isn't as flexible as it
could be.

Unfortunately, the G98:GF100 video code in Mesa is still relying on the
kernel exposing incorrect vdec classes on some chipsets.  The ABI16
kernel interfaces have a workaround for this in place, but that will no
longer be available once libdrm supports NVIF.

To prevent a regression when NVIF support is added, if there's no kernel
support for NVIF, libdrm will magic up a class list containing correct
vdec classes anyway instead of failing with -ENODEV.

v2.
- add description of abi16/vdec workaround
- add description of sclass/mclass
- leave client-provided pointer unmodified on abi16_sclass() failure

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: add interface to call an object's methods
Ben Skeggs [Mon, 23 Nov 2015 23:58:39 +0000 (09:58 +1000)]
nouveau: add interface to call an object's methods

This will expose functionality supported by newer kernel interfaces,
giving access to things such as ZBC controls, perfmon, etc.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: make it possible to init object in pre-allocated memory
Ben Skeggs [Mon, 23 Nov 2015 23:28:23 +0000 (09:28 +1000)]
nouveau: make it possible to init object in pre-allocated memory

Required for an upcoming patch, not exposed to library clients.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: move object functions up, to avoid future foward decls
Ben Skeggs [Tue, 24 Nov 2015 04:36:48 +0000 (14:36 +1000)]
nouveau: move object functions up, to avoid future foward decls

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: move more abi16-specific logic into abi16.c
Ben Skeggs [Mon, 23 Nov 2015 23:17:52 +0000 (09:17 +1000)]
nouveau: move more abi16-specific logic into abi16.c

v2.
- add a comment about the (ab)use of nouveau_object::length
- add a comment about abi16_object() return values
v3.
- handle new client + old kernel for sw classes

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agonouveau: import and install a selection of nvif headers from the kernel
Ben Skeggs [Thu, 29 Oct 2015 23:27:13 +0000 (09:27 +1000)]
nouveau: import and install a selection of nvif headers from the kernel

This commit also modifies the install path of the main libdrm_nouveau
header to be under a nouveau/ subdirectory.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests: remove missleading comments
Stefan Agner [Fri, 18 Dec 2015 08:14:49 +0000 (00:14 -0800)]
tests: remove missleading comments

The comment has been copied from modetest and is not applicable
for vbltest.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
8 years agovbltest: Use util_open()
Thierry Reding [Wed, 9 Dec 2015 17:37:48 +0000 (18:37 +0100)]
vbltest: Use util_open()

Use the new util_open() helper instead of open-coding the method for
finding a usable device. While at it, this adds -D and -M command-line
options to vbltest to make its usage more consistent with its siblings
modetest and proptest.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoproptest: Use util_open()
Thierry Reding [Wed, 9 Dec 2015 17:37:47 +0000 (18:37 +0100)]
proptest: Use util_open()

Use the new util_open() helper instead of open-coding the method for
finding a usable device. While at it, make the command-line interface
more consistent with that of modetest by adding the -D and -M options.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agomodetest: Use util_open()
Thierry Reding [Wed, 9 Dec 2015 17:37:46 +0000 (18:37 +0100)]
modetest: Use util_open()

Use the new util_open() helper instead of open-coding the method for
finding a usable device.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests: Add helper to open a device/module
Thierry Reding [Wed, 9 Dec 2015 17:37:45 +0000 (18:37 +0100)]
tests: Add helper to open a device/module

The new function util_open() encapsulates the standard method employed
by tests to open a device or module. There is a verbatim copy of this in
almost all test programs, with slight variations in the list of modules.
Moving this code into a common helper allows code reuse and makes tests
more consistent.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests: kms: Implement universal planes test
Thierry Reding [Wed, 9 Dec 2015 17:37:44 +0000 (18:37 +0100)]
tests: kms: Implement universal planes test

This small program allows universal planes to be tested. Currently this
isn't very flexible because it allows only the first plane of a given
type to be tested on the first CRTC. However it should be simple to
extend this with some additional command-line arguments.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests: kms: Implement CRTC stealing test
Thierry Reding [Wed, 9 Dec 2015 17:37:43 +0000 (18:37 +0100)]
tests: kms: Implement CRTC stealing test

This test program sets a mode and framebuffer on a connector and cycles
through all CRTCs, moving the connector to each of them in turn. This is
useful to verify that CRTC stealing is properly handled in the DRM core
and drivers.

Signed-off-by: Thierry Reding <treding@nvidia.com>
8 years agotests: Add libkms-test library
Thierry Reding [Wed, 9 Dec 2015 17:37:42 +0000 (18:37 +0100)]
tests: Add libkms-test library

This library contains abstractions for KMS that help remove the need for
a lot of boilerplate in KMS test programs.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoproptest: Add Android support
Thierry Reding [Wed, 9 Dec 2015 17:37:41 +0000 (18:37 +0100)]
proptest: Add Android support

Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests: Move name tables to libutil
Thierry Reding [Wed, 9 Dec 2015 17:37:40 +0000 (18:37 +0100)]
tests: Move name tables to libutil

These tables are duplicated in several places, so move them into libutil
so that they can be shared.

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests: Split helpers into library
Thierry Reding [Wed, 9 Dec 2015 17:37:39 +0000 (18:37 +0100)]
tests: Split helpers into library

Some of the helpers, such as the pattern drawing helpers or the format
lookup helpers, have potential to be reused. Move them into a separate
library to make it easier to share them.

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoexynos: bump version number
Tobias Jakobi [Mon, 30 Nov 2015 03:12:21 +0000 (12:12 +0900)]
exynos: bump version number

The Exynos API was extended quite a bit, so reflect this in the
version number.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
8 years agotests/exynos: add test for g2d_move
Tobias Jakobi [Mon, 30 Nov 2015 03:12:20 +0000 (12:12 +0900)]
tests/exynos: add test for g2d_move

To check if g2d_move() works properly we create a small checkerboard
pattern in the center of the screen and then shift this pattern
around with g2d_move(). The pattern should be properly preserved
by the operation (but not the surrounding area).

Tested-by: Hyungwon Hwang <human.hwang@samsung.com>
Reviewed-by: Hyungwon Hwang <human.hwang@samsung.com>
Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
[Emil Velikov: add g2d_move to the symbol check]
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoexynos/fimg2d: add g2d_move
Tobias Jakobi [Mon, 30 Nov 2015 03:12:19 +0000 (12:12 +0900)]
exynos/fimg2d: add g2d_move

We already have g2d_copy() which implements G2D copy
operations from one buffer to another. However we can't
do a overlapping copy operation in one buffer.

Add g2d_move() which acts like the standard memmove()
and properly handles overlapping copies.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
8 years agoexynos: fimg2d: add g2d_set_direction
Tobias Jakobi [Mon, 30 Nov 2015 03:12:18 +0000 (12:12 +0900)]
exynos: fimg2d: add g2d_set_direction

This allows setting the two direction registers, which specify how
the engine blits pixels. This can be used for overlapping blits,
which happen e.g. when 'moving' a rectangular region inside a
fixed buffer.

Reviewed-by: Hyungwon Hwang <human.hwang@samsung.com>
Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
8 years agotests/exynos: use XRGB8888 for framebuffer
Tobias Jakobi [Mon, 30 Nov 2015 03:12:17 +0000 (12:12 +0900)]
tests/exynos: use XRGB8888 for framebuffer

This matches the G2D color mode that is used in the entire code.
The previous (incorrect) RGBA8888 would only work since the
Exynos mixer did its configuration based on the bpp, and not
based on the actual pixelformat.

Reviewed-by: Hyungwon Hwang <human.hwang@samsung.com>
Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
8 years agotests/exynos: add fimg2d event test
Tobias Jakobi [Mon, 30 Nov 2015 03:12:16 +0000 (12:12 +0900)]
tests/exynos: add fimg2d event test

This tests async processing of G2D jobs. A separate thread is spawned
to monitor the DRM fd for events and check whether a G2D job was
completed.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
8 years agoexynos/fimg2d: add g2d_config_event
Tobias Jakobi [Mon, 30 Nov 2015 03:12:15 +0000 (12:12 +0900)]
exynos/fimg2d: add g2d_config_event

This enables us to pass command buffers to the kernel which
trigger an event on the DRM fd upon completion.
The final goal is to enable asynchronous operation of the
G2D engine, similar to async page flips.

Passing the event userdata pointer through the G2D context
was chosen to not change the current API (e.g. by adding
a userdata argument to each public functions).

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
8 years agotests/exynos: add fimg2d performance analysis
Tobias Jakobi [Mon, 30 Nov 2015 03:12:14 +0000 (12:12 +0900)]
tests/exynos: add fimg2d performance analysis

Currently only fast solid color clear performance is measured.
A large buffer is allocated and solid color clear operations
are executed on it with randomly chosen properties (position
and size of the region, clear color). Execution time is
measured and output together with the amount of pixels
processed.

The 'simple' variant only executes one G2D command buffer at
a time, while the 'multi' variant executes multiple ones. This
can be used to measure setup/exec overhead.

The test also serves a stability check. If clocks/voltages are
too high or low respectively, the test quickly reveals this.

Tested-by: Hyungwon Hwang <human.hwang@samsung.com>
Reviewed-by: Hyungwon Hwang <human.hwang@samsung.com>
Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
8 years agoexynos: Introduce exynos_handle_event()
Tobias Jakobi [Mon, 30 Nov 2015 03:12:13 +0000 (12:12 +0900)]
exynos: Introduce exynos_handle_event()

Used to handle kernel events specific to the Exynos platform.
Currently only G2D events are handled.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
8 years agointel: Add drm_intel_bo_set_softpin_offset to intel-symbol-check
Kristian Høgsberg Kristensen [Mon, 14 Dec 2015 19:33:26 +0000 (11:33 -0800)]
intel: Add drm_intel_bo_set_softpin_offset to intel-symbol-check

Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
8 years agoAdd tests/drmdevice to .gitignore
Kristian Høgsberg Kristensen [Mon, 14 Dec 2015 18:55:55 +0000 (10:55 -0800)]
Add tests/drmdevice to .gitignore

Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
8 years agointel: Add support for softpin
Michał Winiarski [Wed, 9 Sep 2015 14:07:10 +0000 (16:07 +0200)]
intel: Add support for softpin

Softpin allows userspace to take greater control of GPU virtual address
space and eliminates the need of relocations. It can also be used to
mirror addresses between GPU and CPU (shared virtual memory).
Calls to drm_intel_bo_emit_reloc are still required to build the list of
drm_i915_gem_exec_objects at exec time, but no entries in relocs are
created. Self-relocs don't make any sense for softpinned objects and can
indicate a programming errors, thus are forbidden. Softpinned objects
are marked by asterisk in debug dumps.

Cc: Thomas Daniel <thomas.daniel@intel.com>
Cc: Kristian Høgsberg <krh@bitplanet.net>
Cc: Zou Nanhai <nanhai.zou@intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Cc: Ben Widawsky <ben@bwidawsk.net>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Signed-off-by: Michał Winiarski <michal.winiarski@intel.com>
8 years agointel: add drm_intel_bo_use_48b_address_range to symbol-check test
Michel Thierry [Thu, 3 Sep 2015 14:23:59 +0000 (15:23 +0100)]
intel: add drm_intel_bo_use_48b_address_range to symbol-check test

Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Reviewed-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
8 years agointel: 48b ppgtt support (EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag)
Michel Thierry [Thu, 3 Sep 2015 14:23:58 +0000 (15:23 +0100)]
intel: 48b ppgtt support (EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag)

Gen8+ supports 48-bit virtual addresses, but some objects must always be
allocated inside the 32-bit address range.

In specific, any resource used with flat/heapless (0x00000000-0xfffff000)
General State Heap (GSH) or Instruction State Heap (ISH) must be in a
32-bit range, because the General State Offset and Instruction State Offset
are limited to 32-bits.

The i915 driver has been modified to provide a flag to set when the 4GB
limit is not necessary in a given bo (EXEC_OBJECT_SUPPORTS_48B_ADDRESS).
48-bit range will only be used when explicitly requested.

Callers to the existing drm_intel_bo_emit_reloc function should set the
use_48b_address_range flag beforehand, in order to use full ppgtt range.

v2: Make set/clear functions nops on pre-gen8 platforms, and use them
    internally in emit_reloc functions (Ben)
    s/48BADDRESS/48B_ADDRESS/ (Dave)
v3: Keep set/clear functions internal, no-one needs to use them directly.
v4: Don't set 48bit-support flag in emit reloc, check for ppgtt type
    before enabling set/clear function, print full offsets in debug
    statements, using port of lower_32_bits and upper_32_bits from linux
    kernel (Michał)

References: http://lists.freedesktop.org/archives/intel-gfx/2015-July/072612.html
Cc: Ben Widawsky <ben@bwidawsk.net>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Signed-off-by: Michel Thierry <michel.thierry@intel.com>
Reviewed-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
8 years agointel: Update i915_drm.h
Kristian Høgsberg Kristensen [Mon, 14 Dec 2015 19:27:53 +0000 (11:27 -0800)]
intel: Update i915_drm.h

Copy from drm-intel-nightly a307a3a81c2bf2883457e03abcf5c9520cf452c1.

Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
8 years agointel: add the missing <strings.h> include
Chih-Wei Huang [Fri, 30 Oct 2015 03:49:42 +0000 (11:49 +0800)]
intel: add the missing <strings.h> include

It defines the prototype of ffs that fixes the building error
on Android 6.0 64-bit image.

Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoamdgpu: Make amdgpu_cs_calculate_timeout() return something sensible on error
Tom St Denis [Tue, 17 Nov 2015 15:58:36 +0000 (10:58 -0500)]
amdgpu:  Make amdgpu_cs_calculate_timeout() return something sensible on error

Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agoamdgpu: fix overflow for timeout calculation
Jammy Zhou [Tue, 17 Nov 2015 09:14:35 +0000 (17:14 +0800)]
amdgpu: fix overflow for timeout calculation

Set the timeout to AMDGPU_TIMEOUT_INFINITE when overflow happens

Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agoconfigure.ac: test for the same atomic function as the one we use
Emil Velikov [Mon, 16 Nov 2015 13:51:01 +0000 (13:51 +0000)]
configure.ac: test for the same atomic function as the one we use

Unlikely that we'll hit a case where __sync_fetch_and_add is present
while __sync_add_and_fetch isn't. Regardless let's keep things sane and
consistent.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoconfigure.ac: rework compiler builtin atomic tests
Jonathan Gray [Sat, 29 Aug 2015 07:32:50 +0000 (17:32 +1000)]
configure.ac: rework compiler builtin atomic tests

The libdrm autoconf test for atomics uses __sync_val_compare_and_swap with
the address of a function argument which triggers a gcc ICE on sparc64
with the OpenBSD system compiler.

Mark Kettenis pointed out that while other architectures probably spill the
argument onto the stack this is likely not the case on register window
architectures like SPARC and suggested passing a pointer as an argument
instead which avoids the ICE and allows the drm libraries requiring
atomics to build on sparc64 with the autoconf build.

Reported-by: Christian Weisgerber <naddy@openbsd.org>
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Matthieu Herrb <matthieu@openbsd.org>
8 years agoradeon: Handle surface offsets exceeding 32 bits correctly
Michel Dänzer [Tue, 8 Sep 2015 06:03:55 +0000 (15:03 +0900)]
radeon: Handle surface offsets exceeding 32 bits correctly

The slice_size and bo_size fields were getting truncated to 32 bits.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
8 years agolibdrm: Use userspace compatible type in fourcc_mod_code macro
Tvrtko Ursulin [Wed, 23 Sep 2015 12:33:16 +0000 (13:33 +0100)]
libdrm: Use userspace compatible type in fourcc_mod_code macro

__u64 should be used instead of u64.

Kernel headers originally pulled in:

commit 8983fe5497e89a3ffaba3ad1ee06a30a1c7e6daf
Author: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Date:   Mon Aug 3 10:48:03 2015 +0100

    libdrm: Add framebuffer modifiers uapi

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: dri-devel@lists.freedesktop.org
Cc: Rob Clark <robdclark@gmail.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Rob Clark <robclark@freedesktop.org>
8 years agointel: Cleanup SKL PCI ID definitions.
Ben Widawsky [Thu, 22 Oct 2015 19:06:59 +0000 (12:06 -0700)]
intel: Cleanup SKL PCI ID definitions.

This removes ones which aren't used, and adds some new ones. I kept the original
names where possible.

Cc: Kristian Høgsberg <krh@bitplanet.net>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agointel: Add SKL GT4 PCI IDs
Ben Widawsky [Thu, 22 Oct 2015 19:15:50 +0000 (12:15 -0700)]
intel: Add SKL GT4 PCI IDs

Cc: Kristian Høgsberg <krh@bitplanet.net>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
8 years agoamdgpu: Cleanly handle ENOMEM on result in amdgpu_bo_list_create()
Tom St Denis [Fri, 9 Oct 2015 16:46:40 +0000 (12:46 -0400)]
amdgpu: Cleanly handle ENOMEM on result in amdgpu_bo_list_create()

Move the allocation of result prior to the IOCTL so we can cleanly
backtrack if the allocation fails.

Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoamdgpu: Fix use-after-free bug in vamgr_deinit
Tom St Denis [Fri, 9 Oct 2015 16:07:26 +0000 (12:07 -0400)]
amdgpu:  Fix use-after-free bug in vamgr_deinit

This patch fixes a use-after-free bug in the vamgr_deinit function.

Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoamdgpu: Unlock mutex if base_required is invalid
Tom St Denis [Fri, 9 Oct 2015 14:36:04 +0000 (10:36 -0400)]
amdgpu: Unlock mutex if base_required is invalid

In the function amdgpu_vamgr_find_va() the function would return
without unlocking the mutex if the base_required offset was below
the va managers base offset.

Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agodrm: add virtgpu_drm.h
Dave Airlie [Tue, 20 Oct 2015 23:21:07 +0000 (09:21 +1000)]
drm: add virtgpu_drm.h

This is in drm-next now, so add to libdrm.

Signed-off-by: Dave Airlie <airlied@redhat.com>
8 years agoxf86drm: Handle unrecognized subsystems safely in drmGetDevice[s]()
Matt Roper [Fri, 16 Oct 2015 22:11:24 +0000 (15:11 -0700)]
xf86drm: Handle unrecognized subsystems safely in drmGetDevice[s]()

Both drmGetDevice() and drmGetDevices() currently print a warning when
they encounter an unknown (non-PCI) subsystem type for a device node,
but they still proceed to assume that the drmDevicePtr was initialized
and try to add it to the local device array.  Add a 'continue' to the
error case handling to bypass the rest of the processing for devices we
can't handle.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoxf86drm: Fix error handling for drmGetDevice()
Matt Roper [Fri, 16 Oct 2015 22:11:23 +0000 (15:11 -0700)]
xf86drm: Fix error handling for drmGetDevice()

Some of the error conditions in drmGetDevice() can lead to us calling
closedir(NULL) or leaking memory.  Fix these conditions the same way we
did for drmGetDevices() in commit:

        commit 8c4a1cbd98bd8d185d489395f33302a17db643a9
        Author: Matt Roper <matthew.d.roper@intel.com>
        Date:   Wed Sep 30 09:30:51 2015 -0700

            xf86drm: Fix error handling for drmGetDevices()

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoFix void pointer arithmetic in drmProcessPciDevice
Michel Dänzer [Wed, 14 Oct 2015 03:48:52 +0000 (12:48 +0900)]
Fix void pointer arithmetic in drmProcessPciDevice

Arithmetic on void pointers is a GCC extension.

  CC       libdrm_la-xf86drm.lo
../xf86drm.c: In function 'drmProcessPciDevice':
../xf86drm.c:3017:10: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
     addr += sizeof(drmDevice);
          ^
../xf86drm.c:3020:10: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
     addr += DRM_NODE_MAX * sizeof(void *);
          ^
../xf86drm.c:3023:14: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
         addr += max_node_str;
              ^
../xf86drm.c:3035:14: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
         addr += sizeof(drmPciBusInfo);
              ^

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoxf86drm: Fix error handling for drmGetDevices()
Matt Roper [Wed, 30 Sep 2015 16:30:51 +0000 (09:30 -0700)]
xf86drm: Fix error handling for drmGetDevices()

If the opendir() call in drmGetDevices() returns failure, we jump to an
error label that calls closedir() and then returns.  However this means
that we're calling closedir(NULL) which may not be safe on all
implementations.  We are also leaking the local_devices array that was
allocated before the opendir() call.

Fix both of these issues by jumping to an earlier error label (to free
local_devices) and guarding the closedir() call with a NULL test.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
[Emil Velikov: make the teardown symmetrical, remove the NULL check]
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoxf86drm: include <limits.h> for PATH_MAX
Felix Janda [Sat, 26 Sep 2015 06:08:43 +0000 (08:08 +0200)]
xf86drm: include <limits.h> for PATH_MAX

fixes compilation error with musl libc and Solaris based platforms.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92082
Signed-off-by: Felix Janda <felix.janda@posteo.de>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoxf86drm: remove makedev() hack/workaround
Emil Velikov [Fri, 7 Aug 2015 15:13:32 +0000 (16:13 +0100)]
xf86drm: remove makedev() hack/workaround

Back when this was introduced commit 569da5a42eb(Merged glxmisc-3-0-0)
sys/sysmacros.h was used instead of the respecive headers (as per the
manual).

We've been handling it correctly for a little while now - in Linux, BSD
and Solaris. Thus we can drop this workaround.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoexynos/fimg2d: remove g2d_context from public header
Tobias Jakobi [Tue, 8 Sep 2015 15:22:34 +0000 (17:22 +0200)]
exynos/fimg2d: remove g2d_context from public header

All functions from the public API only operation on
struct g2d_context*, so this shouldn't break too much.

Make the context private since we don't want the
user to modify its content directly. Also remove
the defines that were only used for fields of
g2d_context.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
8 years agoexynos/fimg2d: add message prefix
Tobias Jakobi [Tue, 8 Sep 2015 15:22:33 +0000 (17:22 +0200)]
exynos/fimg2d: add message prefix

Add a prefix to the messages printed to the console via
printf() and fprintf() so that one can easily see where
the message comes from.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoexynos/fimg2d: make g2d_add_cmd() less heavy
Tobias Jakobi [Tue, 8 Sep 2015 15:22:32 +0000 (17:22 +0200)]
exynos/fimg2d: make g2d_add_cmd() less heavy

The function currently checks for each added command
if an overflow of the corresponding command buffers
occurs, but none of the callers ever checks the
return value.

Since all callers are now converted to use
g2d_check_space() simplify the function.

(1) The overflow checks become asserts, so they're only
    active for debug builds. This is fine since
    g2d_add_cmd() is not part of the public API.

(2) Switch the return value to void.

(3) Explicitly state that the caller has to check
    buffer space before calling g2d_add_cmd().

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoexynos/fimg2d: remove superfluous initialization of g2d_point_val
Tobias Jakobi [Tue, 8 Sep 2015 15:22:31 +0000 (17:22 +0200)]
exynos/fimg2d: remove superfluous initialization of g2d_point_val

The g2d_point_val union consists of two coordinates of 16
bits. Whenever this union is used though, both coordinates
are explicitly set. Hence prior initialization is unnecessary.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoexynos/fimg2d: remove default case from g2d_get_blend_op()
Tobias Jakobi [Tue, 8 Sep 2015 15:22:30 +0000 (17:22 +0200)]
exynos/fimg2d: remove default case from g2d_get_blend_op()

We now validate the blending mode via g2d_validate_mode()
prior to feeding it to g2d_get_blend_op().

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>