[PATCH] drm/i915: dump the device info

Daniel Vetter
2012-08-08T16:10:56Z

Handy for lazy people like me, or when people forget to add the output
of lspci -nn.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
drivers/gpu/drm/i915/i915_dma.c | 39 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index d57ea16..dfa2ab2 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1428,6 +1428,42 @@ static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv)
kfree(ap);
}

+static void i915_dump_device_info(struct drm_i915_private *dev_priv)
+{
+ const struct intel_device_info *info = dev_priv->info;
+
+#define DEV_FLAG_STR(name) info->name ? #name "," : ""
+ DRM_DEBUG_DRIVER("i915 device info: gen=%i, pciid=0x%04x flags="
+ "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s",
+ info->gen,
+ dev_priv->dev->pdev->device,
+ DEV_FLAG_STR(is_mobile),
+ DEV_FLAG_STR(is_i85x),
+ DEV_FLAG_STR(is_i915g),
+ DEV_FLAG_STR(is_i945gm),
+ DEV_FLAG_STR(is_g33),
+ DEV_FLAG_STR(need_gfx_hws),
+ DEV_FLAG_STR(is_g4x),
+ DEV_FLAG_STR(is_pineview),
+ DEV_FLAG_STR(is_broadwater),
+ DEV_FLAG_STR(is_crestline),
+ DEV_FLAG_STR(is_ivybridge),
+ DEV_FLAG_STR(is_valleyview),
+ DEV_FLAG_STR(is_haswell),
+ DEV_FLAG_STR(has_force_wake),
+ DEV_FLAG_STR(has_fbc),
+ DEV_FLAG_STR(has_pipe_cxsr),
+ DEV_FLAG_STR(has_hotplug),
+ DEV_FLAG_STR(cursor_needs_physical),
+ DEV_FLAG_STR(has_overlay),
+ DEV_FLAG_STR(overlay_needs_physical),
+ DEV_FLAG_STR(supports_tv),
+ DEV_FLAG_STR(has_bsd_ring),
+ DEV_FLAG_STR(has_blt_ring),
+ DEV_FLAG_STR(has_llc));
+#undef DEV_FLAG_STR
+}
+
/**
* i915_driver_load - setup chip and create an initial config
* @dev: DRM device
@@ -1452,7 +1488,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
if (info->gen >= 6 && !drm_core_check_feature(dev, DRIVER_MODESET))
return -ENODEV;

-
/* i915 has 4 more counters */
dev->counters += 4;
dev->types[6] = _DRM_STAT_IRQ;
@@ -1468,6 +1503,8 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
dev_priv->dev = dev;
dev_priv->info = info;

+ i915_dump_device_info(dev_priv);
+
if (i915_get_bridge_dev(dev)) {
ret = -EIO;
goto free_priv;
--
1.7.10.4