Merge branch 'next-lockdown' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[linux-2.6-microblaze.git] / drivers / gpu / drm / i915 / i915_pci.c
index 6c9f46f..1974e4c 100644 (file)
@@ -522,8 +522,6 @@ static const struct intel_device_info intel_haswell_gt3_info = {
 #define GEN8_FEATURES \
        G75_FEATURES, \
        GEN(8), \
-       .page_sizes = I915_GTT_PAGE_SIZE_4K | \
-                     I915_GTT_PAGE_SIZE_2M, \
        .has_logical_ring_contexts = 1, \
        .ppgtt_type = INTEL_PPGTT_FULL, \
        .ppgtt_size = 48, \
@@ -586,8 +584,7 @@ static const struct intel_device_info intel_cherryview_info = {
 
 #define GEN9_DEFAULT_PAGE_SIZES \
        .page_sizes = I915_GTT_PAGE_SIZE_4K | \
-                     I915_GTT_PAGE_SIZE_64K | \
-                     I915_GTT_PAGE_SIZE_2M
+                     I915_GTT_PAGE_SIZE_64K
 
 #define GEN9_FEATURES \
        GEN8_FEATURES, \
@@ -595,7 +592,7 @@ static const struct intel_device_info intel_cherryview_info = {
        GEN9_DEFAULT_PAGE_SIZES, \
        .has_logical_ring_preemption = 1, \
        .display.has_csr = 1, \
-       .has_guc = 1, \
+       .has_gt_uc = 1, \
        .display.has_ipc = 1, \
        .ddb_size = 896
 
@@ -647,7 +644,7 @@ static const struct intel_device_info intel_skylake_gt4_info = {
        .display.has_dp_mst = 1, \
        .has_logical_ring_contexts = 1, \
        .has_logical_ring_preemption = 1, \
-       .has_guc = 1, \
+       .has_gt_uc = 1, \
        .ppgtt_type = INTEL_PPGTT_FULL, \
        .ppgtt_size = 48, \
        .has_reset_engine = 1, \
@@ -727,8 +724,14 @@ static const struct intel_device_info intel_cannonlake_info = {
        .gt = 2,
 };
 
+#define GEN11_DEFAULT_PAGE_SIZES \
+       .page_sizes = I915_GTT_PAGE_SIZE_4K | \
+                     I915_GTT_PAGE_SIZE_64K | \
+                     I915_GTT_PAGE_SIZE_2M
+
 #define GEN11_FEATURES \
        GEN10_FEATURES, \
+       GEN11_DEFAULT_PAGE_SIZES, \
        .pipe_offsets = { \
                [TRANSCODER_A] = PIPE_A_OFFSET, \
                [TRANSCODER_B] = PIPE_B_OFFSET, \
@@ -761,10 +764,41 @@ static const struct intel_device_info intel_elkhartlake_info = {
        GEN11_FEATURES,
        PLATFORM(INTEL_ELKHARTLAKE),
        .require_force_probe = 1,
-       .engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0),
+       .engine_mask = BIT(RCS0) | BIT(BCS0) | BIT(VCS0) | BIT(VECS0),
        .ppgtt_size = 36,
 };
 
+#define GEN12_FEATURES \
+       GEN11_FEATURES, \
+       GEN(12), \
+       .pipe_offsets = { \
+               [TRANSCODER_A] = PIPE_A_OFFSET, \
+               [TRANSCODER_B] = PIPE_B_OFFSET, \
+               [TRANSCODER_C] = PIPE_C_OFFSET, \
+               [TRANSCODER_D] = PIPE_D_OFFSET, \
+               [TRANSCODER_DSI_0] = PIPE_DSI0_OFFSET, \
+               [TRANSCODER_DSI_1] = PIPE_DSI1_OFFSET, \
+       }, \
+       .trans_offsets = { \
+               [TRANSCODER_A] = TRANSCODER_A_OFFSET, \
+               [TRANSCODER_B] = TRANSCODER_B_OFFSET, \
+               [TRANSCODER_C] = TRANSCODER_C_OFFSET, \
+               [TRANSCODER_D] = TRANSCODER_D_OFFSET, \
+               [TRANSCODER_DSI_0] = TRANSCODER_DSI0_OFFSET, \
+               [TRANSCODER_DSI_1] = TRANSCODER_DSI1_OFFSET, \
+       }, \
+       .has_global_mocs = 1
+
+static const struct intel_device_info intel_tigerlake_12_info = {
+       GEN12_FEATURES,
+       PLATFORM(INTEL_TIGERLAKE),
+       .num_pipes = 4,
+       .require_force_probe = 1,
+       .display.has_modular_fia = 1,
+       .engine_mask =
+               BIT(RCS0) | BIT(BCS0) | BIT(VECS0) | BIT(VCS0) | BIT(VCS2),
+};
+
 #undef GEN
 #undef PLATFORM
 
@@ -836,22 +870,23 @@ static const struct pci_device_id pciidlist[] = {
        INTEL_CNL_IDS(&intel_cannonlake_info),
        INTEL_ICL_11_IDS(&intel_icelake_11_info),
        INTEL_EHL_IDS(&intel_elkhartlake_info),
+       INTEL_TGL_12_IDS(&intel_tigerlake_12_info),
        {0, 0, 0}
 };
 MODULE_DEVICE_TABLE(pci, pciidlist);
 
 static void i915_pci_remove(struct pci_dev *pdev)
 {
-       struct drm_device *dev;
+       struct drm_i915_private *i915;
 
-       dev = pci_get_drvdata(pdev);
-       if (!dev) /* driver load aborted, nothing to cleanup */
+       i915 = pci_get_drvdata(pdev);
+       if (!i915) /* driver load aborted, nothing to cleanup */
                return;
 
-       i915_driver_unload(dev);
-       drm_dev_put(dev);
-
+       i915_driver_remove(i915);
        pci_set_drvdata(pdev, NULL);
+
+       drm_dev_put(&i915->drm);
 }
 
 /* is device_id present in comma separated list of ids */
@@ -923,11 +958,11 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (vga_switcheroo_client_probe_defer(pdev))
                return -EPROBE_DEFER;
 
-       err = i915_driver_load(pdev, ent);
+       err = i915_driver_probe(pdev, ent);
        if (err)
                return err;
 
-       if (i915_inject_load_failure()) {
+       if (i915_inject_probe_failure(pci_get_drvdata(pdev))) {
                i915_pci_remove(pdev);
                return -ENODEV;
        }