OSDN Git Service

android-x86/external-libdrm.git
8 years agoamdgpu: fix a valgrind warning
Marek Olšák [Wed, 6 May 2015 16:59:02 +0000 (18:59 +0200)]
amdgpu: fix a valgrind warning

==10307== Conditional jump or move depends on uninitialised value(s)
==10307==    at 0xB9F4CFA: amdgpu_device_initialize (amdgpu_device.c:193)

Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoamdgpu: implement amdgpu_cs_query_reset_state
Marek Olšák [Tue, 5 May 2015 19:23:02 +0000 (21:23 +0200)]
amdgpu: implement amdgpu_cs_query_reset_state

v2: also return the number of hangs

Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
8 years agoamdgpu: fix vamgr_free_va logic
monk.liu [Wed, 13 May 2015 06:01:53 +0000 (14:01 +0800)]
amdgpu: fix vamgr_free_va logic

va+size will overflow if va equals to AMDGPU_INVALID_VA_ADDRESS, just
return when hit that condition

Signed-off-by: monk.liu <monk.liu@amd.com>
Reviewed-by: Jammy Zhou <jammy.zhou@amd.com>
8 years agoamdgpu: fix code alignment
monk.liu [Wed, 13 May 2015 05:58:43 +0000 (13:58 +0800)]
amdgpu: fix code alignment

Signed-off-by: monk.liu <monk.liu@amd.com>
8 years agoamdgpu: validate the upper limit of virtual address v2
Jammy Zhou [Tue, 12 May 2015 17:14:11 +0000 (01:14 +0800)]
amdgpu: validate the upper limit of virtual address v2

Only 8GB virtual address space is used by default now

v2: use -ENOSPC for the error case

Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
8 years agoamdgpu: reuse the kernel IB flags v2
Jammy Zhou [Mon, 11 May 2015 15:02:09 +0000 (23:02 +0800)]
amdgpu: reuse the kernel IB flags v2

v2: remove 'CE' from the preamble flag

Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agoamdgpu: add ctx_id for wait_cs
Jammy Zhou [Fri, 8 May 2015 10:34:20 +0000 (18:34 +0800)]
amdgpu: add ctx_id for wait_cs

Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: David Zhou <david1.zhou@amd.com>
8 years agoamdgpu: fix round down/up page size error
Jack Xiao [Thu, 7 May 2015 08:07:03 +0000 (16:07 +0800)]
amdgpu: fix round down/up page size error

Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
Reviewed-by: Monk Liu monk.liu@amd.com
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
8 years agoamdgpu: fix 32-on-64 support (v2)
Jammy Zhou [Thu, 7 May 2015 03:38:28 +0000 (11:38 +0800)]
amdgpu: fix 32-on-64 support (v2)

0xffffffff was appended to the higher 32bit with (intptr_t) when use
32bit libdrm_amdgpu.so with 64bit kernel, and it caused segmentation
fault for 32bit application.

v2: switch to uintptr_t

Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
8 years agoamdgpu: remove AMDGPU_GEM_CREATE_CPU_GTT_UC
Jammy Zhou [Wed, 6 May 2015 10:45:57 +0000 (18:45 +0800)]
amdgpu: remove AMDGPU_GEM_CREATE_CPU_GTT_UC

Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoamdgpu: remove active_rb_pipes from amdgpu_gpu_info
Jammy Zhou [Tue, 5 May 2015 07:43:19 +0000 (15:43 +0800)]
amdgpu: remove active_rb_pipes from amdgpu_gpu_info

The active RB pipes can be retrieved from enabled_rb_pipes_mask,
for which each bit indicates one active pipe if it is '1'.

Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
8 years agoamdgpu: fix segfault when resources are NULL
monk.liu [Tue, 5 May 2015 07:15:15 +0000 (15:15 +0800)]
amdgpu: fix segfault when resources are NULL

Signed-off-by: monk.liu <monk.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
8 years agoamdgpu: compare the primary device names instead
Christian König [Thu, 30 Apr 2015 12:13:28 +0000 (14:13 +0200)]
amdgpu: compare the primary device names instead

Instead of taking a look at the device major/minor we
just compare the primary device name to figure out if
two fds are pointing to the same device.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
8 years agoamdgpu: add public bo list interface v3
Christian König [Wed, 22 Apr 2015 12:52:34 +0000 (14:52 +0200)]
amdgpu: add public bo list interface v3

v2: cleanup comments and function parameter
v3: rebased on internal branch

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoamdgpu: cleanup public interface v2
Christian König [Wed, 22 Apr 2015 10:21:13 +0000 (12:21 +0200)]
amdgpu: cleanup public interface v2

Remove the mostly unused device parameter, for the few cases
where we really need it keep a copy in the context structure.

v2: rebased on internal branch

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoamdgpu: do not call BO_LIST ioctl when no resource referred
monk.liu [Mon, 27 Apr 2015 07:23:54 +0000 (15:23 +0800)]
amdgpu: do not call BO_LIST ioctl when no resource referred

Signed-off-by: monk.liu <monk.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoamdgpu: fix an error of bo_list handler
monk.liu [Mon, 27 Apr 2015 02:25:54 +0000 (10:25 +0800)]
amdgpu: fix an error of bo_list handler

original method is just totally wrong, it loses the bo_list handler at
all after command stream accomplished

Signed-off-by: Monk.Liu <monk.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoamdgpu: add missing mutex lock/unlock pair
monk.liu [Thu, 23 Apr 2015 05:19:57 +0000 (13:19 +0800)]
amdgpu: add missing mutex lock/unlock pair

Signed-off-by: monk.liu <monk.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agoamdgpu: support non-page-aligned userptr
monk.liu [Thu, 23 Apr 2015 05:18:59 +0000 (13:18 +0800)]
amdgpu: support non-page-aligned userptr

Signed-off-by: monk.liu <monk.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agodrm: add tests/amdgpu (v3)
Alex Deucher [Mon, 20 Apr 2015 16:15:23 +0000 (12:15 -0400)]
drm: add tests/amdgpu (v3)

This adds some basic unit tests for the new amdgpu driver.

v2: use common util_math.h
v3: implement suggestions from Emil
    replace malloc/memset with calloc
    make header guards all caps
    use posix_memalign rather than mem_align
    replace malloc with calloc for pm4 allocations
    make CU_SuiteInfo static
    fix Makefile.am
    fix fd numbering
    use drmGetVersion/drmFreeVersion rather than open coding it
    close fd, clean up CU registry on error

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agodrm: add libdrm_amdgpu (v7)
Alex Deucher [Mon, 20 Apr 2015 16:04:22 +0000 (12:04 -0400)]
drm: add libdrm_amdgpu (v7)

This is the new ioctl wrapper used by the new admgpu driver.
It's primarily used by xf86-video-amdgpu and mesa.

v2: fix amdgpu_drm.h install
v3: Integrate some of the sugestions from Emil:
    clean up Makefile.am, configure.ac
    capitalize header guards
    fix _FILE_OFFSET_BITS with config.h
    use drm_mmap/drm_munmap
    Remove unused ARRAY_SIZE macro
    use shared list implementation
    use shared math implementation
    use drmGetNodeTypeFromFd helper
v4: remove unused tiling defines
v5: include amdgpu.h in Makefile.am
v6: update amdgpu_drm.h
v7: libdrm.h -> libdrm_macros.h

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agodrm: add util_math.h
Alex Deucher [Thu, 23 Apr 2015 20:44:28 +0000 (16:44 -0400)]
drm: add util_math.h

Used by amdgpu, could be used by other components.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agodrm: consolidate common list implementations (v2)
Alex Deucher [Thu, 7 May 2015 17:03:47 +0000 (13:03 -0400)]
drm: consolidate common list implementations (v2)

This is used by radeon and freedreno and will be used
by amdgpu.  I looked at switching to libdrm_lists.h,
but it's pretty horrible.  E.g., DRMLISTFOREACHENTRYSAFE.

v2: remove missed list.h from tests/radeon/Makefile.am

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
8 years agointel: Drop aub dumping functionality
Kristian Høgsberg Kristensen [Fri, 31 Jul 2015 17:47:50 +0000 (10:47 -0700)]
intel: Drop aub dumping functionality

We now have a separate tool for this in intel-gpu-tools and we don't
need to clutter up libdrm with this feature. We leave the entry points
in there to avoid breaking API/ABI.

Install intel-gpu-tools, then run (for example)

    $ intel_aubdump --output=trace.aub glxgears -geometry 500x500

See the intel_aubdump man page for more details.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
8 years agoxf86drm: use the correct device minor names on OpenBSD
Jonathan Gray [Mon, 20 Jul 2015 17:12:56 +0000 (03:12 +1000)]
xf86drm: use the correct device minor names on OpenBSD

Add defines for the device minor names and make use of them
in drmGetMinorName() so the correct paths will be used on OpenBSD.

v2: don't add new defines to xf86drm.h to keep them out of the API
    as requested by Emil.

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoxf86drm: correct the OpenBSD DRM_MAJOR define
Jonathan Gray [Mon, 20 Jul 2015 17:12:10 +0000 (03:12 +1000)]
xf86drm: correct the OpenBSD DRM_MAJOR define

As far as I can tell no OpenBSD platform ever used 81
for a drm major.  While the value was added to libdrm in 2003
or earlier drm didn't appear in OpenBSD till 2007.

Of the OpenBSD platforms that support drm amd64/macppc/sparc64
use a major of 87, i386 uses 88.

v2: rearrange ifdefs as suggested by Emil.

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoxf86drmMode: Implement drmCheckModesettingSupported() for OpenBSD
Jonathan Gray [Sat, 18 Jul 2015 21:20:37 +0000 (07:20 +1000)]
xf86drmMode: Implement drmCheckModesettingSupported() for OpenBSD

This is implemented with kms ioctls so it could also be used as a
generic fallback.

Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoman: remove .man_fixup workaround
Emil Velikov [Wed, 15 Jul 2015 15:31:15 +0000 (16:31 +0100)]
man: remove .man_fixup workaround

The whole thing is quite messy - the file is used to indicate that the
man pages were correctly generated prior to applying the "fixup" (alias)

At the same time we use a rule with the same name, to create the same
file if the generation has failed.

In other words - it attempts to create the file either way. So there is
little point in it and we can remove it.

Spotted while attempting to build with bmake which kindly blocked on the
following (non compliant construct)

.man_fixup: | $(miscman_DATA)

Cc: Jonathan Gray <jsg@jsg.id.au>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agodrm: Detect no-op drmModeAtomicRequest and return early
Chris Wilson [Tue, 21 Jul 2015 12:46:45 +0000 (13:46 +0100)]
drm: Detect no-op drmModeAtomicRequest and return early

If the number of items to process in the request is zero, we can forgo
duplicating, sorting the request and feeding it into the kernel and
instead report success immediately.  This prevents a NULL dereference of
the sorted->items for the no-op request.

Fixes: ed44e0b9585c563905447eceed12af9c1c7ca8d4
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Rob Clark <robclark@freedesktop.org>
Cc: Daniel Stone <daniels@collabora.com>
Cc: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoBuild vbltest irrespective of the presence of libudev.
Joonyoung Shim [Mon, 20 Jul 2015 05:36:53 +0000 (14:36 +0900)]
Build vbltest irrespective of the presence of libudev.

The vbltest doesn't have any dependency of LIBUDEV.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoConsistently check the fd value
Emil Velikov [Tue, 14 Jul 2015 13:55:42 +0000 (14:55 +0100)]
Consistently check the fd value

Follow the approach used through the rest of the project.

Suggested-by: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 years agoxf86drm: fix incorrect fd comparison in drmOpenOnce{,WithType}
Emil Velikov [Tue, 14 Jul 2015 14:05:18 +0000 (15:05 +0100)]
xf86drm: fix incorrect fd comparison in drmOpenOnce{,WithType}

Spotted by looking for similar "let's assume fd == 0 is invalid" bugs.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 years agoomap: zero is a valid fd number, treat it as such
Emil Velikov [Tue, 14 Jul 2015 13:59:19 +0000 (14:59 +0100)]
omap: zero is a valid fd number, treat it as such

Equivalent to the previous patch.

Cc: Rob Clark <robdclark@gmail.com>
Suggested-by: Thierry Reding <thierry.reding@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
8 years agofreedreno: zero is a valid fd number, treat it as such
Emil Velikov [Mon, 13 Jul 2015 13:34:57 +0000 (14:34 +0100)]
freedreno: zero is a valid fd number, treat it as such

Abeit quite unlikely to get hit by this bug here, let just fix it.

v2: Correct conditional (do not call ioctl(DRM_IOCTL_PRIME_HANDLE_TO_FD)
when we already have the fd).
v3: Fix kgsl_pipe.c, suggested by Thierry.

Cc: freedreno@lists.freedesktop.org
Cc: Rob Clark <robdclark@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Thierry Reding <thierry.reding@gmail.com>
8 years agoinclude <sys/types.h> & <sys/mkdev.h> directly for major() and minor()
Alan Coopersmith [Wed, 8 Jul 2015 17:41:43 +0000 (10:41 -0700)]
include <sys/types.h> & <sys/mkdev.h> directly for major() and minor()

Linux seems to pick these up via another header, but Solaris needs them
explicitly included, or we get undefined symbol errors for major & minor.

v2: use headers documented in makedev(3C) man page instead of sysmacros.h

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
v3 [Emil Velikov]: include sys/mkdev.h only when available.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoFix headers inclusion in xf86drmMode.c
Julien Cristau [Mon, 6 Jul 2015 11:45:31 +0000 (12:45 +0100)]
Fix headers inclusion in xf86drmMode.c

Add sys/sysctl.h to get sysctlbyname declaration on kFreeBSD

Updated by Thorsten “mirabilos” Glaser <t.glaser@tarent.de>
to add autoconf check and only include <sys/sysctl.h> if it
is detected by configure as it’s unusable on Linux/x32 (and
others, e.g. other new architectures).

Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoSet alignment value in drm_intel_add_validate_buffer()
Anuj Phogat [Sat, 11 Apr 2015 00:20:56 +0000 (17:20 -0700)]
Set alignment value in drm_intel_add_validate_buffer()

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
8 years agoi965/gen9: Pass alignment as function parameter in drm_intel_gem_bo_alloc_internal()
Anuj Phogat [Sat, 11 Apr 2015 00:20:55 +0000 (17:20 -0700)]
i965/gen9: Pass alignment as function parameter in drm_intel_gem_bo_alloc_internal()

In case of YF/YS tiled buffers libdrm need not know about the tiling
format because these buffers don't have hardware support to be tiled
or detiled through a fenced region. But, libdrm still need to know
about buffer alignment restrictions because kernel uses it when
resolving the relocation.

Mesa uses drm_intel_gem_bo_alloc_for_render() to allocate Yf/Ys buffers.
So, use the passed alignment value in this function to initialize the
align variable in drm_intel_bo. Note that we continue ignoring the
alignment value passed to drm_intel_gem_bo_alloc() to follow the
previous behavior.

V2: Add a condition to avoid allocation from cache. (Ben)
V3: Make no changes in cache allocation strategy. Just update the alignment.
    Update the aperture size estimate including the alignment. (Ben, Chris)
V4: Move aperture size adjustments inside drm_intel_bo_gem_set_in_aperture_size()
    Don't split sentences across the one-line header and the changelog. (Chris)

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
8 years agoconfigure: default --enable-valgrind to auto
Emil Velikov [Tue, 30 Jun 2015 13:01:14 +0000 (14:01 +0100)]
configure: default --enable-valgrind to auto

... as the help text says.

Reported-by: Jasper St. Pierre <jstpierre@mecheye.net>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoconfigure.ac: bump version to 2.4.62 for release
Emil Velikov [Mon, 29 Jun 2015 18:25:35 +0000 (19:25 +0100)]
configure.ac: bump version to 2.4.62 for release

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests/exynos: handle G2D_IMGBUF_COLOR in switch statements
Tobias Jakobi [Fri, 12 Jun 2015 18:15:14 +0000 (20:15 +0200)]
tests/exynos: handle G2D_IMGBUF_COLOR in switch statements

This fixes a compiler warning about missing handling of enum
values in the switch statements.

Also remove the silent mapping to G2D_IMGBUF_GEM when an
unknown buffer type is encountered. We have full control
about the type here, and if it's unknown then we obviously
have a bug in the code.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests/exynos: remove connector_find_plane
Tobias Jakobi [Fri, 12 Jun 2015 18:15:13 +0000 (20:15 +0200)]
tests/exynos: remove connector_find_plane

No test uses DRM planes at the moment so this function
is never called. Inspection of the git history shows
that DRM planes were also never used in these tests
in the past.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests/exynos: simplify drm_set_crtc
Tobias Jakobi [Fri, 12 Jun 2015 18:15:12 +0000 (20:15 +0200)]
tests/exynos: simplify drm_set_crtc

We can just return 'ret' here, the goto serves no purpose.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests/exynos: remove struct fimg2d_test_case
Tobias Jakobi [Fri, 12 Jun 2015 18:15:11 +0000 (20:15 +0200)]
tests/exynos: remove struct fimg2d_test_case

It doesn't make sense to keep this structure, since we
can just call all tests directly. An inspection of the
git history shows that no code ever used this
abstraction in the past.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests/exynos: remove unused define
Tobias Jakobi [Fri, 12 Jun 2015 18:15:10 +0000 (20:15 +0200)]
tests/exynos: remove unused define

It doesn't make sense to limit the number of
test cases anyway.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests/exynos: clean struct connector
Tobias Jakobi [Fri, 12 Jun 2015 18:15:09 +0000 (20:15 +0200)]
tests/exynos: clean struct connector

Remove all unused struct members. An inspection of the
git history shows that these members were also never
used in the past.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoexynos/fimg2d: simplify g2d_fini()
Tobias Jakobi [Fri, 12 Jun 2015 18:15:08 +0000 (20:15 +0200)]
exynos/fimg2d: simplify g2d_fini()

free()ing a nullptr is a noop, so remove the check.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agotests/exynos: replace return by break
Tobias Jakobi [Fri, 12 Jun 2015 18:15:07 +0000 (20:15 +0200)]
tests/exynos: replace return by break

The 'usage' function already does exit(0), so that this
'return -EINVAL' is never called. Just put a break there
to avoid confusion.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoexynos: fimg2d: fix return codes
Tobias Jakobi [Fri, 12 Jun 2015 18:15:06 +0000 (20:15 +0200)]
exynos: fimg2d: fix return codes

Even if flushing the command buffer doesn't succeed, the
G2D calls would still return zero. Fix this by just passing
the flush return code.

In fact error handling currently ignores the fact that
g2d_add_cmd() can fail. This is going to be handled
in a later patch.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoconfigure: Add flag to disable valgrind support.
Matt Turner [Mon, 22 Jun 2015 16:56:33 +0000 (09:56 -0700)]
configure: Add flag to disable valgrind support.

v2 [Emil Velikov]: Autodetect valgrind.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoxf86drmMode: include config.h before anything else
Emil Velikov [Mon, 29 Jun 2015 16:32:21 +0000 (17:32 +0100)]
xf86drmMode: include config.h before anything else

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoxf86drmMode: remove unused valgrind(VG) macros
Emil Velikov [Mon, 22 Jun 2015 17:58:05 +0000 (17:58 +0000)]
xf86drmMode: remove unused valgrind(VG) macros

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoAdd blob property create/destroy ioctl wrappers
Daniel Stone [Mon, 22 Jun 2015 16:26:03 +0000 (17:26 +0100)]
Add blob property create/destroy ioctl wrappers

v2: Use memclear to zero out structure.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Rob Clark <robclark@freedesktop.org>
8 years agoSupport atomic modesetting ioctl
Ville Syrjälä [Mon, 22 Jun 2015 16:26:02 +0000 (17:26 +0100)]
Support atomic modesetting ioctl

Add support for the atomic modesetting ioctl through a property-set API.

v1: Squashed intermediate patches from Ville, Rob and myself. Updated
    for current kernel interface (no blobs).
v2: Rewrite user-facing API to provide transactional/cursor interface.
    Use memclear to zero out ioctl.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Rob Clark <robclark@freedesktop.org>
Signed-off-by: Daniel Stone <daniels@collabora.com>
v3 [Emil Velikov]: Remove DRM_CAP_ATOMIC - superseded by
DRM_CLIENT_CAP_ATOMIC.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
8 years agoRevert "Add device enumeration interface (v4)"
Emil Velikov [Sat, 30 May 2015 13:25:08 +0000 (14:25 +0100)]
Revert "Add device enumeration interface (v4)"

This reverts commit fde4969176822fe54197b6baa78f8b0ef900baba.

The commit adds an API that does not seem flexible enough to be used in
current open-source projects. Additionally it adds a hidden dependency
of libudev, which when used in mesa caused grief when combined with
Steam('s runtime).

Let's revert this for now and add a tweaked API later on that can be
used in mesa/xserver.

Cc: Frank Min <frank.min@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Jammy Zhou <Jammy.Zhou@amd.com>
8 years agonouveau: add asserts to make sure krefs are there
Ilia Mirkin [Sun, 21 Jun 2015 23:26:42 +0000 (19:26 -0400)]
nouveau: add asserts to make sure krefs are there

This should help catch odd bugs at the callsites rather than much later
on with completely bogus bo indices.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
9 years agotests/kmstest: support atmel-hlcdc
Boris BREZILLON [Thu, 28 May 2015 08:07:43 +0000 (10:07 +0200)]
tests/kmstest: support atmel-hlcdc

Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
9 years agomodetest: add atmel-hlcdc driver support
Boris BREZILLON [Thu, 28 May 2015 08:07:42 +0000 (10:07 +0200)]
modetest: add atmel-hlcdc driver support

Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
9 years agomodetest: only select plane with matching format
Tobias Jakobi [Wed, 6 May 2015 12:29:33 +0000 (14:29 +0200)]
modetest: only select plane with matching format

Don't assume that a plane supports any kind of pixelformat
but do a check first.

v2: Simplify the format check.
Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agomodetest: make middle SMPTE colors transparent
Tobias Jakobi [Wed, 6 May 2015 12:22:03 +0000 (14:22 +0200)]
modetest: make middle SMPTE colors transparent

This enables us to check for overlay planes which are located
'below' the primary plane.

Since the alpha value only has an effect when creating surfaces
with an alpha-pixelformat this doesn't affect the regular
XRGB8888 primary surface.

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodrmPrime*: initialize output args to 0
Guillaume Desmottes [Wed, 29 Apr 2015 08:16:22 +0000 (10:16 +0200)]
drmPrime*: initialize output args to 0

Fix Valgrind errors because those memory was uninitialized.

https://bugs.freedesktop.org/show_bug.cgi?id=90194
Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
v2: Explicitly zero the whole struct using memclear.
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoFix one warning (v2)
Jammy Zhou [Mon, 27 Apr 2015 02:29:55 +0000 (10:29 +0800)]
Fix one warning (v2)

xf86drm.c:356:2: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
  group = (serv_group >= 0) ? serv_group : DRM_DEV_GID;
  ^

v2: do 'int' cast to fix the warning

Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoxf86drm: simplify drmMalloc/drmFree
Emil Velikov [Tue, 28 Apr 2015 12:33:46 +0000 (13:33 +0100)]
xf86drm: simplify drmMalloc/drmFree

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
9 years agomodetest: replace malloc + memset with calloc
Emil Velikov [Tue, 28 Apr 2015 12:25:24 +0000 (13:25 +0100)]
modetest: replace malloc + memset with calloc

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
9 years agomodetest: explicitly zero the newly allocated memory
Emil Velikov [Tue, 28 Apr 2015 13:20:30 +0000 (14:20 +0100)]
modetest: explicitly zero the newly allocated memory

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
9 years agoAdd device enumeration interface (v4)
frank [Tue, 19 May 2015 15:31:05 +0000 (23:31 +0800)]
Add device enumeration interface (v4)

Add an interface for enumerating PCI devices on
a system.

v3: switch to udev/sysfs for the enumeration
v4: fix warnings

Signed-off-by: Frank Min <frank.min@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
9 years agoradeon: add new bonaire pci id
Alex Deucher [Tue, 12 May 2015 17:18:37 +0000 (13:18 -0400)]
radeon: add new bonaire pci id

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
9 years agonouveau: add coherent BO attribute
Alexandre Courbot [Thu, 21 May 2015 06:08:28 +0000 (15:08 +0900)]
nouveau: add coherent BO attribute

Add a flag allowing Nouveau to specify that an object should be coherent
at allocation time. This is required for some class of objects like
fences which are randomly-accessed by both the CPU and GPU. This flag
instructs the kernel driver to make sure the object remains coherent
even on architectures for which coherency is not guaranteed by the bus.

Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
9 years agointel: Add the Broxton PCI IDs
Damien Lespiau [Fri, 15 May 2015 18:34:12 +0000 (19:34 +0100)]
intel: Add the Broxton PCI IDs

Cc: Imre Deak <imre.deak@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
9 years agoconfigure.ac: bump version to 2.4.61 for release
Ben Skeggs [Wed, 6 May 2015 23:06:31 +0000 (09:06 +1000)]
configure.ac: bump version to 2.4.61 for release

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agonouveau: restore check that avoids multiple user bos per kernel bo
Ben Skeggs [Wed, 6 May 2015 04:34:22 +0000 (14:34 +1000)]
nouveau: restore check that avoids multiple user bos per kernel bo

Lost in 5ea6f1c32628887c9df0c53bc8c199eb12633fec, triggering fdo#89842.

Unlike the PRIME fd->handle interfaces, the GEM_OPEN interface doesn't
do anything at the kernel level to prevent this situation occuring,
and we end up with multiple GEM handles for a single kernel buffer.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
9 years agomodetest: fix allocation for yuv420/yvu420
Rob Clark [Tue, 5 May 2015 15:16:23 +0000 (11:16 -0400)]
modetest: fix allocation for yuv420/yvu420

Signed-off-by: Rob Clark <robclark@freedesktop.org>
9 years agofreedreno: link against CLOCK_LIB
Emil Velikov [Wed, 1 Apr 2015 15:53:42 +0000 (16:53 +0100)]
freedreno: link against CLOCK_LIB

Required by clock_gettime()

Cc: Rob Clark <robdclark@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoandroid: set the HAVE_VISIBILITY define
Emil Velikov [Wed, 1 Apr 2015 15:54:26 +0000 (16:54 +0100)]
android: set the HAVE_VISIBILITY define

... in order to limit the exported symbols only to the required ones.
Both compilers used with Android (GCC and LLVM) support this, so set it
unconditionally.

Cc: Chih-Wei Huang <cwhuang@linux.org.tw>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agomodetest: fix the arguments of the MAKE_RGB_INFO define
Joonyoung Shim [Fri, 17 Apr 2015 04:13:59 +0000 (13:13 +0900)]
modetest: fix the arguments of the MAKE_RGB_INFO define

The current order (rbg) seems wrong.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
[Emil Velikov: Tweak the commit message.]
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agointel: Leak the userptr test bo
Tvrtko Ursulin [Fri, 17 Apr 2015 10:57:28 +0000 (11:57 +0100)]
intel: Leak the userptr test bo

In order to use userptr, the kernel tracks the owner's mm with a
mmu_notifier. Setting that is very expensive - it involves taking all
mm_locks and a stop_machine(). This tracking lives only for as long as
the client is using userptr objects - so if the client allocates then
frees a userptr in a loop, we will be executing that heavyweight setup
everytime. To ammoritize this cost, just leak the test bo and the single
backing page we use for detecting userptr.

v2: Free the object and memory when bufmgr is destroyed.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
9 years agomodetest: destroy the cursor bo
Joonyoung Shim [Mon, 13 Apr 2015 08:32:18 +0000 (17:32 +0900)]
modetest: destroy the cursor bo

Currently we are missing the bo_destroy() when modetest terminates.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
[Emil Velikov: Tweak the commit message.]
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agomodetest: clear buffer and framebuffer for planes
Joonyoung Shim [Tue, 28 Apr 2015 10:41:39 +0000 (11:41 +0100)]
modetest: clear buffer and framebuffer for planes

Currently we don't destroy buffer and remove framebuffer for
planes when closing modetest.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
[Emil Velikov: Tweak the commit message. fb_id = 0 is unused]
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agomodetest: fix the error path handling
Joonyoung Shim [Mon, 13 Apr 2015 08:32:16 +0000 (17:32 +0900)]
modetest: fix the error path handling

Remove the framebuffer and destroy the bo when error occurs on set_mode
and test_page_flip.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
[Emil Velikov: Tweak the commit message.]
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agomodetest: make use of drmModeRmFB
Joonyoung Shim [Mon, 13 Apr 2015 08:32:15 +0000 (17:32 +0900)]
modetest: make use of drmModeRmFB

We should remove the framebuffer before destroying the buffer.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
[Emil Velikov: Tweak the commit message. fb_id = 0 is unused]
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agomodetest: fix Segmentation fault
Joonyoung Shim [Mon, 13 Apr 2015 08:32:14 +0000 (17:32 +0900)]
modetest: fix Segmentation fault

If use -P option without -s option, the program segfaults due to
dev.mode.bo being NULL.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
[Emil Velikov: Tweak the commit message.]
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agomodetest: initialize handles/pitches in set_plane()
Tobias Jakobi [Mon, 20 Apr 2015 19:50:45 +0000 (21:50 +0200)]
modetest: initialize handles/pitches in set_plane()

Only the 'offsets' array was initialized to zero.
Since bo_create only sets the handles which are
necessary, were we passing garbage data to the
kernel when calling drmModeAddFB2 later.

The issue only seems to appear when passing e.g.
NV12 data to the kernel, a case where not only
handles[0] is used. I therefore also removed the
corresponding comment.

v2: Do the same for set_mode(), set_cursors()
    and test_page_flip().

Signed-off-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoAdd missing <strings.h> includes
Greg Hackmann [Thu, 16 Apr 2015 17:55:40 +0000 (10:55 -0700)]
Add missing <strings.h> includes

A couple of files use ffs() without explicitly including strings.h.
Some systems will pull in ffs()'s declaration through another header
anyway, but not when compiling against bionic in AOSP master.

Signed-off-by: Greg Hackmann <ghackmann@google.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoman: rework the Makefile.am
Emil Velikov [Mon, 6 Apr 2015 18:02:38 +0000 (19:02 +0100)]
man: rework the Makefile.am

Remove GNU make specific constructs and take into consideration that
Solaris man 7 is not the same as Linux man 7.

This commit introduces a dependency of xorg-macros 1.12 (released 4+
years ago) which is used to handle the above man section discrepancies.

Cc: Niveditha Rau <niveditha.rau@oracle.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodrm: use c99 __func__ over __FUNCTION__
Emil Velikov [Sun, 5 Apr 2015 15:50:33 +0000 (16:50 +0100)]
drm: use c99 __func__ over __FUNCTION__

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoconfigure: request/set the compiler in C99 mode
Emil Velikov [Sun, 5 Apr 2015 15:40:11 +0000 (16:40 +0100)]
configure: request/set the compiler in C99 mode

Required by intel and drmstat at least. Considering that every compiler
used to build libdrm is C99 compatible, just enable it for the whole
build.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodrm: remove drm_public macro
Emil Velikov [Tue, 31 Mar 2015 21:32:11 +0000 (22:32 +0100)]
drm: remove drm_public macro

Some compilers (like the Oracle Studio), require that the function
declaration must be annotated with the same visibility attribute as the
definition. As annotating functions with drm_public is no longer
required just remove the macro.

Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Cc: Michel Dänzer <michel.daenzer@amd.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Thierry Reding <treding@nvidia.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodrm: remove no longer needed VISIBILITY_CFLAGS
Emil Velikov [Tue, 31 Mar 2015 21:07:13 +0000 (22:07 +0100)]
drm: remove no longer needed VISIBILITY_CFLAGS

With earlier commits we've annotated the private symbols, thus
we no longer require the -fvisibility=hidden CFLAGS.

Cc: Ben Skeggs <bskeggs@redhat.com>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Cc: Michel Dänzer <michel.daenzer@amd.com>
Cc: Rob Clark <robdclark@gmail.com>
Cc: Thierry Reding <treding@nvidia.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agodrm: rename libdrm{,_macros}.h
Emil Velikov [Sun, 5 Apr 2015 14:51:59 +0000 (15:51 +0100)]
drm: rename libdrm{,_macros}.h

Provide a more meaningful name, considering what it does.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agotegra: add symbols test
Emil Velikov [Tue, 31 Mar 2015 19:14:58 +0000 (20:14 +0100)]
tegra: add symbols test

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoomap: add symbols test
Emil Velikov [Tue, 31 Mar 2015 19:12:06 +0000 (20:12 +0100)]
omap: add symbols test

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agoexynos: add symbols test
Emil Velikov [Tue, 31 Mar 2015 19:04:54 +0000 (20:04 +0100)]
exynos: add symbols test

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agolibkms: add symbols test
Emil Velikov [Tue, 31 Mar 2015 18:51:45 +0000 (19:51 +0100)]
libkms: add symbols test

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agolibkms: annotate private symbols
Emil Velikov [Mon, 23 Mar 2015 23:24:48 +0000 (23:24 +0000)]
libkms: annotate private symbols

Cc: Jakob Bornecrantz <jakob@vmware.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agonouveau: add symbols test
Emil Velikov [Tue, 31 Mar 2015 18:47:24 +0000 (19:47 +0100)]
nouveau: add symbols test

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agonouveau: annotate the private symbols
Emil Velikov [Mon, 23 Mar 2015 21:52:00 +0000 (21:52 +0000)]
nouveau: annotate the private symbols

They are less and easier to track than the public ones. The macro
drm_public will be going away by the end of the series.

Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agointel: add symbols test
Emil Velikov [Tue, 31 Mar 2015 18:43:30 +0000 (19:43 +0100)]
intel: add symbols test

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agointel: annotate the private symbols
Emil Velikov [Tue, 31 Mar 2015 20:12:14 +0000 (21:12 +0100)]
intel: annotate the private symbols

They are less and easier to track than the public ones. The macro
drm_public will be going away by the end of the series.

Cc: Damien Lespiau <damien.lespiau@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agointel: remove unused mmFindBlock
Emil Velikov [Tue, 31 Mar 2015 20:11:03 +0000 (21:11 +0100)]
intel: remove unused mmFindBlock

The function was never part of the public API and a release or so back
was hidden from the global name-space (list of exported symbols).

According to git log this function was never used internally.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
9 years agointel: remove the drm_mm* symbol workarounds
Emil Velikov [Tue, 31 Mar 2015 19:22:50 +0000 (20:22 +0100)]
intel: remove the drm_mm* symbol workarounds

Added with commit 57b4c4c32d3(Move the renaming of mm.c symbols to
symbol duplication/collision with ones that are available elsewhere.

As the public/private symbols of libdrm are properly annotated neither
one of the symbols will end up in the global name-space, thus should no
longer be required.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>