static void nvhost_syncpt_deinit_timeline(struct nvhost_syncpt *sp)
{
#if CONFIG_TEGRA_GRHOST_SYNC
	int i;
	for (i = 0; i < nvhost_syncpt_nb_pts(sp); i++) {
		if (sp->timeline && sp->timeline[i]) {
			sync_timeline_destroy(
				(struct sync_timeline *)sp->timeline[i]);
		}
	}
	kfree(sp->timeline);
	sp->timeline = NULL;
	if (sp->timeline_invalid)
		sync_timeline_destroy((struct sync_timeline *)sp->timeline_invalid);
#endif
}
static int sw_sync_release(struct inode *inode, struct file *file)
{
	struct sw_sync_timeline *obj = file->private_data;

	sync_timeline_destroy(&obj->obj);
	return 0;
}
void i915_sync_timeline_destroy(struct intel_ring_buffer *ring)
{
	if (ring->timeline) {
		sync_timeline_destroy(&ring->timeline->obj);
		ring->timeline = NULL;
	}
}
示例#4
0
static int mali_stream_close(struct inode * inode, struct file * file)
{
	struct sync_timeline * tl;
	tl = (struct sync_timeline*)file->private_data;
	BUG_ON(!tl);
	sync_timeline_destroy(tl);
	return 0;
}
示例#5
0
void sde_fence_deinit(struct sde_fence *fence)
{
	if (!fence) {
		SDE_ERROR("invalid fence\n");
		return;
	}

	mutex_destroy(&fence->fence_lock);
	if (fence->timeline)
		sync_timeline_destroy(fence->timeline);
}
void k3fb_buf_sync_unregister(struct platform_device *pdev)
{
	struct k3_fb_data_type *k3fd = NULL;

	BUG_ON(pdev == NULL);
	k3fd = platform_get_drvdata(pdev);
	BUG_ON(k3fd == NULL);

	K3_FB_DEBUG("fb%d, +.\n", k3fd->index);

	if (k3fd->buf_sync_ctrl.timeline) {
		sync_timeline_destroy((struct sync_timeline *)k3fd->buf_sync_ctrl.timeline);
		k3fd->buf_sync_ctrl.timeline = NULL;
	}

	K3_FB_DEBUG("fb%d, -.\n", k3fd->index);
}
示例#7
0
int sprd_destroy_timeline(struct sync_timeline_data *parent)
{
	struct sprd_sync_timeline *obj = NULL;

	if (parent->timeline == NULL)
	{
		printk(KERN_ERR "sprd_fence timeline has been released\n");
		return 0;
	}

	mutex_lock(&(parent->sync_mutex));
	obj = parent->timeline;
	sync_timeline_destroy(&obj->obj);
	mutex_unlock(&(parent->sync_mutex));

	return 0;
}
mali_error kbase_stream_create(const char *name, int *const out_fd)
{
	struct sync_timeline *tl;

	BUG_ON(!out_fd);

	tl = kbase_sync_timeline_alloc(name);
	if (!tl)
		return MALI_ERROR_FUNCTION_FAILED;

	*out_fd = anon_inode_getfd(name, &stream_fops, tl, O_RDONLY | O_CLOEXEC);

	if (*out_fd < 0) {
		sync_timeline_destroy(tl);
		return MALI_ERROR_FUNCTION_FAILED;
	} else {
		return MALI_ERROR_NONE;
	}
}
int kbase_stream_create(const char *name, int *const out_fd)
{
	struct sync_timeline *tl;

	BUG_ON(!out_fd);

	tl = kbase_sync_timeline_alloc(name);
	if (!tl)
		return -EINVAL;

	*out_fd = anon_inode_getfd(name, &stream_fops, tl, O_RDONLY | O_CLOEXEC);

	if (*out_fd < 0) {
		sync_timeline_destroy(tl);
		return -EINVAL;
	}

	return 0;
}
示例#10
0
_mali_osk_errcode_t mali_stream_create(const char * name, int *out_fd)
{
	struct sync_timeline * tl;
	BUG_ON(!out_fd);

	tl = mali_sync_timeline_alloc(name);
	if (!tl)
	{
		return _MALI_OSK_ERR_FAULT;
	}

	*out_fd = anon_inode_getfd(name, &stream_fops, tl, O_RDONLY | O_CLOEXEC);

	if (*out_fd < 0)
	{
		sync_timeline_destroy(tl);
		return _MALI_OSK_ERR_FAULT;
	}
	else
	{
		return _MALI_OSK_ERR_OK;
	}
}
示例#11
0
void kgsl_sync_timeline_destroy(struct kgsl_context *context)
{
	sync_timeline_destroy(context->timeline);
}
示例#12
0
void timeline_destroy(struct sw_sync_timeline *obj)
{
    sync_timeline_destroy(&obj->obj);
}