X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=wayland-kms.c;h=62466f378221b465c5dfa184a4b6fe521c919b5b;hb=758d890023724360f94fe8f5af40b6e3d385bc22;hp=fbe6532b346edaf30281306f069d6cf5b31968c5;hpb=22f3f3b80f7724c45991cda40f1033822dc76d22;p=platform%2Fadaptation%2Frenesas_rcar%2Fwayland-kms.git diff --git a/wayland-kms.c b/wayland-kms.c index fbe6532..62466f3 100644 --- a/wayland-kms.c +++ b/wayland-kms.c @@ -73,6 +73,16 @@ struct wl_kms { static void destroy_buffer(struct wl_resource *resource) { struct wl_kms_buffer *buffer = resource->data; + struct drm_gem_close close; + int ret; + if (buffer->handle) { + close.handle = buffer->handle; + ret = drmIoctl(buffer->kms->fd, DRM_IOCTL_GEM_CLOSE, &close); + if (ret) + WLKMS_DEBUG("%s: %s: DRM_IOCTL_GEM_CLOSE failed.(%s)\n", + __FILE__, __func__, strerror(errno)); + } + free(buffer); } @@ -209,6 +219,11 @@ bind_kms(struct wl_client *client, void *data, uint32_t version, uint32_t id) wl_resource_post_event(resource, WL_KMS_FORMAT, WL_KMS_FORMAT_XRGB8888); } +int wayland_kms_fd_get(struct wl_kms* kms) +{ + return kms->fd; +} + struct wl_kms_buffer *wayland_kms_buffer_get(struct wl_resource *resource) { if (resource == NULL)