} 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)) {
+               ret = PCH_CNP;
        }
 
        return ret;
                        } 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));
                        } 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));
                        } else if ((id == INTEL_PCH_P2X_DEVICE_ID_TYPE) ||
                                   (id == INTEL_PCH_P3X_DEVICE_ID_TYPE) ||
                                   ((id == INTEL_PCH_QEMU_DEVICE_ID_TYPE) &&