aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary
diff options
context:
space:
mode:
authorChristian Gmeiner <[email protected]>2016-12-23 21:10:29 +0100
committerEmil Velikov <[email protected]>2017-01-12 19:27:11 +0000
commite8626e3b317035352148a6af15a2b781eba6e707 (patch)
treed14cae533c34cf4504c7fb0a179205b240e3c79c /src/gallium/auxiliary
parentc9e8b49b885242d84ba031dacef5aa4a5ac1e5b6 (diff)
imx: gallium driver for imx-drm scanout driver
Changes from V1 -> V2: - updated Copyright - added $(top_srcdir)/src/gallium/winsys to include path (suggested by Emil) - adapted driver to new renderonly API Signed-off-by: Christian Gmeiner <[email protected]> Acked-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r--src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c5
-rw-r--r--src/gallium/auxiliary/target-helpers/drm_helper.h24
-rw-r--r--src/gallium/auxiliary/target-helpers/drm_helper_public.h3
3 files changed, 32 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
index 99d9da6fd0a..6c89fe5ead1 100644
--- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
+++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
@@ -158,6 +158,11 @@ static const struct drm_driver_descriptor driver_descriptors[] = {
.driver_name = "etnaviv",
.create_screen = pipe_etna_create_screen,
.configuration = configuration_query,
+ },
+ {
+ .driver_name = "imx-drm",
+ .create_screen = pipe_imx_drm_create_screen,
+ .configuration = configuration_query,
}
};
#endif
diff --git a/src/gallium/auxiliary/target-helpers/drm_helper.h b/src/gallium/auxiliary/target-helpers/drm_helper.h
index e056c58ba96..f847b17dd68 100644
--- a/src/gallium/auxiliary/target-helpers/drm_helper.h
+++ b/src/gallium/auxiliary/target-helpers/drm_helper.h
@@ -289,4 +289,28 @@ pipe_etna_create_screen(int fd)
#endif
+#ifdef GALLIUM_IMX
+#include "imx/drm/imx_drm_public.h"
+
+struct pipe_screen *
+pipe_imx_drm_create_screen(int fd)
+{
+ struct pipe_screen *screen;
+
+ screen = imx_drm_screen_create(fd);
+ return screen ? debug_screen_wrap(screen) : NULL;
+}
+
+#else
+
+struct pipe_screen *
+pipe_imx_drm_create_screen(int fd)
+{
+ fprintf(stderr, "imx-drm: driver missing\n");
+ return NULL;
+}
+
+#endif
+
+
#endif /* DRM_HELPER_H */
diff --git a/src/gallium/auxiliary/target-helpers/drm_helper_public.h b/src/gallium/auxiliary/target-helpers/drm_helper_public.h
index 73cf1da073d..bc12b2155e4 100644
--- a/src/gallium/auxiliary/target-helpers/drm_helper_public.h
+++ b/src/gallium/auxiliary/target-helpers/drm_helper_public.h
@@ -37,4 +37,7 @@ pipe_vc4_create_screen(int fd);
struct pipe_screen *
pipe_etna_create_screen(int fd);
+struct pipe_screen *
+pipe_imx_drm_create_screen(int fd);
+
#endif /* _DRM_HELPER_PUBLIC_H */