[Intel-gfx] [PATCH 2/2] drm/i915/mst: Do not hardcoded the crtcs that encoder can connect
Ville Syrjälä
ville.syrjala at linux.intel.com
Thu Sep 5 10:51:29 UTC 2019
On Wed, Sep 04, 2019 at 04:02:41PM -0700, José Roberto de Souza wrote:
> Tiger Lake has up to 4 pipes so the mask would need to be 0xf instead of
> 0x7. Do not hardcode the mask so it allows the fake MST encoders to
> connect to all pipes no matter how many the platform has.
>
> Iterating over all pipes to keep consistent with intel_ddi_init().
>
> Initialy this patch was replaced by commit 4eaceea3a00f ("drm/i915:
> Fix DP-MST crtc_mask") but userspace it not correctly using
> encoder.possible_crtcs and it was reverted by
> commit e838bfa8e170 ("Revert "drm/i915: Fix DP-MST crtc_mask"")
>
> Userspace should be fixed but it might take a while, so bringing this
> patch back for now.
>
> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 37366f81255b..792bcace3edf 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -599,6 +599,8 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
> 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);
>
> @@ -615,8 +617,9 @@ intel_dp_create_fake_mst_encoder(struct intel_digital_port *intel_dig_port, enum
> intel_encoder->type = INTEL_OUTPUT_DP_MST;
> intel_encoder->power_domain = intel_dig_port->base.power_domain;
> intel_encoder->port = intel_dig_port->base.port;
> - intel_encoder->crtc_mask = 0x7;
> intel_encoder->cloneable = 0;
> + for_each_pipe(dev_priv, pipe_iter)
> + intel_encoder->crtc_mask |= BIT(pipe_iter);
>
> intel_encoder->compute_config = intel_dp_mst_compute_config;
> intel_encoder->disable = intel_mst_disable_dp;
> --
> 2.23.0
--
Ville Syrjälä
Intel
More information about the Intel-gfx
mailing list