Exemple #1
0
static int kgsl_runpending(struct kgsl_device *device)
{
	if (device->flags & KGSL_FLAGS_INITIALIZED) {
		kgsl_cmdstream_memqueue_drain(device);
	}

	return KGSL_SUCCESS;
}
Exemple #2
0
int kgsl_ringbuffer_stop(struct kgsl_ringbuffer *rb)
{
	KGSL_CMD_VDBG("enter (rb=%p)\n", rb);

	if (rb->flags & KGSL_FLAGS_STARTED) {
		KGSL_CMD_DBG("disabling CP interrupts: mask %08x\n", 0);
		kgsl_yamato_regwrite(rb->device, REG_CP_INT_CNTL, 0);

		/* ME_HALT */
		kgsl_yamato_regwrite(rb->device, REG_CP_ME_CNTL, 0x10000000);

		kgsl_cmdstream_memqueue_drain(rb->device);

		rb->flags &= ~KGSL_FLAGS_STARTED;
	}

	KGSL_CMD_VDBG("return %d\n", 0);

	return 0;
}
Exemple #3
0
int kgsl_ringbuffer_close(struct kgsl_ringbuffer *rb)
{
	KGSL_CMD_VDBG("enter (rb=%p)\n", rb);

	kgsl_cmdstream_memqueue_drain(rb->device);

	kgsl_ringbuffer_stop(rb);

	
	kgsl_yamato_cleanup_pt(rb->device, rb->device->mmu.defaultpagetable);

	if (rb->buffer_desc.hostptr)
		kgsl_sharedmem_free(&rb->buffer_desc);

	if (rb->memptrs_desc.hostptr)
		kgsl_sharedmem_free(&rb->memptrs_desc);

	rb->flags &= ~KGSL_FLAGS_INITIALIZED;

	memset(rb, 0, sizeof(struct kgsl_ringbuffer));

	KGSL_CMD_VDBG("return %d\n", 0);
	return 0;
}
Exemple #4
0
static int kgsl_runpending(struct kgsl_device *device)
{
	kgsl_cmdstream_memqueue_drain(device);

	return KGSL_SUCCESS;
}