summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-12-22nouveau: move object functions up, to avoid future foward declsBen Skeggs1-56/+56
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>
2015-12-22nouveau: move more abi16-specific logic into abi16.cBen Skeggs3-58/+93
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>
2015-12-22nouveau: import and install a selection of nvif headers from the kernelBen Skeggs10-2/+473
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>
2015-12-18tests: remove missleading commentsStefan Agner1-14/+1
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>
2015-12-18vbltest: Use util_open()Thierry Reding2-21/+20
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>
2015-12-18proptest: Use util_open()Thierry Reding1-22/+38
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>
2015-12-18modetest: Use util_open()Thierry Reding1-24/+3
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>
2015-12-18tests: Add helper to open a device/moduleThierry Reding2-0/+57
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>
2015-12-18tests: kms: Implement universal planes testThierry Reding2-2/+365
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>
2015-12-18tests: kms: Implement CRTC stealing testThierry Reding2-0/+172
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>
2015-12-18tests: Add libkms-test libraryThierry Reding9-1/+795
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>
2015-12-18proptest: Add Android supportThierry Reding3-2/+19
Signed-off-by: Thierry Reding <treding@nvidia.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2015-12-18tests: Move name tables to libutilThierry Reding5-101/+165
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>
2015-12-18tests: Split helpers into libraryThierry Reding23-990/+1223
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>
2015-12-18exynos: bump version numberTobias Jakobi1-1/+1
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>
2015-12-18tests/exynos: add test for g2d_moveTobias Jakobi2-0/+133
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>
2015-12-18exynos/fimg2d: add g2d_moveTobias Jakobi2-0/+98
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>
2015-12-18exynos: fimg2d: add g2d_set_directionTobias Jakobi1-0/+51
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>
2015-12-18tests/exynos: use XRGB8888 for framebufferTobias Jakobi1-1/+1
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>
2015-12-18tests/exynos: add fimg2d event testTobias Jakobi3-2/+336
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>
2015-12-18exynos/fimg2d: add g2d_config_eventTobias Jakobi3-2/+28
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>
2015-12-18tests/exynos: add fimg2d performance analysisTobias Jakobi3-2/+345
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>
2015-12-18exynos: Introduce exynos_handle_event()Tobias Jakobi4-0/+115
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>
2015-12-14intel: Add drm_intel_bo_set_softpin_offset to intel-symbol-checkKristian Høgsberg Kristensen1-0/+1
Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
2015-12-14Add tests/drmdevice to .gitignoreKristian Høgsberg Kristensen1-0/+1
Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
2015-12-14intel: Add support for softpinMichał Winiarski4-27/+169
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>
2015-12-14intel: add drm_intel_bo_use_48b_address_range to symbol-check testMichel Thierry1-0/+1
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>
2015-12-14intel: 48b ppgtt support (EXEC_OBJECT_SUPPORTS_48B_ADDRESS flag)Michel Thierry4-19/+95
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>
2015-12-14intel: Update i915_drm.hKristian Høgsberg Kristensen1-10/+49
Copy from drm-intel-nightly a307a3a81c2bf2883457e03abcf5c9520cf452c1. Signed-off-by: Kristian Høgsberg Kristensen <kristian.h.kristensen@intel.com>
2015-12-01intel: add the missing <strings.h> includeChih-Wei Huang1-0/+1
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>
2015-11-20amdgpu: Make amdgpu_cs_calculate_timeout() return something sensible on errorTom St Denis1-2/+4
Signed-off-by: Tom St Denis <tom.stdenis@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
2015-11-20amdgpu: fix overflow for timeout calculationJammy Zhou1-2/+6
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>
2015-11-16configure.ac: test for the same atomic function as the one we useEmil Velikov1-1/+1
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>
2015-11-16configure.ac: rework compiler builtin atomic testsJonathan Gray1-2/+2
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>
2015-11-10radeon: Handle surface offsets exceeding 32 bits correctlyMichel Dänzer1-8/+9
The slice_size and bo_size fields were getting truncated to 32 bits. Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
2015-11-05libdrm: Use userspace compatible type in fourcc_mod_code macroTvrtko Ursulin1-1/+1
__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>
2015-11-03intel: Cleanup SKL PCI ID definitions.Ben Widawsky1-18/+22
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>
2015-11-03intel: Add SKL GT4 PCI IDsBen Widawsky1-4/+14
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>
2015-10-22amdgpu: Cleanly handle ENOMEM on result in amdgpu_bo_list_create()Tom St Denis1-2/+9
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>
2015-10-22amdgpu: Fix use-after-free bug in vamgr_deinitTom St Denis1-2/+2
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>
2015-10-22amdgpu: Unlock mutex if base_required is invalidTom St Denis1-1/+3
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>
2015-10-21drm: add virtgpu_drm.hDave Airlie1-0/+167
This is in drm-next now, so add to libdrm. Signed-off-by: Dave Airlie <airlied@redhat.com>
2015-10-20xf86drm: Handle unrecognized subsystems safely in drmGetDevice[s]()Matt Roper1-2/+2
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>
2015-10-20xf86drm: Fix error handling for drmGetDevice()Matt Roper1-5/+5
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>
2015-10-14Fix void pointer arithmetic in drmProcessPciDeviceMichel Dänzer1-9/+10
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>
2015-10-02xf86drm: Fix error handling for drmGetDevices()Matt Roper1-5/+5
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>
2015-09-28xf86drm: include <limits.h> for PATH_MAXFelix Janda1-0/+1
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>
2015-09-21xf86drm: remove makedev() hack/workaroundEmil Velikov1-8/+0
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>
2015-09-21exynos/fimg2d: remove g2d_context from public headerTobias Jakobi2-13/+16
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>
2015-09-21exynos/fimg2d: add message prefixTobias Jakobi1-14/+16
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>