[Intel-gfx] [PATCH v3] drm/i915/dp: Configure Display stream splitter registers during DSC enable

Srivatsa, Anusha anusha.srivatsa at intel.com
Fri Aug 31 18:52:36 UTC 2018



>-----Original Message-----
>From: Navare, Manasi D
>Sent: Monday, August 6, 2018 12:41 PM
>To: intel-gfx at lists.freedesktop.org
>Cc: Navare, Manasi D <manasi.d.navare at intel.com>; Jani Nikula
><jani.nikula at linux.intel.com>; Ville Syrjala <ville.syrjala at linux.intel.com>;
>Srivatsa, Anusha <anusha.srivatsa at intel.com>
>Subject: [PATCH v3] drm/i915/dp: Configure Display stream splitter registers
>during DSC enable
>
>Display Stream Splitter registers need to be programmed to enable the joiner if
>two DSC engines are used and also to enable the left and the right DSC engines.
>This happens as part of the DSC enabling routine in the source in atomic commit.
>
>v2:
>* Rebase (Manasi)
This is v2 of the patch correct? 
No functional changes since the v1...only rebase. I got confused with the patch prefix.

But the patch itself looks good, assuming this is the latest version:

Reviewed-by: Anusha Srivatsa <anusha.srivatsa at intelcom>

>Cc: Jani Nikula <jani.nikula at linux.intel.com>
>Cc: Ville Syrjala <ville.syrjala at linux.intel.com>
>Cc: Anusha Srivatsa <anusha.srivatsa at intel.com>
>Signed-off-by: Manasi Navare <manasi.d.navare at intel.com>
>---
> drivers/gpu/drm/i915/intel_vdsc.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
>diff --git a/drivers/gpu/drm/i915/intel_vdsc.c
>b/drivers/gpu/drm/i915/intel_vdsc.c
>index 098f9b6..10e38396 100644
>--- a/drivers/gpu/drm/i915/intel_vdsc.c
>+++ b/drivers/gpu/drm/i915/intel_vdsc.c
>@@ -1011,6 +1011,11 @@ void intel_dsc_enable(struct intel_encoder *encoder,
>{
> 	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
> 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>+	struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
>+	enum pipe pipe = crtc->pipe;
>+	i915_reg_t dss_ctl1_reg, dss_ctl2_reg;
>+	u32 dss_ctl1_val = 0;
>+	u32 dss_ctl2_val = 0;
>
> 	if (!crtc_state->dsc_params.compression_enable)
> 		return;
>@@ -1024,5 +1029,21 @@ void intel_dsc_enable(struct intel_encoder *encoder,
>
> 	intel_dp_send_dsc_pps_sdp(encoder, crtc_state);
>
>+	/* Configure DSS_CTL registers for DSC */
>+	if (encoder->type == INTEL_OUTPUT_EDP) {
>+		dss_ctl1_reg = DSS_CTL1;
>+		dss_ctl2_reg = DSS_CTL2;
>+	} else {
>+		dss_ctl1_reg = ICL_PIPE_DSS_CTL1(pipe);
>+		dss_ctl2_reg = ICL_PIPE_DSS_CTL2(pipe);
>+	}
>+	dss_ctl2_val |= LEFT_BRANCH_VDSC_ENABLE;
>+	if (crtc_state->dsc_params.dsc_split) {
>+		dss_ctl2_val |= RIGHT_BRANCH_VDSC_ENABLE;
>+		dss_ctl1_val |= JOINER_ENABLE;
>+	}
>+	I915_WRITE(dss_ctl1_reg, dss_ctl1_val);
>+	I915_WRITE(dss_ctl2_reg, dss_ctl2_val);
>+
> 	return;
> }
>--
>2.7.4



More information about the Intel-gfx mailing list