{
        struct drm_crtc *crtc = NULL, *tmp_crtc;
        enum pipe pipe;
-       bool pipe_a_only = false, one_pipe_only = false;
+       bool pipe_a_only = false;
 
        if (IS_HASWELL(dev_priv) || INTEL_INFO(dev_priv)->gen >= 8)
                pipe_a_only = true;
-       else if (INTEL_INFO(dev_priv)->gen <= 4)
-               one_pipe_only = true;
 
        for_each_pipe(dev_priv, pipe) {
                tmp_crtc = dev_priv->pipe_to_crtc_mapping[pipe];
 
                if (intel_crtc_active(tmp_crtc) &&
-                   to_intel_plane_state(tmp_crtc->primary->state)->visible) {
-                       if (one_pipe_only && crtc) {
-                               set_no_fbc_reason(dev_priv, FBC_MULTIPLE_PIPES);
-                               return NULL;
-                       }
+                   to_intel_plane_state(tmp_crtc->primary->state)->visible)
                        crtc = tmp_crtc;
-               }
 
                if (pipe_a_only)
                        break;
        return crtc;
 }
 
+static bool multiple_pipes_ok(struct drm_i915_private *dev_priv)
+{
+       enum pipe pipe;
+       int n_pipes = 0;
+       struct drm_crtc *crtc;
+
+       if (INTEL_INFO(dev_priv)->gen > 4)
+               return true;
+
+       for_each_pipe(dev_priv, pipe) {
+               crtc = dev_priv->pipe_to_crtc_mapping[pipe];
+
+               if (intel_crtc_active(crtc) &&
+                   to_intel_plane_state(crtc->primary->state)->visible)
+                       n_pipes++;
+       }
+
+       return (n_pipes < 2);
+}
+
 static int find_compression_threshold(struct drm_i915_private *dev_priv,
                                      struct drm_mm_node *node,
                                      int size,
        if (!crtc)
                goto out_disable;
 
+       if (!multiple_pipes_ok(dev_priv)) {
+               set_no_fbc_reason(dev_priv, FBC_MULTIPLE_PIPES);
+               goto out_disable;
+       }
+
        intel_crtc = to_intel_crtc(crtc);
        fb = crtc->primary->fb;
        obj = intel_fb_obj(fb);