mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 22:52:19 +02:00
drm/i915/ddi: clarify intel_ddi_connector_get_hw_state() for DP MST
encoder->get_hw_state() returns false for DP MST, and currently always interprets 128b/132b as MST. Therefore the DDI MST mode checks in intel_ddi_connector_get_hw_state() are redundant. Prepare for future, and handle 128b/132b SST and warn on 8b/10b MST. Cc: Imre Deak <imre.deak@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241125120959.2366419-1-jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
parent
de5c149a9b
commit
ad4adad7c6
|
|
@ -731,6 +731,7 @@ bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector)
|
|||
if (!wakeref)
|
||||
return false;
|
||||
|
||||
/* Note: This returns false for DP MST primary encoders. */
|
||||
if (!encoder->get_hw_state(encoder, &pipe)) {
|
||||
ret = false;
|
||||
goto out;
|
||||
|
|
@ -752,12 +753,14 @@ bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector)
|
|||
} else if (ddi_mode == TRANS_DDI_MODE_SELECT_DP_SST) {
|
||||
ret = type == DRM_MODE_CONNECTOR_eDP ||
|
||||
type == DRM_MODE_CONNECTOR_DisplayPort;
|
||||
} else if (ddi_mode == TRANS_DDI_MODE_SELECT_DP_MST ||
|
||||
(ddi_mode == TRANS_DDI_MODE_SELECT_FDI_OR_128B132B && HAS_DP20(display))) {
|
||||
} else if (ddi_mode == TRANS_DDI_MODE_SELECT_FDI_OR_128B132B && HAS_DP20(display)) {
|
||||
/*
|
||||
* If the transcoder is in MST state then connector isn't
|
||||
* connected.
|
||||
* encoder->get_hw_state() should have bailed out on MST. This
|
||||
* must be SST and non-eDP.
|
||||
*/
|
||||
ret = type == DRM_MODE_CONNECTOR_DisplayPort;
|
||||
} else if (drm_WARN_ON(display->drm, ddi_mode == TRANS_DDI_MODE_SELECT_DP_MST)) {
|
||||
/* encoder->get_hw_state() should have bailed out on MST. */
|
||||
ret = false;
|
||||
} else {
|
||||
ret = false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user