Merge tag 'pci-v5.4-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
[linux-2.6-microblaze.git] / drivers / gpu / drm / i915 / i915_pci.c
index bd9211b..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, \
@@ -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, \
@@ -783,7 +786,8 @@ static const struct intel_device_info intel_elkhartlake_info = {
                [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,
@@ -873,16 +877,16 @@ 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_remove(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 */
@@ -958,7 +962,7 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (err)
                return err;
 
-       if (i915_inject_probe_failure()) {
+       if (i915_inject_probe_failure(pci_get_drvdata(pdev))) {
                i915_pci_remove(pdev);
                return -ENODEV;
        }