Mesa (staging/22.1): intel/dev: Read hwconfig from i915

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon May 2 23:35:46 UTC 2022


Module: Mesa
Branch: staging/22.1
Commit: b29e15e5155ec4b58c67e99510ae124a00c72416
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b29e15e5155ec4b58c67e99510ae124a00c72416

Author: Jordan Justen <jordan.l.justen at intel.com>
Date:   Sat Oct 30 13:41:38 2021 -0700

intel/dev: Read hwconfig from i915

Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira at intel.com>
(cherry picked from commit d9ff9ea9c3315e9373a1fbdccd57fce571463cd5)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16231>

---

 src/intel/dev/intel_device_info.c |  3 +++
 src/intel/dev/intel_hwconfig.c    | 17 ++++++++++++++++-
 src/intel/dev/intel_hwconfig.h    |  5 ++---
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/intel/dev/intel_device_info.c b/src/intel/dev/intel_device_info.c
index 9dfa2b308b8..835c11aab6d 100644
--- a/src/intel/dev/intel_device_info.c
+++ b/src/intel/dev/intel_device_info.c
@@ -31,6 +31,7 @@
 #include <xf86drm.h>
 
 #include "intel_device_info.h"
+#include "intel_hwconfig.h"
 #include "intel/common/intel_gem.h"
 #include "util/bitscan.h"
 #include "util/debug.h"
@@ -1891,6 +1892,8 @@ intel_get_device_info_from_fd(int fd, struct intel_device_info *devinfo)
       return true;
    }
 
+   intel_get_and_process_hwconfig_table(fd, devinfo);
+
    int timestamp_frequency;
    if (getparam(fd, I915_PARAM_CS_TIMESTAMP_FREQUENCY,
                 &timestamp_frequency))
diff --git a/src/intel/dev/intel_hwconfig.c b/src/intel/dev/intel_hwconfig.c
index 0dfbd21cf21..36969810dc7 100644
--- a/src/intel/dev/intel_hwconfig.c
+++ b/src/intel/dev/intel_hwconfig.c
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
+#include "drm-uapi/i915_drm.h"
 #include "intel_device_info.h"
 #include "intel_hwconfig.h"
 #include "intel_hwconfig_types.h"
@@ -271,7 +272,7 @@ apply_hwconfig_item(struct intel_device_info *devinfo,
    }
 }
 
-void
+static void
 intel_apply_hwconfig_table(struct intel_device_info *devinfo,
                            const struct hwconfig *hwconfig,
                            int32_t hwconfig_len)
@@ -286,6 +287,20 @@ intel_apply_hwconfig_table(struct intel_device_info *devinfo,
    }
 }
 
+void
+intel_get_and_process_hwconfig_table(int fd,
+                                     struct intel_device_info *devinfo)
+{
+   struct hwconfig *hwconfig;
+   int32_t hwconfig_len = 0;
+   hwconfig = intel_i915_query_alloc(fd, DRM_I915_QUERY_HWCONFIG_BLOB,
+                                     &hwconfig_len);
+   if (hwconfig) {
+      intel_apply_hwconfig_table(devinfo, hwconfig, hwconfig_len);
+      free(hwconfig);
+   }
+}
+
 static void
 print_hwconfig_item(struct intel_device_info *devinfo,
                     const struct hwconfig *item)
diff --git a/src/intel/dev/intel_hwconfig.h b/src/intel/dev/intel_hwconfig.h
index 654adab819d..20d76abf5ae 100644
--- a/src/intel/dev/intel_hwconfig.h
+++ b/src/intel/dev/intel_hwconfig.h
@@ -36,9 +36,8 @@ struct hwconfig;
 struct intel_device_info;
 
 void
-intel_apply_hwconfig_table(struct intel_device_info *devinfo,
-                           const struct hwconfig *hwconfig,
-                           int32_t hwconfig_len);
+intel_get_and_process_hwconfig_table(int fd,
+                                     struct intel_device_info *devinfo);
 void
 intel_print_hwconfig_table(const struct hwconfig *hwconfig,
                            int32_t hwconfig_len);



More information about the mesa-commit mailing list