|
@@ -764,32 +764,21 @@ static void i915_gem_record_fences(struct drm_device *dev,
|
|
|
struct drm_i915_private *dev_priv = dev->dev_private;
|
|
|
int i;
|
|
|
|
|
|
- /* Fences */
|
|
|
- switch (INTEL_INFO(dev)->gen) {
|
|
|
- case 9:
|
|
|
- case 8:
|
|
|
- case 7:
|
|
|
- case 6:
|
|
|
- for (i = 0; i < dev_priv->num_fence_regs; i++)
|
|
|
- error->fence[i] = I915_READ64(FENCE_REG_SANDYBRIDGE_0 + (i * 8));
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- case 4:
|
|
|
- for (i = 0; i < 16; i++)
|
|
|
- error->fence[i] = I915_READ64(FENCE_REG_965_0 + (i * 8));
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- if (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev))
|
|
|
- for (i = 0; i < 8; i++)
|
|
|
- error->fence[i+8] = I915_READ(FENCE_REG_945_8 + (i * 4));
|
|
|
- case 2:
|
|
|
+ if (IS_GEN3(dev) || IS_GEN2(dev)) {
|
|
|
for (i = 0; i < 8; i++)
|
|
|
error->fence[i] = I915_READ(FENCE_REG_830_0 + (i * 4));
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- BUG();
|
|
|
- }
|
|
|
+ if (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev))
|
|
|
+ for (i = 0; i < 8; i++)
|
|
|
+ error->fence[i+8] = I915_READ(FENCE_REG_945_8 +
|
|
|
+ (i * 4));
|
|
|
+ } else if (IS_GEN5(dev) || IS_GEN4(dev))
|
|
|
+ for (i = 0; i < 16; i++)
|
|
|
+ error->fence[i] = I915_READ64(FENCE_REG_965_0 +
|
|
|
+ (i * 8));
|
|
|
+ else if (INTEL_INFO(dev)->gen >= 6)
|
|
|
+ for (i = 0; i < dev_priv->num_fence_regs; i++)
|
|
|
+ error->fence[i] = I915_READ64(FENCE_REG_SANDYBRIDGE_0 +
|
|
|
+ (i * 8));
|
|
|
}
|
|
|
|
|
|
|