diff options
author | Thierry Reding <treding@nvidia.com> | 2014-11-27 16:55:44 +0100 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2016-07-04 11:36:20 +0200 |
commit | 96357f77e79eae2cfd4b9c0186d0fafabb09ba55 (patch) | |
tree | a94e585ba464e3488d2e00ec887f18c71e6ca875 | |
parent | 3e63a55bc58cde7a1c352eb32a36a8ff36470dbf (diff) |
Revert "gallium/tegra: Use libdrm_tegra API"
This reverts commit 6a9da427578503d8df92f91d1dedf6fd3099ba98.
-rw-r--r-- | src/gallium/drivers/tegra/tegra_resource.c | 32 | ||||
-rw-r--r-- | src/gallium/drivers/tegra/tegra_resource.h | 1 | ||||
-rw-r--r-- | src/gallium/drivers/tegra/tegra_screen.c | 12 | ||||
-rw-r--r-- | src/gallium/drivers/tegra/tegra_screen.h | 2 |
4 files changed, 10 insertions, 37 deletions
diff --git a/src/gallium/drivers/tegra/tegra_resource.c b/src/gallium/drivers/tegra/tegra_resource.c index 8e3b0f49302..3b8accad9f3 100644 --- a/src/gallium/drivers/tegra/tegra_resource.c +++ b/src/gallium/drivers/tegra/tegra_resource.c @@ -27,7 +27,6 @@ #include <stdio.h> #include <drm/tegra_drm.h> -#include <libdrm/tegra.h> #include <xf86drm.h> #include "pipe/p_state.h" @@ -71,10 +70,9 @@ tegra_resource_create(struct pipe_screen *pscreen, /* import scanout buffers for display */ if (template->bind & PIPE_BIND_SCANOUT) { - struct drm_tegra_bo_tiling tiling; + struct drm_tegra_gem_set_tiling args; struct winsys_handle handle; boolean status; - size_t size; int fd, err; resource->gpu = screen->gpu->resource_create(screen->gpu, @@ -91,7 +89,6 @@ tegra_resource_create(struct pipe_screen *pscreen, if (!status) goto destroy; - size = handle.stride * resource->gpu->height0; resource->stride = handle.stride; fd = handle.handle; @@ -105,23 +102,17 @@ tegra_resource_create(struct pipe_screen *pscreen, close(fd); - err = drm_tegra_bo_wrap(&resource->bo, screen->device, - resource->handle, 0, size); - if (err < 0) { - fprintf(stderr, "failed to create buffer object: %s\n", - strerror(-err)); - goto destroy; - } + memset(&args, 0, sizeof(args)); + args.handle = resource->handle; + args.mode = DRM_TEGRA_GEM_TILING_MODE_BLOCK; + args.value = 4; - tiling.mode = DRM_TEGRA_GEM_TILING_MODE_BLOCK; - tiling.value = 4; - - err = drm_tegra_bo_set_tiling(resource->bo, &tiling); + err = drmIoctl(screen->fd, DRM_IOCTL_TEGRA_GEM_SET_TILING, + &args); if (err < 0) { - fprintf(stderr, - "failed to set tiling for buffer object: %s\n", - strerror(-err)); - goto unref; + fprintf(stderr, "failed to set tiling parameters: %s\n", + strerror(errno)); + goto destroy; } } else { resource->gpu = screen->gpu->resource_create(screen->gpu, @@ -139,8 +130,6 @@ tegra_resource_create(struct pipe_screen *pscreen, debug_printf("< %s() = %p\n", __func__, &resource->base); return &resource->base; -unref: - drm_tegra_bo_unref(resource->bo); destroy: screen->gpu->resource_destroy(screen->gpu, resource->gpu); free: @@ -214,7 +203,6 @@ tegra_resource_destroy(struct pipe_screen *pscreen, presource); pipe_resource_reference(&resource->gpu, NULL); - drm_tegra_bo_unref(resource->bo); free(resource); debug_printf("< %s()\n", __func__); diff --git a/src/gallium/drivers/tegra/tegra_resource.h b/src/gallium/drivers/tegra/tegra_resource.h index 5a9afa35091..783fb37ec46 100644 --- a/src/gallium/drivers/tegra/tegra_resource.h +++ b/src/gallium/drivers/tegra/tegra_resource.h @@ -32,7 +32,6 @@ struct tegra_resource { struct pipe_resource base; struct pipe_resource *gpu; - struct drm_tegra_bo *bo; uint32_t stride; uint32_t handle; size_t size; diff --git a/src/gallium/drivers/tegra/tegra_screen.c b/src/gallium/drivers/tegra/tegra_screen.c index 95580c92448..b6394faa0c6 100644 --- a/src/gallium/drivers/tegra/tegra_screen.c +++ b/src/gallium/drivers/tegra/tegra_screen.c @@ -29,8 +29,6 @@ #include <libudev.h> #endif -#include <libdrm/tegra.h> - #include "util/u_debug.h" #include "tegra/tegra_context.h" @@ -59,7 +57,6 @@ static void tegra_screen_destroy(struct pipe_screen *pscreen) debug_printf("> %s(pscreen=%p)\n", __func__, pscreen); screen->gpu->destroy(screen->gpu); - drm_tegra_close(screen->device); free(pscreen); debug_printf("< %s()\n", __func__); @@ -336,7 +333,6 @@ struct pipe_screen * tegra_screen_create(int fd) { struct tegra_screen *screen; - int err; debug_printf("> %s()\n", __func__); @@ -346,14 +342,6 @@ tegra_screen_create(int fd) screen->fd = fd; - err = drm_tegra_new(&screen->device, fd); - if (err < 0) { - fprintf(stderr, "failed to create Tegra context: %s\n", - strerror(errno)); - free(screen); - return NULL; - } - screen->gpu_fd = tegra_open_render_node(screen->fd); if (screen->gpu_fd < 0) { fprintf(stderr, "failed to open GPU device: %s\n", diff --git a/src/gallium/drivers/tegra/tegra_screen.h b/src/gallium/drivers/tegra/tegra_screen.h index e48c73999cc..1fba510c241 100644 --- a/src/gallium/drivers/tegra/tegra_screen.h +++ b/src/gallium/drivers/tegra/tegra_screen.h @@ -32,8 +32,6 @@ struct tegra_screen { struct pipe_screen *gpu; int gpu_fd; - - struct drm_tegra *device; }; static inline struct tegra_screen * |