From: Michal Wajdeczko <michal.wajdec...@intel.com>

During initialization of the runtime part of the intel_device_info
we are dumping that part using DRM_DEBUG_DRIVER mechanism.
As we already have pretty printer for const part of the info,
make similar function for the runtime part and use it separately.

v2: add runtime dump to debugfs (Chris)

Signed-off-by: Michal Wajdeczko <michal.wajdec...@intel.com>
Cc: Chris Wilson <ch...@chris-wilson.co.uk>
Cc: Rodrigo Vivi <rodrigo.v...@intel.com>
Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
Reviewed-by: Chris Wilson <ch...@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
Link: 
https://patchwork.freedesktop.org/patch/msgid/20171221185334.17396-7-michal.wajdec...@intel.com
---
 drivers/gpu/drm/i915/i915_debugfs.c      |  1 +
 drivers/gpu/drm/i915/i915_drv.c          |  5 ++++
 drivers/gpu/drm/i915/intel_device_info.c | 44 +++++++++++++++++++-------------
 drivers/gpu/drm/i915/intel_device_info.h |  2 ++
 4 files changed, 34 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index 3affcaac82db..e968aeae1d84 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -48,6 +48,7 @@ static int i915_capabilities(struct seq_file *m, void *data)
        seq_printf(m, "pch: %d\n", INTEL_PCH_TYPE(dev_priv));
 
        intel_device_info_dump_flags(info, &p);
+       intel_device_info_dump_runtime(info, &p);
 
        kernel_param_lock(THIS_MODULE);
        i915_params_dump(&i915_modparams, &p);
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 06eea8dab464..5bf4f589594a 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -1089,6 +1089,11 @@ static int i915_driver_init_hw(struct drm_i915_private 
*dev_priv)
                return -ENODEV;
 
        intel_device_info_runtime_init(mkwrite_device_info(dev_priv));
+       if (drm_debug & DRM_UT_DRIVER) {
+               struct drm_printer p = drm_debug_printer("i915 device info:");
+
+               intel_device_info_dump_runtime(&dev_priv->info, &p);
+       }
 
        intel_sanitize_options(dev_priv);
 
diff --git a/drivers/gpu/drm/i915/intel_device_info.c 
b/drivers/gpu/drm/i915/intel_device_info.c
index 8e050b53834a..d28592e43512 100644
--- a/drivers/gpu/drm/i915/intel_device_info.c
+++ b/drivers/gpu/drm/i915/intel_device_info.c
@@ -78,6 +78,32 @@ void intel_device_info_dump_flags(const struct 
intel_device_info *info,
 #undef PRINT_FLAG
 }
 
+static void sseu_dump(const struct sseu_dev_info *sseu, struct drm_printer *p)
+{
+       drm_printf(p, "slice mask: %04x\n", sseu->slice_mask);
+       drm_printf(p, "slice total: %u\n", hweight8(sseu->slice_mask));
+       drm_printf(p, "subslice total: %u\n", sseu_subslice_total(sseu));
+       drm_printf(p, "subslice mask %04x\n", sseu->subslice_mask);
+       drm_printf(p, "subslice per slice: %u\n",
+                  hweight8(sseu->subslice_mask));
+       drm_printf(p, "EU total: %u\n", sseu->eu_total);
+       drm_printf(p, "EU per subslice: %u\n", sseu->eu_per_subslice);
+       drm_printf(p, "has slice power gating: %s\n",
+                  yesno(sseu->has_slice_pg));
+       drm_printf(p, "has subslice power gating: %s\n",
+                  yesno(sseu->has_subslice_pg));
+       drm_printf(p, "has EU power gating: %s\n", yesno(sseu->has_eu_pg));
+}
+
+void intel_device_info_dump_runtime(const struct intel_device_info *info,
+                                   struct drm_printer *p)
+{
+       sseu_dump(&info->sseu, p);
+
+       drm_printf(p, "CS timestamp frequency: %u kHz\n",
+                  info->cs_timestamp_frequency_khz);
+}
+
 void intel_device_info_dump(const struct intel_device_info *info,
                            struct drm_printer *p)
 {
@@ -558,22 +584,4 @@ void intel_device_info_runtime_init(struct 
intel_device_info *info)
 
        /* Initialize command stream timestamp frequency */
        info->cs_timestamp_frequency_khz = read_timestamp_frequency(dev_priv);
-
-       DRM_DEBUG_DRIVER("slice mask: %04x\n", info->sseu.slice_mask);
-       DRM_DEBUG_DRIVER("slice total: %u\n", hweight8(info->sseu.slice_mask));
-       DRM_DEBUG_DRIVER("subslice total: %u\n",
-                        sseu_subslice_total(&info->sseu));
-       DRM_DEBUG_DRIVER("subslice mask %04x\n", info->sseu.subslice_mask);
-       DRM_DEBUG_DRIVER("subslice per slice: %u\n",
-                        hweight8(info->sseu.subslice_mask));
-       DRM_DEBUG_DRIVER("EU total: %u\n", info->sseu.eu_total);
-       DRM_DEBUG_DRIVER("EU per subslice: %u\n", info->sseu.eu_per_subslice);
-       DRM_DEBUG_DRIVER("has slice power gating: %s\n",
-                        info->sseu.has_slice_pg ? "y" : "n");
-       DRM_DEBUG_DRIVER("has subslice power gating: %s\n",
-                        info->sseu.has_subslice_pg ? "y" : "n");
-       DRM_DEBUG_DRIVER("has EU power gating: %s\n",
-                        info->sseu.has_eu_pg ? "y" : "n");
-       DRM_DEBUG_DRIVER("CS timestamp frequency: %u kHz\n",
-                        info->cs_timestamp_frequency_khz);
 }
diff --git a/drivers/gpu/drm/i915/intel_device_info.h 
b/drivers/gpu/drm/i915/intel_device_info.h
index 6f7a3d4fc253..49cb27bd04c1 100644
--- a/drivers/gpu/drm/i915/intel_device_info.h
+++ b/drivers/gpu/drm/i915/intel_device_info.h
@@ -177,5 +177,7 @@ void intel_device_info_dump(const struct intel_device_info 
*info,
                            struct drm_printer *p);
 void intel_device_info_dump_flags(const struct intel_device_info *info,
                                  struct drm_printer *p);
+void intel_device_info_dump_runtime(const struct intel_device_info *info,
+                                   struct drm_printer *p);
 
 #endif
-- 
2.15.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to