summaryrefslogtreecommitdiff
path: root/linux-core/drm_bo.c
AgeCommit message (Collapse)Author
2007-10-16Drop destroy ioctls for fences and buffer objects.Kristian Høgsberg
We now always create a drm_ref_object for user objects and this is then the only things that holds a reference to the user object. This way unreference on will destroy the user object when the last drm_ref_object goes way.
2007-10-16Take bo type argument out of the ioctl interface.Kristian Høgsberg
The buffer object type is still tracked internally, but it is no longer part of the user space visible ioctl interface. If the bo create ioctl specifies a non-NULL buffer address we assume drm_bo_type_user, otherwise drm_bo_type_dc. Kernel side allocations call drm_buffer_object_create() directly and can still specify drm_bo_type_kernel. Not 100% this makes sense either, but with this patch, the buffer type is no longer exported and we can clean up the internals later on.
2007-10-16Eliminate support for fake buffers.[utf-8] Kristian Høgsberg
2007-10-02ttm: returning into dummy causes a buffer object leakDave Airlie
as nobody ever derefs dummy, however not returning does the deref correctly.
2007-09-25Merge branch 'master' into pre-superioctl-branchThomas Hellstrom
Conflicts: linux-core/drm_bo.c linux-core/drm_fence.c linux-core/drm_objects.h shared-core/drm.h
2007-09-25drm/ttm: fixup fence class naming and interfacesDave Airlie
This is some code for nouveau that Ben Skeggs worked on, and also fixes the naming (having class in a system header file == C++ keyword == bad plan)
2007-09-22Fix pinned buffer fence class.Thomas Hellstrom
2007-09-22Fix drm_bo.c compiling.Thomas Hellstrom
2007-09-22Add fence error member.Thomas Hellstrom
Modify the TTM backend bind arguments. Export a number of functions needed for driver-specific super-ioctls. Add a function to map buffer objects from the kernel, regardless of where they're currently placed. A number of error fixes.
2007-08-16Merge branch 'master' into bo-set-pinEric Anholt
2007-08-06Export some useful ttm functions to drivers.Ben Skeggs
2007-08-02Remove the pinned buffer from the LRU when pinning.Eric Anholt
Also, be a little safer with setting the pinned flag within the struct lock. I'm not 100% sure if this is required, but it seems like it might be.
2007-08-02Add a couple of doxygen comments from reading the code.Eric Anholt
2007-07-26Copy the important parts of object_validate into object_create().Eric Anholt
This should let us allocate buffers without holding the hardware lock. While here, add DRM_DEBUG info for the drm_bo ioctls, so you can see something more specific than just the cmd value per ioctl.
2007-07-26Replace NO_MOVE/NO_EVICT flags to buffer objects with an ioctl to set pinning.Eric Anholt
This cleans up the create/validate interfaces for this very uncommon path, and makes pinned object creation much easier to use for the X Server.
2007-07-26drm/bo: set the req pointer for each buffer to validateDave Airlie
2007-07-26drm: fix size argument for copy to/from userDave Airlie
2007-07-20Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE.Eric Anholt
The data is now in kernel space, copied in/out as appropriate according to the This results in DRM_COPY_{TO,FROM}_USER going away, and error paths to deal with those failures. This also means that XFree86 4.2.0 support for i810 DRM is lost.
2007-07-20Replace filp in ioctl arguments with drm_file *file_priv.Eric Anholt
As a fallout, replace filp storage with file_priv storage for "unique identifier of a client" all over the DRM. There is a 1:1 mapping, so this should be a noop. This could be a minor performance improvement, as everything on Linux dereferenced filp to get file_priv anyway, while only the mmap ioctls went the other direction.
2007-07-18drm: remove drm_u64_t, replace with uint64_t everwhereDave Airlie
This might break something, stdint.h inclusion in drm.h maybe required but I'm not sure yet what platforms have it what ones don't.
2007-07-16drm: remove drm_ref_tDave Airlie
2007-07-16drm: detypedef ttm/bo/fence codeDave Airlie
2007-07-16drm: remove hashtab/sman and object typedefsDave Airlie
2007-07-16drm: remove drmP.h internal typedefsDave Airlie
2007-07-16drm: remove ttm userspace typedefsDave Airlie
2007-07-11Merge branch 'master' into cleanupDave Airlie
Conflicts: libdrm/xf86drm.c linux-core/drm_bo.c linux-core/drm_fence.c
2007-06-29Fence object reference / dereference cleanup.Thomas Hellstrom
Buffer object dereference cleanup. Add a struct drm_device member to fence objects: This can simplify code, particularly in drivers.
2007-06-15Indentation fixes.Thomas Hellstrom
2007-06-15Fix refcounting / lock race.Thomas Hellstrom
Reported by Steve Wilkins / Michel Dänzer.
2007-06-15Locking fixes and instrumentation.Thomas Hellstrom
2007-06-13Make sure we read fence->signaled while spinlocked.Thomas Hellstrom
2007-06-13Fix fence object deref race.Thomas Hellstrom
2007-06-12Fix some obvious bugs.Thomas Hellstrom
2007-06-12Try to make buffer object / fence object ioctl args 64-bit safe.Thomas Hellstrom
Introduce tile members for future tiled buffer support. Allow user-space to explicitly define a fence-class. Remove the implicit fence-class mechanism. 64-bit wide buffer object flag member.
2007-05-26Revert "drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls."Dave Airlie
This reverts commit 3fdef0dc2000308b16907b95f637c60acde80a74. ditto not on master yet
2007-05-26drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls.Dave Airlie
This is the first bunch of ioctls
2007-05-08ttm: complete drm buffer object ioctl splitDave Airlie
retain the op operation for validate/fence operations
2007-05-08drm/ttm: ioctl cleanup for buffer object - user side onlyDave Airlie
This just cleans up the xf86drm.c to what I want and drm.h, I need to fix up the kernel internals to suit these changes now. I've moved to using struct instead of typedefs for the bo and it doesn't look that bad so I'll do the same thing for mm and fence..
2007-05-06drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls.Dave Airlie
This is the first bunch of ioctls
2007-04-26drm/ttm: allow drm_buffer_object_create to be used in-kernelJesse Barnes
2007-04-26Add new buffer object type for kernel allocations that don't initially have ↵Jesse Barnes
a user mapping. (cherry picked from commit 2e21779992bd5026d8ec4dea52466377dbe5a0ed)
2007-04-17Don't always free up memory space when we unpin buffers.Thomas Hellstrom
2007-04-17Fix buffer object reference problems.Thomas Hellstrom
(Reported by Dave Airlie).
2007-04-17Add a code comment.Thomas Hellstrom
2007-04-16Require the hardware lock for buffer creationThomas Hellstrom
(since that implies a validate). Fix drm_bo_wait_unfenced error messages and codes. Fix some return codes from libdrm.
2007-04-03Evicted no-move buffers can get lost if they end up in anotherThomas Hellstrom
memory type than local.
2007-04-03Fix an oops when trying to clean a not yet initialized memory type.Thomas Hellstrom
2007-03-29drm/bo: avoid oops if the memory manager for this type isn't initialisedDave Airlie
2007-03-19whitespace cleanup pending a kernel mergeDave Airlie
2007-02-16Simple fence object sample driver for via, based on idling the GPU.Thomas Hellstrom
Buffer object driver for via. Some changes to buffer object driver callbacks. Improve fence flushing.