drm/i915/mst: Document the userspace fail with possible_crtcs
To avoid accidentally breaking things in the future add a comment explaining why we misconfigure the pipe_mask. Also toss in a TODO for investigating a single encoder approach as opposed to the encoder-per-pipe approach. v2: Drop a bogus TODO comment Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191002162505.30716-6-ville.syrjala@linux.intel.com Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
This commit is contained in:
parent
34053ee189
commit
29b27657db
|
@ -615,6 +615,14 @@ 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;
|
||||||
|
/*
|
||||||
|
* This is wrong, but broken userspace uses the intersection
|
||||||
|
* of possible_crtcs of all the encoders of a given connector
|
||||||
|
* to figure out which crtcs can drive said connector. What
|
||||||
|
* should be used instead is the union of possible_crtcs.
|
||||||
|
* To keep such userspace functioning we must misconfigure
|
||||||
|
* this to make sure the intersection is not empty :(
|
||||||
|
*/
|
||||||
intel_encoder->pipe_mask = ~0;
|
intel_encoder->pipe_mask = ~0;
|
||||||
|
|
||||||
intel_encoder->compute_config = intel_dp_mst_compute_config;
|
intel_encoder->compute_config = intel_dp_mst_compute_config;
|
||||||
|
|
Loading…
Reference in New Issue