From: Takanari Hayama Date: Mon, 30 Jun 2014 02:36:21 +0000 (+0900) Subject: Migrate from GEM to PRIME. X-Git-Tag: accepted/tizen/ivi/20150202.020104~9 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fadaptation%2Frenesas_rcar%2Fwayland-kms.git;a=commitdiff_plain;h=1794307177f81d3bce02f7708ba18ef7442e3368 Migrate from GEM to PRIME. In order to support DMABUF, GEM is now replaced with PRIME. Change-Id: I645caa28af973dbf7167588a7f955a7cce131165 Signed-off-by: Tony SIM --- diff --git a/wayland-kms.c b/wayland-kms.c index 62466f3..c6d37ff 100644 --- a/wayland-kms.c +++ b/wayland-kms.c @@ -75,6 +75,7 @@ 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); @@ -155,7 +156,7 @@ kms_create_buffer(struct wl_client *client, struct wl_resource *resource, buffer->fd = prime_fd; WLKMS_DEBUG("%s: %s: prime_fd=%d\n", __FILE__, __func__, prime_fd); -#if 0 + if ((err = drmPrimeFDToHandle(kms->fd, prime_fd, &buffer->handle))) { WLKMS_DEBUG("%s: %s: drmPrimeFDToHandle() failed...%d (%s)\n", __FILE__, __func__, err, strerror(errno)); wl_resource_post_error(resource, @@ -163,23 +164,6 @@ kms_create_buffer(struct wl_client *client, struct wl_resource *resource, "invalid prime FD"); return; } -#else - { - struct drm_gem_open op; - int ret; - - op.name = prime_fd; - op.handle = 0; - - ret = drmIoctl(kms->fd, DRM_IOCTL_GEM_OPEN, &op); - if (ret) { - WLKMS_DEBUG("%s: %s: DRM_IOCTL_GEM_OPEN failed...(%s)\n", __FILE__, __func__, strerror(errno)); - wl_resource_post_error(resource, WL_KMS_ERROR_INVALID_FD, "invalid prime FD"); - return; - } - buffer->handle = op.handle; - } -#endif // We create a wl_buffer buffer->resource = wl_resource_create(client, &wl_buffer_interface, 1, id); diff --git a/wayland-kms.xml b/wayland-kms.xml index 9976f95..28e687e 100644 --- a/wayland-kms.xml +++ b/wayland-kms.xml @@ -114,7 +114,7 @@ surface must have a prime FD. --> - +