@@ -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;
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(-)