OSDN Git Service

drm/i915/cfl: Coffee Lake uses CNP PCH.
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 8 Jun 2017 15:49:59 +0000 (08:49 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Thu, 8 Jun 2017 16:55:22 +0000 (09:55 -0700)
So let's force it on the virtual detection.

Also it is still the only silicon for now on this PCH,
so WARN otherwise.

v2: Rebased on top of Cannonlake and added the missed
    debug message as pointed by DK.

Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Anusha Srivatsa <anusha.srivatsa@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1496937000-8450-2-git-send-email-rodrigo.vivi@intel.com
drivers/gpu/drm/i915/i915_drv.c

index 7a925c5..1f802de 100644 (file)
@@ -139,8 +139,9 @@ static enum intel_pch intel_virt_detect_pch(struct drm_i915_private *dev_priv)
        } else if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) {
                ret = PCH_SPT;
                DRM_DEBUG_KMS("Assuming SunrisePoint PCH\n");
-       } else if (IS_CANNONLAKE(dev_priv)) {
+       } else if (IS_COFFEELAKE(dev_priv) || IS_CANNONLAKE(dev_priv)) {
                ret = PCH_CNP;
+               DRM_DEBUG_KMS("Assuming CannonPoint PCH\n");
        }
 
        return ret;
@@ -224,11 +225,13 @@ static void intel_detect_pch(struct drm_i915_private *dev_priv)
                        } else if (id == INTEL_PCH_CNP_DEVICE_ID_TYPE) {
                                dev_priv->pch_type = PCH_CNP;
                                DRM_DEBUG_KMS("Found CannonPoint PCH\n");
-                               WARN_ON(!IS_CANNONLAKE(dev_priv));
+                               WARN_ON(!IS_CANNONLAKE(dev_priv) &&
+                                       !IS_COFFEELAKE(dev_priv));
                        } else if (id_ext == INTEL_PCH_CNP_LP_DEVICE_ID_TYPE) {
                                dev_priv->pch_type = PCH_CNP;
                                DRM_DEBUG_KMS("Found CannonPoint LP PCH\n");
-                               WARN_ON(!IS_CANNONLAKE(dev_priv));
+                               WARN_ON(!IS_CANNONLAKE(dev_priv) &&
+                                       !IS_COFFEELAKE(dev_priv));
                        } else if ((id == INTEL_PCH_P2X_DEVICE_ID_TYPE) ||
                                   (id == INTEL_PCH_P3X_DEVICE_ID_TYPE) ||
                                   ((id == INTEL_PCH_QEMU_DEVICE_ID_TYPE) &&