imx: gallium driver for imx-drm scanout driver
[mesa.git] / src / gallium / auxiliary / target-helpers / drm_helper.h
index 332b1cba9849d18c6fe79cc7f59a1cd9630d6f03..f847b17dd685e1aa7ca7126836a186b682ad79d3 100644 (file)
@@ -226,14 +226,9 @@ pipe_freedreno_create_screen(int fd)
 struct pipe_screen *
 pipe_virgl_create_screen(int fd)
 {
-   struct virgl_winsys *vws;
    struct pipe_screen *screen;
 
-   vws = virgl_drm_winsys_create(fd);
-   if (!vws)
-      return NULL;
-
-   screen = virgl_create_screen(vws);
+   screen = virgl_drm_screen_create(fd);
    return screen ? debug_screen_wrap(screen) : NULL;
 }
 
@@ -271,5 +266,51 @@ pipe_vc4_create_screen(int fd)
 
 #endif
 
+#ifdef GALLIUM_ETNAVIV
+#include "etnaviv/drm/etnaviv_drm_public.h"
+
+struct pipe_screen *
+pipe_etna_create_screen(int fd)
+{
+   struct pipe_screen *screen;
+
+   screen = etna_drm_screen_create(fd);
+   return screen ? debug_screen_wrap(screen) : NULL;
+}
+
+#else
+
+struct pipe_screen *
+pipe_etna_create_screen(int fd)
+{
+   fprintf(stderr, "etnaviv: driver missing\n");
+   return NULL;
+}
+
+#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 */