[Mesa-dev] [PATCH 14/16] pipe-loader: move configuration_query into drm_helper

Nicolai Hähnle nhaehnle at gmail.com
Fri Jun 30 12:45:55 UTC 2017


From: Nicolai Hähnle <nicolai.haehnle at amd.com>

Having it inline is pointless anyway, since it's only called via a
function pointer.
---
 .../auxiliary/pipe-loader/pipe_loader_drm.c        | 50 ++++++----------------
 src/gallium/auxiliary/target-helpers/drm_helper.h  | 25 +++++++++++
 .../auxiliary/target-helpers/drm_helper_public.h   |  5 +++
 3 files changed, 43 insertions(+), 37 deletions(-)

diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
index 5c8c750..d8d3878 100644
--- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
+++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c
@@ -57,109 +57,85 @@ struct pipe_loader_drm_device {
    struct util_dl_library *lib;
 #endif
    int fd;
 };
 
 #define pipe_loader_drm_device(dev) ((struct pipe_loader_drm_device *)dev)
 
 static const struct pipe_loader_ops pipe_loader_drm_ops;
 
 #ifdef GALLIUM_STATIC_TARGETS
-static const struct drm_conf_ret throttle_ret = {
-   .type = DRM_CONF_INT,
-   .val.val_int = 2,
-};
-
-static const struct drm_conf_ret share_fd_ret = {
-   .type = DRM_CONF_BOOL,
-   .val.val_bool = true,
-};
-
-static inline const struct drm_conf_ret *
-configuration_query(enum drm_conf conf)
-{
-   switch (conf) {
-   case DRM_CONF_THROTTLE:
-      return &throttle_ret;
-   case DRM_CONF_SHARE_FD:
-      return &share_fd_ret;
-   default:
-      break;
-   }
-   return NULL;
-}
-
 static const struct drm_driver_descriptor driver_descriptors[] = {
     {
         .driver_name = "i915",
         .create_screen = pipe_i915_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "nouveau",
         .create_screen = pipe_nouveau_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "r300",
         .create_screen = pipe_r300_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "r600",
         .create_screen = pipe_r600_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "radeonsi",
         .create_screen = pipe_radeonsi_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "vmwgfx",
         .create_screen = pipe_vmwgfx_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "kgsl",
         .create_screen = pipe_freedreno_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "msm",
         .create_screen = pipe_freedreno_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
        .driver_name = "pl111",
         .create_screen = pipe_pl111_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "virtio_gpu",
         .create_screen = pipe_virgl_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "vc4",
         .create_screen = pipe_vc4_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "etnaviv",
         .create_screen = pipe_etna_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     },
     {
         .driver_name = "imx-drm",
         .create_screen = pipe_imx_drm_create_screen,
-        .configuration = configuration_query,
+        .configuration = pipe_default_configuration_query,
     }
 };
 #endif
 
 static const struct drm_driver_descriptor *
 get_driver_descriptor(const char *driver_name, struct util_dl_library **plib)
 {
 #ifdef GALLIUM_STATIC_TARGETS
    for (int i = 0; i < ARRAY_SIZE(driver_descriptors); i++) {
       if (strcmp(driver_descriptors[i].driver_name, driver_name) == 0)
diff --git a/src/gallium/auxiliary/target-helpers/drm_helper.h b/src/gallium/auxiliary/target-helpers/drm_helper.h
index 2a2f57d..a4fcde3 100644
--- a/src/gallium/auxiliary/target-helpers/drm_helper.h
+++ b/src/gallium/auxiliary/target-helpers/drm_helper.h
@@ -1,16 +1,41 @@
 #ifndef DRM_HELPER_H
 #define DRM_HELPER_H
 
 #include <stdio.h>
 #include "target-helpers/inline_debug_helper.h"
 #include "target-helpers/drm_helper_public.h"
+#include "state_tracker/drm_driver.h"
+
+static const struct drm_conf_ret throttle_ret = {
+   .type = DRM_CONF_INT,
+   .val.val_int = 2,
+};
+
+static const struct drm_conf_ret share_fd_ret = {
+   .type = DRM_CONF_BOOL,
+   .val.val_bool = true,
+};
+
+const struct drm_conf_ret *
+pipe_default_configuration_query(enum drm_conf conf)
+{
+   switch (conf) {
+   case DRM_CONF_THROTTLE:
+      return &throttle_ret;
+   case DRM_CONF_SHARE_FD:
+      return &share_fd_ret;
+   default:
+      break;
+   }
+   return NULL;
+}
 
 #ifdef GALLIUM_I915
 #include "i915/drm/i915_drm_public.h"
 #include "i915/i915_public.h"
 
 struct pipe_screen *
 pipe_i915_create_screen(int fd, const struct pipe_screen_config *config)
 {
    struct i915_winsys *iws;
    struct pipe_screen *screen;
diff --git a/src/gallium/auxiliary/target-helpers/drm_helper_public.h b/src/gallium/auxiliary/target-helpers/drm_helper_public.h
index 5746e08..c540d7c 100644
--- a/src/gallium/auxiliary/target-helpers/drm_helper_public.h
+++ b/src/gallium/auxiliary/target-helpers/drm_helper_public.h
@@ -1,13 +1,15 @@
 #ifndef _DRM_HELPER_PUBLIC_H
 #define _DRM_HELPER_PUBLIC_H
 
+enum drm_conf;
+struct drm_conf_ret;
 
 struct pipe_screen;
 struct pipe_screen_config;
 
 struct pipe_screen *
 pipe_i915_create_screen(int fd, const struct pipe_screen_config *config);
 
 struct pipe_screen *
 pipe_ilo_create_screen(int fd, const struct pipe_screen_config *config);
 
@@ -37,11 +39,14 @@ pipe_vc4_create_screen(int fd, const struct pipe_screen_config *config);
 
 struct pipe_screen *
 pipe_pl111_create_screen(int fd, const struct pipe_screen_config *config);
 
 struct pipe_screen *
 pipe_etna_create_screen(int fd, const struct pipe_screen_config *config);
 
 struct pipe_screen *
 pipe_imx_drm_create_screen(int fd, const struct pipe_screen_config *config);
 
+const struct drm_conf_ret *
+pipe_default_configuration_query(enum drm_conf conf);
+
 #endif /* _DRM_HELPER_PUBLIC_H */
-- 
2.9.3



More information about the mesa-dev mailing list