|
@@ -97,7 +97,7 @@ static void i8xx_enable_fbc(struct drm_crtc *crtc)
|
|
|
struct drm_i915_gem_object *obj = intel_fb->obj;
|
|
|
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
|
|
|
int cfb_pitch;
|
|
|
- int plane, i;
|
|
|
+ int i;
|
|
|
u32 fbc_ctl;
|
|
|
|
|
|
cfb_pitch = dev_priv->fbc.size / FBC_LL_SIZE;
|
|
@@ -109,7 +109,6 @@ static void i8xx_enable_fbc(struct drm_crtc *crtc)
|
|
|
cfb_pitch = (cfb_pitch / 32) - 1;
|
|
|
else
|
|
|
cfb_pitch = (cfb_pitch / 64) - 1;
|
|
|
- plane = intel_crtc->plane == 0 ? FBC_CTL_PLANEA : FBC_CTL_PLANEB;
|
|
|
|
|
|
/* Clear old tags */
|
|
|
for (i = 0; i < (FBC_LL_SIZE / 32) + 1; i++)
|
|
@@ -120,7 +119,7 @@ static void i8xx_enable_fbc(struct drm_crtc *crtc)
|
|
|
|
|
|
/* Set it up... */
|
|
|
fbc_ctl2 = FBC_CTL_FENCE_DBL | FBC_CTL_IDLE_IMM | FBC_CTL_CPU_FENCE;
|
|
|
- fbc_ctl2 |= plane;
|
|
|
+ fbc_ctl2 |= FBC_CTL_PLANE(intel_crtc->plane);
|
|
|
I915_WRITE(FBC_CONTROL2, fbc_ctl2);
|
|
|
I915_WRITE(FBC_FENCE_OFF, crtc->y);
|
|
|
}
|
|
@@ -154,10 +153,9 @@ static void g4x_enable_fbc(struct drm_crtc *crtc)
|
|
|
struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb);
|
|
|
struct drm_i915_gem_object *obj = intel_fb->obj;
|
|
|
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
|
|
|
- int plane = intel_crtc->plane == 0 ? DPFC_CTL_PLANEA : DPFC_CTL_PLANEB;
|
|
|
u32 dpfc_ctl;
|
|
|
|
|
|
- dpfc_ctl = plane | DPFC_SR_EN | DPFC_CTL_LIMIT_1X;
|
|
|
+ dpfc_ctl = DPFC_CTL_PLANE(intel_crtc->plane) | DPFC_SR_EN | DPFC_CTL_LIMIT_1X;
|
|
|
dpfc_ctl |= DPFC_CTL_FENCE_EN | obj->fence_reg;
|
|
|
|
|
|
I915_WRITE(DPFC_FENCE_YOFF, crtc->y);
|
|
@@ -223,12 +221,11 @@ static void ironlake_enable_fbc(struct drm_crtc *crtc)
|
|
|
struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb);
|
|
|
struct drm_i915_gem_object *obj = intel_fb->obj;
|
|
|
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
|
|
|
- int plane = intel_crtc->plane == 0 ? DPFC_CTL_PLANEA : DPFC_CTL_PLANEB;
|
|
|
u32 dpfc_ctl;
|
|
|
|
|
|
dpfc_ctl = I915_READ(ILK_DPFC_CONTROL);
|
|
|
dpfc_ctl &= DPFC_RESERVED;
|
|
|
- dpfc_ctl |= (plane | DPFC_CTL_LIMIT_1X);
|
|
|
+ dpfc_ctl |= DPFC_CTL_PLANE(intel_crtc->plane) | DPFC_CTL_LIMIT_1X;
|
|
|
dpfc_ctl |= DPFC_CTL_FENCE_EN;
|
|
|
if (IS_GEN5(dev))
|
|
|
dpfc_ctl |= obj->fence_reg;
|
|
@@ -281,7 +278,7 @@ static void gen7_enable_fbc(struct drm_crtc *crtc)
|
|
|
|
|
|
I915_WRITE(ILK_DPFC_CONTROL, DPFC_CTL_EN | DPFC_CTL_LIMIT_1X |
|
|
|
IVB_DPFC_CTL_FENCE_EN |
|
|
|
- intel_crtc->plane << IVB_DPFC_CTL_PLANE_SHIFT);
|
|
|
+ IVB_DPFC_CTL_PLANE(intel_crtc->plane));
|
|
|
|
|
|
if (IS_IVYBRIDGE(dev)) {
|
|
|
/* WaFbcAsynchFlipDisableFbcQueue:ivb */
|