[PATCH] drm/i915/mst: add beginnings of DP MST documentation
Imre Deak
imre.deak at intel.com
Wed Dec 4 15:40:08 UTC 2024
On Mon, Nov 25, 2024 at 05:19:33PM +0200, Jani Nikula wrote:
> Add a little bit of documentation around DP MST. This is nowhere near
> complete nor does it have enough detail. But it's better than nothing,
> and hopefully gives people a basic grasp of what's going on.
>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
Reviewed-by: Imre Deak <imre.deak at intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dp_mst.c | 32 +++++++++++++++++++++
> 1 file changed, 32 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index c59c2c14679c..a9ce8b3a7ff5 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -53,6 +53,38 @@
> #include "intel_vdsc.h"
> #include "skl_scaler.h"
>
> +/*
> + * DP MST (DisplayPort Multi-Stream Transport)
> + *
> + * MST support on the source depends on the platform and port. DP initialization
> + * sets up MST for each MST capable encoder. This will become the primary
> + * encoder for the port.
> + *
> + * MST initialization of each primary encoder creates MST stream encoders, one
> + * per pipe, and initializes the MST topology manager. The MST stream encoders
> + * are sometimes called "fake encoders", because they're virtual, not
> + * physical. Thus there are (number of MST capable ports) x (number of pipes)
> + * MST stream encoders in total.
> + *
> + * Decision to use MST for a sink happens at detect on the connector attached to
> + * the primary encoder, and this will not change while the sink is connected. We
> + * always use MST when possible, including for SST sinks with sideband messaging
> + * support.
> + *
> + * The connectors for the MST streams are added and removed dynamically by the
> + * topology manager. Their connection status is also determined by the topology
> + * manager.
> + *
> + * On hardware, each transcoder may be associated with a single DDI
> + * port. Multiple transcoders may be associated with the same DDI port only if
> + * the port is in MST mode.
> + *
> + * On TGL+, all the transcoders streaming on the same DDI port will indicate a
> + * primary transcoder; the TGL_DP_TP_CTL and TGL_DP_TP_STATUS registers are
> + * relevant only on the primary transcoder. Prior to that, they are port
> + * registers.
> + */
> +
> /* From fake MST stream encoder to primary encoder */
> static struct intel_encoder *to_primary_encoder(struct intel_encoder *encoder)
> {
> --
> 2.39.5
>
More information about the Intel-gfx
mailing list