From: Taekyun Kim Date: Wed, 2 Sep 2015 07:44:43 +0000 (+0900) Subject: drm: Bug fix X-Git-Tag: accepted/tizen/mobile/20151221.050925~34^2~187 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c0f455971f6b88aba6457402031e353503ea836f;p=platform%2Fcore%2Fuifw%2Fpepper.git drm: Bug fix Change-Id: I23b33d9d6ee1480bbdc2a08e5add6d954f7bf580 --- diff --git a/src/lib/drm/drm-buffer.c b/src/lib/drm/drm-buffer.c index 558b0a6..a2862ed 100644 --- a/src/lib/drm/drm-buffer.c +++ b/src/lib/drm/drm-buffer.c @@ -99,11 +99,13 @@ init_buffer_gbm(drm_buffer_t *buffer, pepper_drm_t *drm, struct gbm_bo *bo) ret = drmModeAddFB2(drm->fd, buffer->w, buffer->h, gbm_bo_get_format(bo), handles, strides, offsets, &buffer->id , 0); - PEPPER_CHECK(ret, return PEPPER_FALSE, "drmModeAddFB2() failed.\n"); - ret = drmModeAddFB(drm->fd, buffer->w, buffer->h, 24, 32, - buffer->stride, buffer->handle, &buffer->id); - PEPPER_CHECK(ret, return PEPPER_FALSE, "drmModeAddFB() failed.\n"); + if (ret != 0) + { + ret = drmModeAddFB(drm->fd, buffer->w, buffer->h, 24, 32, + buffer->stride, buffer->handle, &buffer->id); + PEPPER_CHECK(ret, return PEPPER_FALSE, "drmModeAddFB() failed.\n"); + } return PEPPER_TRUE; } diff --git a/src/lib/drm/drm-common.c b/src/lib/drm/drm-common.c index 9b95d9f..8533469 100644 --- a/src/lib/drm/drm-common.c +++ b/src/lib/drm/drm-common.c @@ -211,10 +211,10 @@ error: PEPPER_API void pepper_drm_destroy(pepper_drm_t *drm) { - drm_connector_t *conn; - drm_plane_t *plane; + drm_connector_t *conn, *next_conn; + drm_plane_t *plane, *next_plane; - pepper_list_for_each(conn, &drm->connector_list, link) + pepper_list_for_each_safe(conn, next_conn, &drm->connector_list, link) { if (conn->output) drm_output_destroy(conn->output); @@ -222,14 +222,14 @@ pepper_drm_destroy(pepper_drm_t *drm) drm_connector_destroy(conn); } - pepper_list_for_each(plane, &drm->plane_list, link) + pepper_list_for_each_safe(plane, next_plane, &drm->plane_list, link) drm_plane_destroy(plane); -/* if (drm->pixman_renderer) + if (drm->pixman_renderer) pepper_renderer_destroy(drm->pixman_renderer); if (drm->gl_renderer) - pepper_renderer_destroy(drm->gl_renderer);*/ + pepper_renderer_destroy(drm->gl_renderer); if (drm->resources) drmModeFreeResources(drm->resources); diff --git a/src/lib/drm/drm-output.c b/src/lib/drm/drm-output.c index 7aac7f9..b57ae14 100644 --- a/src/lib/drm/drm-output.c +++ b/src/lib/drm/drm-output.c @@ -347,6 +347,8 @@ init_pixman_renderer(drm_output_t *output) } pixman_region32_init(&output->previous_damage); + output->render_type = DRM_RENDER_TYPE_PIXMAN; + return; error: @@ -398,6 +400,8 @@ init_gl_renderer(drm_output_t *output) PEPPER_FORMAT_XRGB8888, &native_visual_id); PEPPER_CHECK(output->render_target, goto error, "pepper_gl_renderer_create_target() failed.\n"); + output->render_type = DRM_RENDER_TYPE_GL; + return; error: