drm/i915/tgl: Set subplatforms
There is no way to differentiate TGL-U from TGL-Y by the PCI ids as some ids are available in both SKUs. So here using the root device id in the PCI bus that iGPU is in to differentiate between U and Y. BSpec: 44455 Reviewed-by: Swathi Dhanavanthri <swathi.dhanavanthri@intel.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200807192629.64134-1-jose.souza@intel.com Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
05e31dd78e
commit
1d3cc7ab2b
@ -1497,6 +1497,12 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
|
||||
#define IS_ICL_WITH_PORT_F(dev_priv) \
|
||||
IS_SUBPLATFORM(dev_priv, INTEL_ICELAKE, INTEL_SUBPLATFORM_PORTF)
|
||||
|
||||
#define IS_TGL_U(dev_priv) \
|
||||
IS_SUBPLATFORM(dev_priv, INTEL_TIGERLAKE, INTEL_SUBPLATFORM_ULT)
|
||||
|
||||
#define IS_TGL_Y(dev_priv) \
|
||||
IS_SUBPLATFORM(dev_priv, INTEL_TIGERLAKE, INTEL_SUBPLATFORM_ULX)
|
||||
|
||||
#define SKL_REVID_A0 0x0
|
||||
#define SKL_REVID_B0 0x1
|
||||
#define SKL_REVID_C0 0x2
|
||||
|
@ -12353,4 +12353,10 @@ enum skl_power_gate {
|
||||
#define DSB_ENABLE (1 << 31)
|
||||
#define DSB_STATUS (1 << 0)
|
||||
|
||||
#define TGL_ROOT_DEVICE_ID 0x9A00
|
||||
#define TGL_ROOT_DEVICE_MASK 0xFF00
|
||||
#define TGL_ROOT_DEVICE_SKU_MASK 0xF
|
||||
#define TGL_ROOT_DEVICE_SKU_ULX 0x2
|
||||
#define TGL_ROOT_DEVICE_SKU_ULT 0x4
|
||||
|
||||
#endif /* _I915_REG_H_ */
|
||||
|
@ -346,6 +346,25 @@ void intel_device_info_subplatform_init(struct drm_i915_private *i915)
|
||||
mask = BIT(INTEL_SUBPLATFORM_PORTF);
|
||||
}
|
||||
|
||||
if (IS_TIGERLAKE(i915)) {
|
||||
struct pci_dev *root, *pdev = i915->drm.pdev;
|
||||
|
||||
root = list_first_entry(&pdev->bus->devices, typeof(*root), bus_list);
|
||||
|
||||
drm_WARN_ON(&i915->drm, mask);
|
||||
drm_WARN_ON(&i915->drm, (root->device & TGL_ROOT_DEVICE_MASK) !=
|
||||
TGL_ROOT_DEVICE_ID);
|
||||
|
||||
switch (root->device & TGL_ROOT_DEVICE_SKU_MASK) {
|
||||
case TGL_ROOT_DEVICE_SKU_ULX:
|
||||
mask = BIT(INTEL_SUBPLATFORM_ULX);
|
||||
break;
|
||||
case TGL_ROOT_DEVICE_SKU_ULT:
|
||||
mask = BIT(INTEL_SUBPLATFORM_ULT);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
GEM_BUG_ON(mask & ~INTEL_SUBPLATFORM_BITS);
|
||||
|
||||
RUNTIME_INFO(i915)->platform_mask[pi] |= mask;
|
||||
|
Loading…
Reference in New Issue
Block a user