]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - drivers/gpu/drm/i915/i915_gem_gtt.c
drm/i915: Move i915_check_and_clear_faults to intel_reset.c
[thirdparty/kernel/stable.git] / drivers / gpu / drm / i915 / i915_gem_gtt.c
index 87be9c1b6021cf51bb41df6e70ac10269d49b74f..2e15850bd9873d43b70d5f24db34704df9c460da 100644 (file)
@@ -2300,69 +2300,6 @@ static bool needs_idle_maps(struct drm_i915_private *dev_priv)
        return IS_GEN(dev_priv, 5) && IS_MOBILE(dev_priv) && intel_vtd_active();
 }
 
-static void gen6_check_faults(struct drm_i915_private *dev_priv)
-{
-       struct intel_engine_cs *engine;
-       enum intel_engine_id id;
-       u32 fault;
-
-       for_each_engine(engine, dev_priv, id) {
-               fault = GEN6_RING_FAULT_REG_READ(engine);
-               if (fault & RING_FAULT_VALID) {
-                       DRM_DEBUG_DRIVER("Unexpected fault\n"
-                                        "\tAddr: 0x%08lx\n"
-                                        "\tAddress space: %s\n"
-                                        "\tSource ID: %d\n"
-                                        "\tType: %d\n",
-                                        fault & PAGE_MASK,
-                                        fault & RING_FAULT_GTTSEL_MASK ? "GGTT" : "PPGTT",
-                                        RING_FAULT_SRCID(fault),
-                                        RING_FAULT_FAULT_TYPE(fault));
-               }
-       }
-}
-
-static void gen8_check_faults(struct drm_i915_private *dev_priv)
-{
-       u32 fault = I915_READ(GEN8_RING_FAULT_REG);
-
-       if (fault & RING_FAULT_VALID) {
-               u32 fault_data0, fault_data1;
-               u64 fault_addr;
-
-               fault_data0 = I915_READ(GEN8_FAULT_TLB_DATA0);
-               fault_data1 = I915_READ(GEN8_FAULT_TLB_DATA1);
-               fault_addr = ((u64)(fault_data1 & FAULT_VA_HIGH_BITS) << 44) |
-                            ((u64)fault_data0 << 12);
-
-               DRM_DEBUG_DRIVER("Unexpected fault\n"
-                                "\tAddr: 0x%08x_%08x\n"
-                                "\tAddress space: %s\n"
-                                "\tEngine ID: %d\n"
-                                "\tSource ID: %d\n"
-                                "\tType: %d\n",
-                                upper_32_bits(fault_addr),
-                                lower_32_bits(fault_addr),
-                                fault_data1 & FAULT_GTT_SEL ? "GGTT" : "PPGTT",
-                                GEN8_RING_FAULT_ENGINE_ID(fault),
-                                RING_FAULT_SRCID(fault),
-                                RING_FAULT_FAULT_TYPE(fault));
-       }
-}
-
-void i915_check_and_clear_faults(struct drm_i915_private *dev_priv)
-{
-       /* From GEN8 onwards we only have one 'All Engine Fault Register' */
-       if (INTEL_GEN(dev_priv) >= 8)
-               gen8_check_faults(dev_priv);
-       else if (INTEL_GEN(dev_priv) >= 6)
-               gen6_check_faults(dev_priv);
-       else
-               return;
-
-       i915_clear_error_registers(dev_priv, ALL_ENGINES);
-}
-
 void i915_gem_suspend_gtt_mappings(struct drm_i915_private *dev_priv)
 {
        struct i915_ggtt *ggtt = &dev_priv->ggtt;