Subversion Repositories Kolibri OS

Rev

Rev 4075 | Rev 5078 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4075 Rev 4569
Line 269... Line 269...
269
	BUG_ON(atomic_read(&fence->kref.refcount) == 0);
269
	BUG_ON(atomic_read(&fence->kref.refcount) == 0);
270
	kref_put(&fence->kref, vmw_fence_obj_destroy_locked);
270
	kref_put(&fence->kref, vmw_fence_obj_destroy_locked);
271
	spin_unlock_irq(&fman->lock);
271
	spin_unlock_irq(&fman->lock);
272
}
272
}
Line 273... Line 273...
273
 
273
 
274
void vmw_fences_perform_actions(struct vmw_fence_manager *fman,
274
static void vmw_fences_perform_actions(struct vmw_fence_manager *fman,
275
				struct list_head *list)
275
				struct list_head *list)
276
{
276
{
Line 277... Line 277...
277
	struct vmw_fence_action *action, *next_action;
277
	struct vmw_fence_action *action, *next_action;
Line 895... Line 895...
895
 * @action - The action to add.
895
 * @action - The action to add.
896
 *
896
 *
897
 * Note that the action callbacks may be executed before this function
897
 * Note that the action callbacks may be executed before this function
898
 * returns.
898
 * returns.
899
 */
899
 */
900
void vmw_fence_obj_add_action(struct vmw_fence_obj *fence,
900
static void vmw_fence_obj_add_action(struct vmw_fence_obj *fence,
901
			      struct vmw_fence_action *action)
901
			      struct vmw_fence_action *action)
902
{
902
{
903
	struct vmw_fence_manager *fman = fence->fman;
903
	struct vmw_fence_manager *fman = fence->fman;
904
	unsigned long irq_flags;
904
	unsigned long irq_flags;
905
	bool run_update = false;
905
	bool run_update = false;
Line 991... Line 991...
991
struct vmw_event_fence_pending {
991
struct vmw_event_fence_pending {
992
	struct drm_pending_event base;
992
	struct drm_pending_event base;
993
	struct drm_vmw_event_fence event;
993
	struct drm_vmw_event_fence event;
994
};
994
};
Line 995... Line 995...
995
 
995
 
996
int vmw_event_fence_action_create(struct drm_file *file_priv,
996
static int vmw_event_fence_action_create(struct drm_file *file_priv,
997
				  struct vmw_fence_obj *fence,
997
				  struct vmw_fence_obj *fence,
998
				  uint32_t flags,
998
				  uint32_t flags,
999
				  uint64_t user_data,
999
				  uint64_t user_data,
1000
				  bool interruptible)
1000
				  bool interruptible)
Line 1079... Line 1079...
1079
	 * and if user-space wants a new reference,
1079
	 * and if user-space wants a new reference,
1080
	 * add one.
1080
	 * add one.
1081
	 */
1081
	 */
1082
	if (arg->handle) {
1082
	if (arg->handle) {
1083
		struct ttm_base_object *base =
1083
		struct ttm_base_object *base =
1084
			ttm_base_object_lookup(vmw_fp->tfile, arg->handle);
1084
			ttm_base_object_lookup_for_ref(dev_priv->tdev,
-
 
1085
						       arg->handle);
Line 1085... Line 1086...
1085
 
1086
 
1086
		if (unlikely(base == NULL)) {
1087
		if (unlikely(base == NULL)) {
1087
			DRM_ERROR("Fence event invalid fence object handle "
1088
			DRM_ERROR("Fence event invalid fence object handle "
1088
				  "0x%08lx.\n",
1089
				  "0x%08lx.\n",