Commit 34053ee1 authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Simplify pipe_mask setup even further

Just set pipe_mask=~0 for the non-special cases where any pipe
will do. intel_encoder_possible_crtcs() will anyway drop out
anything that doesn't exist.
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191002162505.30716-5-ville.syrjala@linux.intel.comReviewed-by: default avatarJuha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
parent 4d19505e
...@@ -1552,7 +1552,6 @@ void icl_dsi_init(struct drm_i915_private *dev_priv) ...@@ -1552,7 +1552,6 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
struct drm_connector *connector; struct drm_connector *connector;
struct drm_display_mode *fixed_mode; struct drm_display_mode *fixed_mode;
enum port port; enum port port;
enum pipe pipe;
if (!intel_bios_is_dsi_present(dev_priv, &port)) if (!intel_bios_is_dsi_present(dev_priv, &port))
return; return;
...@@ -1585,8 +1584,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv) ...@@ -1585,8 +1584,7 @@ void icl_dsi_init(struct drm_i915_private *dev_priv)
encoder->get_hw_state = gen11_dsi_get_hw_state; encoder->get_hw_state = gen11_dsi_get_hw_state;
encoder->type = INTEL_OUTPUT_DSI; encoder->type = INTEL_OUTPUT_DSI;
encoder->cloneable = 0; encoder->cloneable = 0;
for_each_pipe(dev_priv, pipe) encoder->pipe_mask = ~0;
encoder->pipe_mask |= BIT(pipe);
encoder->power_domain = POWER_DOMAIN_PORT_DSI; encoder->power_domain = POWER_DOMAIN_PORT_DSI;
encoder->get_power_domains = gen11_dsi_get_power_domains; encoder->get_power_domains = gen11_dsi_get_power_domains;
......
...@@ -1003,7 +1003,7 @@ void intel_crt_init(struct drm_i915_private *dev_priv) ...@@ -1003,7 +1003,7 @@ void intel_crt_init(struct drm_i915_private *dev_priv)
if (IS_I830(dev_priv)) if (IS_I830(dev_priv))
crt->base.pipe_mask = BIT(PIPE_A); crt->base.pipe_mask = BIT(PIPE_A);
else 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)) if (IS_GEN(dev_priv, 2))
connector->interlace_allowed = 0; connector->interlace_allowed = 0;
......
...@@ -4688,7 +4688,6 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) ...@@ -4688,7 +4688,6 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
struct intel_encoder *intel_encoder; struct intel_encoder *intel_encoder;
struct drm_encoder *encoder; struct drm_encoder *encoder;
bool init_hdmi, init_dp, init_lspcon = false; bool init_hdmi, init_dp, init_lspcon = false;
enum pipe pipe;
enum phy phy = intel_port_to_phy(dev_priv, port); enum phy phy = intel_port_to_phy(dev_priv, port);
init_hdmi = port_info->supports_dvi || port_info->supports_hdmi; init_hdmi = port_info->supports_dvi || port_info->supports_hdmi;
...@@ -4740,8 +4739,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port) ...@@ -4740,8 +4739,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
intel_encoder->power_domain = intel_port_to_power_domain(port); intel_encoder->power_domain = intel_port_to_power_domain(port);
intel_encoder->port = port; intel_encoder->port = port;
intel_encoder->cloneable = 0; intel_encoder->cloneable = 0;
for_each_pipe(dev_priv, pipe) intel_encoder->pipe_mask = ~0;
intel_encoder->pipe_mask |= BIT(pipe);
if (INTEL_GEN(dev_priv) >= 11) if (INTEL_GEN(dev_priv) >= 11)
intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) & intel_dig_port->saved_port_bits = I915_READ(DDI_BUF_CTL(port)) &
......
...@@ -7575,7 +7575,7 @@ bool intel_dp_init(struct drm_i915_private *dev_priv, ...@@ -7575,7 +7575,7 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
else else
intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B); intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
} else { } 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->cloneable = 0;
intel_encoder->port = port; intel_encoder->port = port;
......
...@@ -598,8 +598,6 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum ...@@ -598,8 +598,6 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
struct intel_dp_mst_encoder *intel_mst; struct intel_dp_mst_encoder *intel_mst;
struct intel_encoder *intel_encoder; struct intel_encoder *intel_encoder;
struct drm_device *dev = intel_dig_port->base.base.dev; 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_mst = kzalloc(sizeof(*intel_mst), GFP_KERNEL);
...@@ -617,8 +615,7 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum ...@@ -617,8 +615,7 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
intel_encoder->power_domain = intel_dig_port->base.power_domain; intel_encoder->power_domain = intel_dig_port->base.power_domain;
intel_encoder->port = intel_dig_port->base.port; intel_encoder->port = intel_dig_port->base.port;
intel_encoder->cloneable = 0; intel_encoder->cloneable = 0;
for_each_pipe(dev_priv, pipe_iter) intel_encoder->pipe_mask = ~0;
intel_encoder->pipe_mask |= BIT(pipe_iter);
intel_encoder->compute_config = intel_dp_mst_compute_config; intel_encoder->compute_config = intel_dp_mst_compute_config;
intel_encoder->disable = intel_mst_disable_dp; intel_encoder->disable = intel_mst_disable_dp;
......
...@@ -505,7 +505,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv) ...@@ -505,7 +505,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv)
intel_encoder->type = INTEL_OUTPUT_DVO; intel_encoder->type = INTEL_OUTPUT_DVO;
intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER; intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
intel_encoder->port = port; intel_encoder->port = port;
intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B); intel_encoder->pipe_mask = ~0;
switch (dvo->type) { switch (dvo->type) {
case INTEL_DVO_CHIP_TMDS: case INTEL_DVO_CHIP_TMDS:
......
...@@ -3287,7 +3287,7 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv, ...@@ -3287,7 +3287,7 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv,
else else
intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B); intel_encoder->pipe_mask = BIT(PIPE_A) | BIT(PIPE_B);
} else { } 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; intel_encoder->cloneable = 1 << INTEL_OUTPUT_ANALOG;
/* /*
......
...@@ -902,7 +902,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv) ...@@ -902,7 +902,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
if (INTEL_GEN(dev_priv) < 4) if (INTEL_GEN(dev_priv) < 4)
intel_encoder->pipe_mask = BIT(PIPE_B); intel_encoder->pipe_mask = BIT(PIPE_B);
else 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); drm_connector_helper_add(connector, &intel_lvds_connector_helper_funcs);
connector->display_info.subpixel_order = SubPixelHorizontalRGB; connector->display_info.subpixel_order = SubPixelHorizontalRGB;
......
...@@ -2921,7 +2921,7 @@ intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo, u16 flags) ...@@ -2921,7 +2921,7 @@ intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo, u16 flags)
bytes[0], bytes[1]); bytes[0], bytes[1]);
return false; return false;
} }
intel_sdvo->base.pipe_mask = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C); intel_sdvo->base.pipe_mask = ~0;
return true; return true;
} }
......
...@@ -1947,7 +1947,7 @@ intel_tv_init(struct drm_i915_private *dev_priv) ...@@ -1947,7 +1947,7 @@ intel_tv_init(struct drm_i915_private *dev_priv)
intel_encoder->type = INTEL_OUTPUT_TVOUT; intel_encoder->type = INTEL_OUTPUT_TVOUT;
intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER; intel_encoder->power_domain = POWER_DOMAIN_PORT_OTHER;
intel_encoder->port = PORT_NONE; 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_encoder->cloneable = 0;
intel_tv->type = DRM_MODE_CONNECTOR_Unknown; intel_tv->type = DRM_MODE_CONNECTOR_Unknown;
......
...@@ -1870,7 +1870,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv) ...@@ -1870,7 +1870,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
* port C. BXT isn't limited like this. * port C. BXT isn't limited like this.
*/ */
if (IS_GEN9_LP(dev_priv)) 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) else if (port == PORT_A)
intel_encoder->pipe_mask = BIT(PIPE_A); intel_encoder->pipe_mask = BIT(PIPE_A);
else else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment