OSDN Git Service

minigbm: stop faking the protected buffers
[android-x86/external-minigbm.git] / exynos.c
index 526603e..5862643 100644 (file)
--- a/exynos.c
+++ b/exynos.c
@@ -45,35 +45,34 @@ static int exynos_bo_create(struct bo *bo, uint32_t width, uint32_t height, uint
                width = ALIGN(width, 16);
                height = ALIGN(height, 32);
                chroma_height = ALIGN(height / 2, 32);
-               bo->strides[0] = bo->strides[1] = width;
+               bo->meta.strides[0] = bo->meta.strides[1] = width;
                /* MFC v8+ requires 64 byte padding in the end of luma and chroma buffers. */
-               bo->sizes[0] = bo->strides[0] * height + 64;
-               bo->sizes[1] = bo->strides[1] * chroma_height + 64;
-               bo->offsets[0] = bo->offsets[1] = 0;
-               bo->total_size = bo->sizes[0] + bo->sizes[1];
+               bo->meta.sizes[0] = bo->meta.strides[0] * height + 64;
+               bo->meta.sizes[1] = bo->meta.strides[1] * chroma_height + 64;
+               bo->meta.offsets[0] = bo->meta.offsets[1] = 0;
+               bo->meta.total_size = bo->meta.sizes[0] + bo->meta.sizes[1];
        } else if (format == DRM_FORMAT_XRGB8888 || format == DRM_FORMAT_ARGB8888) {
-               bo->strides[0] = drv_stride_from_format(format, width, 0);
-               bo->total_size = bo->sizes[0] = height * bo->strides[0];
-               bo->offsets[0] = 0;
+               bo->meta.strides[0] = drv_stride_from_format(format, width, 0);
+               bo->meta.total_size = bo->meta.sizes[0] = height * bo->meta.strides[0];
+               bo->meta.offsets[0] = 0;
        } else {
-               fprintf(stderr, "drv: unsupported format %X\n", format);
+               drv_log("unsupported format %X\n", format);
                assert(0);
                return -EINVAL;
        }
 
        int ret;
-       for (plane = 0; plane < bo->num_planes; plane++) {
-               size_t size = bo->sizes[plane];
-               struct drm_exynos_gem_create gem_create;
+       for (plane = 0; plane < bo->meta.num_planes; plane++) {
+               size_t size = bo->meta.sizes[plane];
+               struct drm_exynos_gem_create gem_create = { 0 };
 
-               memset(&gem_create, 0, sizeof(gem_create));
                gem_create.size = size;
                gem_create.flags = EXYNOS_BO_NONCONTIG;
 
                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);
+                       ret = -errno;
                        goto cleanup_planes;
                }
 
@@ -84,12 +83,12 @@ static int exynos_bo_create(struct bo *bo, uint32_t width, uint32_t height, uint
 
 cleanup_planes:
        for (; plane != 0; plane--) {
-               struct drm_gem_close gem_close;
-               memset(&gem_close, 0, sizeof(gem_close));
+               struct drm_gem_close gem_close = { 0 };
+
                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);
                }
        }