aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaulo Zanoni <paulo.r.zanoni@intel.com>2013-08-12 13:34:08 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-08-22 07:31:41 -0400
commited1c9e2cf414e32cb7ea1217b51b39e70fc132d2 (patch)
treeb1bb8a69b3315f86f6923a50082678a9e95e5c2f
parenta1d95703b7fa5cbc4abf53f63df51c49cbacc7b6 (diff)
drm/i915: print a message when we detect an early Haswell SDV
The machines that fall in this category are the SDVs that have a PCI ID starting with 0x0C. These are very early pre-production machines and may not fully work. Other Haswell SDVs have PCI IDs that match the real Haswell machines and we expect them to work better. Even though they have problems, they still mostly work so I don't see a reason to refuse loading our driver. But I do see a reason to reject bug reports from these machines, so the message should help the bug triagers. As far as I know, we don't implement some workarounds that are specific to these machines and suspend/resume may not work on most of them, but besides this, they may work. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61508 Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c8
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index f4231185ec7d..d4c176b7d76e 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1488,6 +1488,14 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
1488 1488
1489 i915_dump_device_info(dev_priv); 1489 i915_dump_device_info(dev_priv);
1490 1490
1491 /* Not all pre-production machines fall into this category, only the
1492 * very first ones. Almost everything should work, except for maybe
1493 * suspend/resume. And we don't implement workarounds that affect only
1494 * pre-production machines. */
1495 if (IS_HSW_EARLY_SDV(dev))
1496 DRM_INFO("This is an early pre-production Haswell machine. "
1497 "It may not be fully functional.\n");
1498
1491 if (i915_get_bridge_dev(dev)) { 1499 if (i915_get_bridge_dev(dev)) {
1492 ret = -EIO; 1500 ret = -EIO;
1493 goto free_priv; 1501 goto free_priv;
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 6d07467d0e7e..2e7d5f9524f7 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1511,6 +1511,8 @@ struct drm_i915_file_private {
1511#define IS_VALLEYVIEW(dev) (INTEL_INFO(dev)->is_valleyview) 1511#define IS_VALLEYVIEW(dev) (INTEL_INFO(dev)->is_valleyview)
1512#define IS_HASWELL(dev) (INTEL_INFO(dev)->is_haswell) 1512#define IS_HASWELL(dev) (INTEL_INFO(dev)->is_haswell)
1513#define IS_MOBILE(dev) (INTEL_INFO(dev)->is_mobile) 1513#define IS_MOBILE(dev) (INTEL_INFO(dev)->is_mobile)
1514#define IS_HSW_EARLY_SDV(dev) (IS_HASWELL(dev) && \
1515 ((dev)->pci_device & 0xFF00) == 0x0C00)
1514#define IS_ULT(dev) (IS_HASWELL(dev) && \ 1516#define IS_ULT(dev) (IS_HASWELL(dev) && \
1515 ((dev)->pci_device & 0xFF00) == 0x0A00) 1517 ((dev)->pci_device & 0xFF00) == 0x0A00)
1516 1518