Commit 12c4d4c1 authored by Ville Syrjälä's avatar Ville Syrjälä
Browse files

drm/i915: Use _PICK() for CHICKEN_TRANS()

parent dd095afc
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -3872,12 +3872,12 @@ static i915_reg_t
gen9_chicken_trans_reg_by_port(struct drm_i915_private *dev_priv,
			       enum port port)
{
	static const i915_reg_t regs[] = {
		[PORT_A] = CHICKEN_TRANS_EDP,
		[PORT_B] = CHICKEN_TRANS_A,
		[PORT_C] = CHICKEN_TRANS_B,
		[PORT_D] = CHICKEN_TRANS_C,
		[PORT_E] = CHICKEN_TRANS_A,
	static const enum transcoder trans[] = {
		[PORT_A] = TRANSCODER_EDP,
		[PORT_B] = TRANSCODER_A,
		[PORT_C] = TRANSCODER_B,
		[PORT_D] = TRANSCODER_C,
		[PORT_E] = TRANSCODER_A,
	};

	WARN_ON(INTEL_GEN(dev_priv) < 9);
@@ -3885,7 +3885,7 @@ gen9_chicken_trans_reg_by_port(struct drm_i915_private *dev_priv,
	if (WARN_ON(port < PORT_A || port > PORT_E))
		port = PORT_A;

	return regs[port];
	return CHICKEN_TRANS(trans[port]);
}

static void intel_enable_ddi_hdmi(struct intel_encoder *encoder,
+1 −21
Original line number Diff line number Diff line
@@ -740,25 +740,6 @@ static void intel_psr_activate(struct intel_dp *intel_dp)
	dev_priv->psr.active = true;
}

static i915_reg_t gen9_chicken_trans_reg(struct drm_i915_private *dev_priv,
					 enum transcoder cpu_transcoder)
{
	static const i915_reg_t regs[] = {
		[TRANSCODER_A] = CHICKEN_TRANS_A,
		[TRANSCODER_B] = CHICKEN_TRANS_B,
		[TRANSCODER_C] = CHICKEN_TRANS_C,
		[TRANSCODER_EDP] = CHICKEN_TRANS_EDP,
	};

	WARN_ON(INTEL_GEN(dev_priv) < 9);

	if (WARN_ON(cpu_transcoder >= ARRAY_SIZE(regs) ||
		    !regs[cpu_transcoder].reg))
		cpu_transcoder = TRANSCODER_A;

	return regs[cpu_transcoder];
}

static void intel_psr_enable_source(struct intel_dp *intel_dp,
				    const struct intel_crtc_state *crtc_state)
{
@@ -774,8 +755,7 @@ static void intel_psr_enable_source(struct intel_dp *intel_dp,

	if (dev_priv->psr.psr2_enabled && (IS_GEN(dev_priv, 9) &&
					   !IS_GEMINILAKE(dev_priv))) {
		i915_reg_t reg = gen9_chicken_trans_reg(dev_priv,
							cpu_transcoder);
		i915_reg_t reg = CHICKEN_TRANS(cpu_transcoder);
		u32 chicken = I915_READ(reg);

		chicken |= PSR2_VSC_ENABLE_PROG_HEADER |
+9 −4
Original line number Diff line number Diff line
@@ -7627,10 +7627,15 @@ enum {
#define  BDW_DPRS_MASK_VBLANK_SRD	(1 << 0)
#define CHICKEN_PIPESL_1(pipe) _MMIO_PIPE(pipe, _CHICKEN_PIPESL_1_A, _CHICKEN_PIPESL_1_B)

#define CHICKEN_TRANS_A		_MMIO(0x420c0)
#define CHICKEN_TRANS_B		_MMIO(0x420c4)
#define CHICKEN_TRANS_C		_MMIO(0x420c8)
#define CHICKEN_TRANS_EDP	_MMIO(0x420cc)
#define _CHICKEN_TRANS_A	0x420c0
#define _CHICKEN_TRANS_B	0x420c4
#define _CHICKEN_TRANS_C	0x420c8
#define _CHICKEN_TRANS_EDP	0x420cc
#define CHICKEN_TRANS(trans)	_MMIO(_PICK((trans), \
					    [TRANSCODER_EDP] = _CHICKEN_TRANS_EDP, \
					    [TRANSCODER_A] = _CHICKEN_TRANS_A, \
					    [TRANSCODER_B] = _CHICKEN_TRANS_B, \
					    [TRANSCODER_C] = _CHICKEN_TRANS_C))
#define  VSC_DATA_SEL_SOFTWARE_CONTROL	(1 << 25) /* GLK and CNL+ */
#define  DDI_TRAINING_OVERRIDE_ENABLE	(1 << 19)
#define  DDI_TRAINING_OVERRIDE_VALUE	(1 << 18)