OSDN Git Service

minigbm: add spew on IOCTL failures.
authorIlja H. Friedel <ihf@chromium.org>
Thu, 9 Apr 2015 21:08:36 +0000 (14:08 -0700)
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>
Fri, 10 Apr 2015 05:48:04 +0000 (05:48 +0000)
Having spew on errors would have made debugging the Netflix
double fd close more obvious.

BUG=chromium:462459, chromium:464628
TEST=Builds for link, tegra, nyan.

Change-Id: I050794fbca8e9291752e52119751847ffcacd798
Reviewed-on: https://chromium-review.googlesource.com/265065
Reviewed-by: Ilja Friedel <ihf@chromium.org>
Commit-Queue: Ilja Friedel <ihf@chromium.org>
Tested-by: Ilja Friedel <ihf@chromium.org>
exynos.c
helpers.c
i915.c
mediatek.c
rockchip.c
tegra.c

index 6015d75..c09d52d 100644 (file)
--- a/exynos.c
+++ b/exynos.c
@@ -6,6 +6,7 @@
 
 #ifdef GBM_EXYNOS
 
+#include <stdio.h>
 #include <string.h>
 #include <xf86drm.h>
 #include <exynos_drm.h>
@@ -24,8 +25,11 @@ int gbm_exynos_bo_create(struct gbm_bo *bo, uint32_t width, uint32_t height, uin
        gem_create.flags = EXYNOS_BO_NONCONTIG;
 
        ret = drmIoctl(bo->gbm->fd, DRM_IOCTL_EXYNOS_GEM_CREATE, &gem_create);
-       if (ret)
+       if (ret) {
+               fprintf(stderr, "minigbm: DRM_IOCTL_EXYNOS_GEM_CREATE failed "
+                               "(size=%zu)\n", size);
                return ret;
+       }
 
        bo->handle.u32 = gem_create.handle;
        bo->size = size;
index caed6e6..2b72f1a 100644 (file)
--- a/helpers.c
+++ b/helpers.c
@@ -100,8 +100,11 @@ int gbm_dumb_bo_create(struct gbm_bo *bo, uint32_t width, uint32_t height, uint3
        create_dumb.flags = 0;
 
        ret = drmIoctl(bo->gbm->fd, DRM_IOCTL_MODE_CREATE_DUMB, &create_dumb);
-       if (ret)
+       if (ret) {
+               fprintf(stderr, "minigbm: DRM_IOCTL_MODE_CREATE_DUMB failed "
+                               "(handle=%x)\n", bo->handle.u32);
                return ret;
+       }
 
        bo->handle.u32 = create_dumb.handle;
        bo->size = create_dumb.size;
@@ -119,8 +122,11 @@ int gbm_dumb_bo_destroy(struct gbm_bo *bo)
        destroy_dumb.handle = bo->handle.u32;
 
        ret = drmIoctl(bo->gbm->fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy_dumb);
-       if (ret)
+       if (ret) {
+               fprintf(stderr, "minigbm: DRM_IOCTL_MODE_DESTROY_DUMB failed "
+                               "(handle=%x)\n", bo->handle.u32);
                return ret;
+       }
 
        return 0;
 }
@@ -134,8 +140,11 @@ int gbm_gem_bo_destroy(struct gbm_bo *bo)
        gem_close.handle = bo->handle.u32;
 
        ret = drmIoctl(bo->gbm->fd, DRM_IOCTL_GEM_CLOSE, &gem_close);
-       if (ret)
+       if (ret) {
+               fprintf(stderr, "minigbm: DRM_IOCTL_GEM_CLOSE failed "
+                               "(handle=%x)\n", bo->handle.u32);
                return ret;
+       }
 
        return 0;
 }
diff --git a/i915.c b/i915.c
index 59fa170..511e4f4 100644 (file)
--- a/i915.c
+++ b/i915.c
@@ -6,6 +6,7 @@
 
 #ifdef GBM_I915
 
+#include <stdio.h>
 #include <errno.h>
 #include <string.h>
 #include <stdio.h>
@@ -49,6 +50,7 @@ int gbm_i915_init(struct gbm_device *gbm)
        get_param.value = &device_id;
        ret = drmIoctl(gbm->fd, DRM_IOCTL_I915_GETPARAM, &get_param);
        if (ret) {
+               fprintf(stderr, "minigbm: DRM_IOCTL_I915_GETPARAM failed\n");
                free(i915_gbm);
                return -1;
        }
@@ -143,9 +145,11 @@ int gbm_i915_bo_create(struct gbm_bo *bo, uint32_t width, uint32_t height, uint3
        gem_create.size = size;
 
        ret = drmIoctl(gbm->fd, DRM_IOCTL_I915_GEM_CREATE, &gem_create);
-       if (ret)
+       if (ret) {
+               fprintf(stderr, "minigbm: DRM_IOCTL_I915_GEM_CREATE failed "
+                               "(size=%zu)\n", size);
                return ret;
-
+       }
        bo->handle.u32 = gem_create.handle;
        bo->size = size;
 
@@ -160,6 +164,12 @@ int gbm_i915_bo_create(struct gbm_bo *bo, uint32_t width, uint32_t height, uint3
        if (ret == -1) {
                struct drm_gem_close gem_close;
                gem_close.handle = bo->handle.u32;
+               fprintf(stderr, "minigbm: DRM_IOCTL_I915_GEM_SET_TILING failed "
+                               "errno=%x (handle=%x, tiling=%x, stride=%x)\n",
+                               errno,
+                               gem_set_tiling.handle,
+                               gem_set_tiling.tiling_mode,
+                               gem_set_tiling.stride);
                drmIoctl(gbm->fd, DRM_IOCTL_GEM_CLOSE, &gem_close);
                return -errno;
        }
index 01eec63..c33dc90 100644 (file)
@@ -6,6 +6,7 @@
 
 #ifdef GBM_MEDIATEK
 
+#include <stdio.h>
 #include <string.h>
 #include <xf86drm.h>
 #include <mediatek_drm.h>
@@ -23,8 +24,11 @@ int gbm_mediatek_bo_create(struct gbm_bo *bo, uint32_t width, uint32_t height, u
        gem_create.size = size;
 
        ret = drmIoctl(bo->gbm->fd, DRM_IOCTL_MTK_GEM_CREATE, &gem_create);
-       if (ret)
+       if (ret) {
+               fprintf(stderr, "minigbm: DRM_IOCTL_MTK_GEM_CREATE failed "
+                               "(size=%zu)\n", size);
                return ret;
+       }
 
        bo->handle.u32 = gem_create.handle;
        bo->size = size;
index 59bc885..92c8ca9 100644 (file)
@@ -6,6 +6,7 @@
 
 #ifdef GBM_ROCKCHIP
 
+#include <stdio.h>
 #include <string.h>
 #include <xf86drm.h>
 #include <rockchip_drm.h>
@@ -23,8 +24,11 @@ int gbm_rockchip_bo_create(struct gbm_bo *bo, uint32_t width, uint32_t height, u
        gem_create.size = size;
 
        ret = drmIoctl(bo->gbm->fd, DRM_IOCTL_ROCKCHIP_GEM_CREATE, &gem_create);
-       if (ret)
+       if (ret) {
+               fprintf(stderr, "minigbm: DRM_IOCTL_ROCKCHIP_GEM_CREATE failed "
+                               "(size=%zu)\n", size);
                return ret;
+       }
 
        bo->handle.u32 = gem_create.handle;
        bo->size = size;
diff --git a/tegra.c b/tegra.c
index 84ee537..dcd53e9 100644 (file)
--- a/tegra.c
+++ b/tegra.c
@@ -6,6 +6,7 @@
 
 #ifdef GBM_TEGRA
 
+#include <stdio.h>
 #include <string.h>
 #include <xf86drm.h>
 #include <tegra_drm.h>
@@ -105,8 +106,11 @@ static int gbm_tegra_bo_create(struct gbm_bo *bo, uint32_t width, uint32_t heigh
        gem_create.flags = 0;
 
        ret = drmIoctl(bo->gbm->fd, DRM_IOCTL_TEGRA_GEM_CREATE, &gem_create);
-       if (ret)
+       if (ret) {
+               fprintf(stderr, "minigbm: DRM_IOCTL_TEGRA_GEM_CREATE failed "
+                               "(size=%zu)\n", size);
                return ret;
+       }
 
        bo->handle.u32 = gem_create.handle;
        bo->size = size;