Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3657e927 authored by Mika Kahola's avatar Mika Kahola Committed by Ville Syrjälä
Browse files

drm/i915: Generalize transcoder looping



To make looping through transcoders in intel_ddi.c more generic, let's switch
to use 'for_each_pipe()' macro to do this.

v2: Add a notion that we are dealing with transcoders instead of pipes (Jani)

Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarMika Kahola <mika.kahola@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1510216670-16848-1-git-send-email-mika.kahola@intel.com


Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
parent 4036c78c
Loading
Loading
Loading
Loading
+6 −4
Original line number Original line Diff line number Diff line
@@ -1681,8 +1681,8 @@ bool intel_ddi_get_hw_state(struct intel_encoder *encoder,
	struct drm_device *dev = encoder->base.dev;
	struct drm_device *dev = encoder->base.dev;
	struct drm_i915_private *dev_priv = to_i915(dev);
	struct drm_i915_private *dev_priv = to_i915(dev);
	enum port port = encoder->port;
	enum port port = encoder->port;
	enum pipe p;
	u32 tmp;
	u32 tmp;
	int i;
	bool ret;
	bool ret;


	if (!intel_display_power_get_if_enabled(dev_priv,
	if (!intel_display_power_get_if_enabled(dev_priv,
@@ -1717,15 +1717,17 @@ bool intel_ddi_get_hw_state(struct intel_encoder *encoder,
		goto out;
		goto out;
	}
	}


	for (i = TRANSCODER_A; i <= TRANSCODER_C; i++) {
	for_each_pipe(dev_priv, p) {
		tmp = I915_READ(TRANS_DDI_FUNC_CTL(i));
		enum transcoder cpu_transcoder = (enum transcoder) p;

		tmp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder));


		if ((tmp & TRANS_DDI_PORT_MASK) == TRANS_DDI_SELECT_PORT(port)) {
		if ((tmp & TRANS_DDI_PORT_MASK) == TRANS_DDI_SELECT_PORT(port)) {
			if ((tmp & TRANS_DDI_MODE_SELECT_MASK) ==
			if ((tmp & TRANS_DDI_MODE_SELECT_MASK) ==
			    TRANS_DDI_MODE_SELECT_DP_MST)
			    TRANS_DDI_MODE_SELECT_DP_MST)
				goto out;
				goto out;


			*pipe = i;
			*pipe = p;
			ret = true;
			ret = true;


			goto out;
			goto out;