int kgsl_ringbuffer_close(struct kgsl_ringbuffer *rb) { KGSL_CMD_VDBG("enter (rb=%p)\n", rb); /* this must happen before first sharedmem_free */ 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; }
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; }