X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=exynos.c;h=cf95b38ea10168d3558960605039437b84152483;hb=293d9e3edfb46d0a988f99a835be16349bea0c3c;hp=0d935ebf13cce5f93e5d8239d22f278d06c548ca;hpb=8ac0c9a9550bd1fa57e49613fae45df9001f74fc;p=android-x86%2Fexternal-minigbm.git diff --git a/exynos.c b/exynos.c index 0d935eb..cf95b38 100644 --- a/exynos.c +++ b/exynos.c @@ -25,22 +25,17 @@ static const uint32_t texture_source_formats[] = { DRM_FORMAT_NV12 }; static int exynos_init(struct driver *drv) { - int ret; - ret = drv_add_combinations(drv, render_target_formats, ARRAY_SIZE(render_target_formats), - &LINEAR_METADATA, BO_USE_RENDER_MASK); - if (ret) - return ret; + drv_add_combinations(drv, render_target_formats, ARRAY_SIZE(render_target_formats), + &LINEAR_METADATA, BO_USE_RENDER_MASK); - ret = drv_add_combinations(drv, texture_source_formats, ARRAY_SIZE(texture_source_formats), - &LINEAR_METADATA, BO_USE_TEXTURE_MASK); - if (ret) - return ret; + drv_add_combinations(drv, texture_source_formats, ARRAY_SIZE(texture_source_formats), + &LINEAR_METADATA, BO_USE_TEXTURE_MASK); return drv_modify_linear_combinations(drv); } static int exynos_bo_create(struct bo *bo, uint32_t width, uint32_t height, uint32_t format, - uint32_t flags) + uint64_t use_flags) { size_t plane; @@ -61,7 +56,7 @@ static int exynos_bo_create(struct bo *bo, uint32_t width, uint32_t height, uint bo->total_size = bo->sizes[0] = height * bo->strides[0]; bo->offsets[0] = 0; } else { - fprintf(stderr, "drv: unsupported format %X\n", format); + drv_log("unsupported format %X\n", format); assert(0); return -EINVAL; } @@ -77,8 +72,7 @@ static int exynos_bo_create(struct bo *bo, uint32_t width, uint32_t height, uint ret = drmIoctl(bo->drv->fd, DRM_IOCTL_EXYNOS_GEM_CREATE, &gem_create); if (ret) { - fprintf(stderr, "drv: DRM_IOCTL_EXYNOS_GEM_CREATE failed (size=%zu)\n", - size); + drv_log("DRM_IOCTL_EXYNOS_GEM_CREATE failed (size=%zu)\n", size); goto cleanup_planes; } @@ -94,7 +88,7 @@ cleanup_planes: gem_close.handle = bo->handles[plane - 1].u32; int gem_close_ret = drmIoctl(bo->drv->fd, DRM_IOCTL_GEM_CLOSE, &gem_close); if (gem_close_ret) { - fprintf(stderr, "drv: DRM_IOCTL_GEM_CLOSE failed: %d\n", gem_close_ret); + drv_log("DRM_IOCTL_GEM_CLOSE failed: %d\n", gem_close_ret); } } @@ -105,13 +99,14 @@ cleanup_planes: * Use dumb mapping with exynos even though a GEM buffer is created. * libdrm does the same thing in exynos_drm.c */ -struct backend backend_exynos = { +const struct backend backend_exynos = { .name = "exynos", .init = exynos_init, .bo_create = exynos_bo_create, .bo_destroy = drv_gem_bo_destroy, .bo_import = drv_prime_bo_import, .bo_map = drv_dumb_bo_map, + .bo_unmap = drv_bo_munmap, }; #endif