func(has_gmch_display); \
        func(has_guc); \
        func(has_hotplug); \
-       func(has_hw_contexts); \
        func(has_l3_dpf); \
        func(has_llc); \
        func(has_logical_ring_contexts); \
 
 #define HWS_NEEDS_PHYSICAL(dev_priv)   ((dev_priv)->info.hws_needs_physical)
 
-#define HAS_HW_CONTEXTS(dev_priv)          ((dev_priv)->info.has_hw_contexts)
 #define HAS_LOGICAL_RING_CONTEXTS(dev_priv) \
                ((dev_priv)->info.has_logical_ring_contexts)
 #define USES_PPGTT(dev_priv)           (i915.enable_ppgtt)
 
         * of the reset, so we only reset recent machines with logical
         * context support (that must be reset to remove any stray contexts).
         */
-       if (HAS_HW_CONTEXTS(i915)) {
+       if (INTEL_GEN(i915) >= 6) {
                int reset = intel_gpu_reset(i915, ALL_ENGINES);
                WARN_ON(reset && reset != -ENODEV);
        }
 
                error->done_reg = I915_READ(DONE_REG);
        }
 
+       if (INTEL_GEN(dev_priv) >= 6)
+               error->ccid = I915_READ(CCID);
+
        /* 3: Feature specific registers */
        if (IS_GEN6(dev_priv) || IS_GEN7(dev_priv)) {
                error->gam_ecochk = I915_READ(GAM_ECOCHK);
        }
 
        /* 4: Everything else */
-       if (HAS_HW_CONTEXTS(dev_priv))
-               error->ccid = I915_READ(CCID);
-
        if (INTEL_GEN(dev_priv) >= 8) {
                error->ier = I915_READ(GEN8_DE_MISC_IER);
                for (i = 0; i < 4; i++)
 
        .has_rc6 = 1, \
        .has_rc6p = 1, \
        .has_gmbus_irq = 1, \
-       .has_hw_contexts = 1, \
        .has_aliasing_ppgtt = 1, \
        GEN_DEFAULT_PIPEOFFSETS, \
        CURSOR_OFFSETS
        .has_rc6 = 1, \
        .has_rc6p = 1, \
        .has_gmbus_irq = 1, \
-       .has_hw_contexts = 1, \
        .has_aliasing_ppgtt = 1, \
        .has_full_ppgtt = 1, \
        GEN_DEFAULT_PIPEOFFSETS, \
        .has_runtime_pm = 1,
        .has_rc6 = 1,
        .has_gmbus_irq = 1,
-       .has_hw_contexts = 1,
        .has_gmch_display = 1,
        .has_hotplug = 1,
        .has_aliasing_ppgtt = 1,
        .has_resource_streamer = 1,
        .has_rc6 = 1,
        .has_gmbus_irq = 1,
-       .has_hw_contexts = 1,
        .has_logical_ring_contexts = 1,
        .has_gmch_display = 1,
        .has_aliasing_ppgtt = 1,
        .has_rc6 = 1, \
        .has_dp_mst = 1, \
        .has_gmbus_irq = 1, \
-       .has_hw_contexts = 1, \
        .has_logical_ring_contexts = 1, \
        .has_guc = 1, \
        .has_decoupled_mmio = 1, \
 
        int slice = (int)(uintptr_t)attr->private;
        int ret;
 
-       if (!HAS_HW_CONTEXTS(dev_priv))
-               return -ENXIO;
-
        ret = l3_access_valid(dev_priv, offset);
        if (ret)
                return ret;