Commit b2e00dd3 authored by Imre Deak's avatar Imre Deak
Browse files

drm/i915: Use the AUX_IO power domain only for eDP/PSR port



Use the AUX_IO_A display power domain only for eDP on port A where PSR
is also supported. This is the case where DC states need to be enabled
while the output is enabled - ensured by AUX_IO_A domain not enabling
the DC_OFF power well. Otherwise port A can be treated the same way as
other ports with an external DP output: using the AUX_<port> domain
which disables the unrequired DC states.

This change prepares for the next patch enabling DC states on all ports
supporting eDP/PSR besides port A.

v2:
- Check the encoder PSR capability instead of PSR being enabled in the
  crtc_state, as the latter can be changed with a fastset.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221114122251.21327-5-imre.deak@intel.com
parent 5c30cfcd
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -862,8 +862,10 @@ intel_ddi_main_link_aux_domain(struct intel_digital_port *dig_port)
	 * Note that PSR is enabled only on Port A even though this function
	 * Note that PSR is enabled only on Port A even though this function
	 * returns the correct domain for other ports too.
	 * returns the correct domain for other ports too.
	 */
	 */
	return dig_port->aux_ch == AUX_CH_A ? POWER_DOMAIN_AUX_IO_A :
	if (dig_port->aux_ch == AUX_CH_A && intel_encoder_can_psr(&dig_port->base))
					      intel_aux_power_domain(dig_port);
		return POWER_DOMAIN_AUX_IO_A;
	else
		return intel_aux_power_domain(dig_port);
}
}


static void intel_ddi_get_power_domains(struct intel_encoder *encoder,
static void intel_ddi_get_power_domains(struct intel_encoder *encoder,