]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
UBUNTU: SAUCE: drm/i915: Fix detection for a CMP-V PCH
authorImre Deak <imre.deak@intel.com>
Wed, 13 Nov 2019 11:14:19 +0000 (19:14 +0800)
committerStefan Bader <stefan.bader@canonical.com>
Wed, 4 Dec 2019 09:58:37 +0000 (10:58 +0100)
BugLink: https://bugs.launchpad.net/bugs/1852386
According to internal documents I found for CMP PCHs the PCI ID 0xA3C1
belongs to a CMP-V chipset. Based on the same docs the programming of
the PCH is compatible with that of KBP. Fix up my previous wrong
assumption accordingly using the SPT programming which in turn is the
basis for KBP.

The original bug reporter verified that this is the correct PCH
identification (the only way we'll program valid DDC pin-pair values to
the GMBUS register) and the Windows team uses the same identification
(that is using the KBP programming model for this PCH).

I filed the necessary Bspec update requests (BSpec/33734).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=112051
Fixes: 37c92dc303dd ("drm/i915: Add new CNL PCH ID seen on a CML platform")
Reported-and-tested-by: Cyrus <cyrus.lien@canonical.com>
Cc: Cyrus <cyrus.lien@canonical.com>
Cc: Timo Aaltonen <tjaalton@ubuntu.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
(backported from https://patchwork.freedesktop.org/patch/340416)
Signed-off-by: You-Sheng Yang <vicamo@gmail.com>
Acked-by: Andrea Righi <andrea.righi@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.h

index 8dac06601ec56b2042dcb6510513c2ef698ed0ea..df1d6900ac882047428775b21a54f9eecfe3254a 100644 (file)
@@ -202,7 +202,6 @@ intel_pch_type(const struct drm_i915_private *dev_priv, unsigned short id)
                /* KBP is SPT compatible */
                return PCH_SPT;
        case INTEL_PCH_CNP_DEVICE_ID_TYPE:
-       case INTEL_PCH_CNP2_DEVICE_ID_TYPE:
                DRM_DEBUG_KMS("Found Cannon Lake PCH (CNP)\n");
                WARN_ON(!IS_CANNONLAKE(dev_priv) && !IS_COFFEELAKE(dev_priv));
                return PCH_CNP;
@@ -216,6 +215,11 @@ intel_pch_type(const struct drm_i915_private *dev_priv, unsigned short id)
                WARN_ON(!IS_COFFEELAKE(dev_priv));
                /* CometPoint is CNP Compatible */
                return PCH_CNP;
+       case INTEL_PCH_CMP_V_DEVICE_ID_TYPE:
+               DRM_DEBUG_KMS("Found Comet Lake V PCH (CMP-V)\n");
+               WARN_ON(!IS_COFFEELAKE(dev_priv));
+               /* Comet Lake V PCH is based on KBP, which is SPT compatible */
+               return PCH_SPT;
        case INTEL_PCH_ICP_DEVICE_ID_TYPE:
                DRM_DEBUG_KMS("Found Ice Lake PCH\n");
                WARN_ON(!IS_ICELAKE(dev_priv));
index ac25b41ac4b520c5eb792a1f0126909b39b1885f..fc218b5d74ccab0dde566e83743cbe1fc4b61f85 100644 (file)
@@ -2373,10 +2373,10 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
 #define INTEL_PCH_SPT_LP_DEVICE_ID_TYPE                0x9D00
 #define INTEL_PCH_KBP_DEVICE_ID_TYPE           0xA280
 #define INTEL_PCH_CNP_DEVICE_ID_TYPE           0xA300
-#define INTEL_PCH_CNP2_DEVICE_ID_TYPE          0xA380
 #define INTEL_PCH_CNP_LP_DEVICE_ID_TYPE                0x9D80
 #define INTEL_PCH_CMP_DEVICE_ID_TYPE           0x0280
 #define INTEL_PCH_CMP2_DEVICE_ID_TYPE          0x0680
+#define INTEL_PCH_CMP_V_DEVICE_ID_TYPE         0xA380
 #define INTEL_PCH_ICP_DEVICE_ID_TYPE           0x3480
 #define INTEL_PCH_MCC_DEVICE_ID_TYPE           0x4B00
 #define INTEL_PCH_P2X_DEVICE_ID_TYPE           0x7100