struct drm_connector *connector;
        struct drm_display_mode *fixed_mode;
        enum port port;
-       enum pipe pipe;
 
        if (!intel_bios_is_dsi_present(dev_priv, &port))
                return;
        encoder->get_hw_state = gen11_dsi_get_hw_state;
        encoder->type = INTEL_OUTPUT_DSI;
        encoder->cloneable = 0;
-       for_each_pipe(dev_priv, pipe)
-               encoder->pipe_mask |= BIT(pipe);
+       encoder->pipe_mask = ~0;
        encoder->power_domain = POWER_DOMAIN_PORT_DSI;
        encoder->get_power_domains = gen11_dsi_get_power_domains;
 
 
        if (IS_I830(dev_priv))
                crt->base.pipe_mask = BIT(PIPE_A);
        else
-               crt->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+               crt->base.pipe_mask = ~0;
 
        if (IS_GEN(dev_priv, 2))
                connector->interlace_allowed = 0;
 
        struct intel_encoder *intel_encoder;
        struct drm_encoder *encoder;
        bool init_hdmi, init_dp, init_lspcon = false;
-       enum pipe pipe;
        enum phy phy = intel_port_to_phy(dev_priv, port);
 
        init_hdmi = port_info->supports_dvi || port_info->supports_hdmi;
        intel_encoder->power_domain = intel_port_to_power_domain(port);
        intel_encoder->port = port;
        intel_encoder->cloneable = 0;
-       for_each_pipe(dev_priv, pipe)
-               intel_encoder->pipe_mask |= BIT(pipe);
+       intel_encoder->pipe_mask = ~0;
 
        if (INTEL_GEN(dev_priv) >= 11)
                intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) &
 
                else
                        intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
        } else {
-               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+               intel_encoder->pipe_mask = ~0;
        }
        intel_encoder->cloneable = 0;
        intel_encoder->port = port;
 
        struct intel_dp_mst_encoder *intel_mst;
        struct intel_encoder *intel_encoder;
        struct drm_device *dev = intel_dig_port->base.base.dev;
-       struct drm_i915_private *dev_priv = to_i915(dev);
-       enum pipe pipe_iter;
 
        intel_mst = kzalloc(sizeof(*intel_mst), GFP_KERNEL);
 
        intel_encoder->power_domain = intel_dig_port->base.power_domain;
        intel_encoder->port = intel_dig_port->base.port;
        intel_encoder->cloneable = 0;
-       for_each_pipe(dev_priv, pipe_iter)
-               intel_encoder->pipe_mask |= BIT(pipe_iter);
+       intel_encoder->pipe_mask = ~0;
 
        intel_encoder->compute_config = intel_dp_mst_compute_config;
        intel_encoder->disable = intel_mst_disable_dp;
 
                intel_encoder->type = INTEL_OUTPUT_DVO;
                intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
                intel_encoder->port = port;
-               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
+               intel_encoder->pipe_mask = ~0;
 
                switch (dvo->type) {
                case INTEL_DVO_CHIP_TMDS:
 
                else
                        intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
        } else {
-               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+               intel_encoder->pipe_mask = ~0;
        }
        intel_encoder->cloneable = 1 << INTEL_OUTPUT_ANALOG;
        /*
 
        if (INTEL_GEN(dev_priv) < 4)
                intel_encoder->pipe_mask = BIT(PIPE_B);
        else
-               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+               intel_encoder->pipe_mask = ~0;
 
        drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs);
        connector->display_info.subpixel_order = SubPixelHorizontalRGB;
 
                              bytes[0], bytes[1]);
                return false;
        }
-       intel_sdvo->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+       intel_sdvo->base.pipe_mask = ~0;
 
        return true;
 }
 
        intel_encoder->type = INTEL_OUTPUT_TVOUT;
        intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
        intel_encoder->port = PORT_NONE;
-       intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
+       intel_encoder->pipe_mask = ~0;
        intel_encoder->cloneable = 0;
        intel_tv->type = DRM_MODE_CONNECTOR_Unknown;
 
 
         * port C. BXT isn't limited like this.
         */
        if (IS_GEN9_LP(dev_priv))
-               intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C);
+               intel_encoder->pipe_mask = ~0;
        else if (port == PORT_A)
                intel_encoder->pipe_mask = BIT(PIPE_A);
        else