summaryrefslogtreecommitdiff
path: root/linux-core/drm_bo.c
AgeCommit message (Collapse)Author
2007-10-26Buffer flags and masks are 64-bit.Thomas Hellstrom
don't mask off the high dword. Signed-off-by: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
2007-10-25Buffer manager:Thomas Hellstrom
Implement a version check IOCTL for drivers that don't use drmMMInit from user-space. Remove the minor check from the kernel code. That's really up to the driver. Bump major.
2007-10-25Fix buffer object flag / mask checking.Thomas Hellstrom
2007-10-22Don't clobber the unfenced list with DONT_FENCE operations.Thomas Hellstrom
2007-10-21Remove the need for the hardware lock in the buffer manager.Thomas Hellstrom
Add interface entry cleaning a memory type without touching NO_EVICT buffers.
2007-10-20Simple replacement for hardware lock in some cases.Thomas Hellstrom
Fix i915 since last commit.
2007-10-19Some comment updates pending removal of the init mutex.Thomas Hellstrom
2007-10-19No fence_class argument on drmBOSetStatus since it's notThomas Hellstrom
associated with a particular command submission.
2007-10-19Remove the clean_unfenced function.Thomas Hellstrom
Change the restriction that non-creators can't change the buffer flags to non-creators can't change EVICT and NO_MOVE flags.
2007-10-17Only allow creator to change shared buffer mask.Thomas Hellstrom
2007-10-17Remove the op ioctl, and replace it with a setuser ioctl.Thomas Hellstrom
Remove need for lock for now. May create races when we clean memory areas or on takedown. Needs to be fixed. Really do a validate on buffer creation in order to avoid problems with fixed memory buffers.
2007-10-17Revert "Replace NO_MOVE/NO_EVICT flags to buffer objects with an ioctl to ↵Thomas Hellstrom
set pinning." This reverts cf2d569daca6954d11a796f4d110148ae2e0c827 commit.
2007-10-17Revert "Copy the important parts of object_validate into object_create()."Thomas Hellstrom
This reverts f9c27aa50b715a7d21858f1ce9e4785120bd0c36 commit.
2007-10-17Revert "Remove the pinned buffer from the LRU when pinning."Thomas Hellstrom
This reverts 3a0bc518e35c62bb9c64c9105f836584d949653f commit.
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