[Intel-gfx] [PATCH 7/8] drm/i915/dsc: add the PPS number to the register content macros

Kandpal, Suraj suraj.kandpal at intel.com
Thu Sep 7 05:51:55 UTC 2023


> Subject: [PATCH 7/8] drm/i915/dsc: add the PPS number to the register content
> macros
> 
> Improve clarity by specifying the PPS number in the register content macros. It's
> easier to notice if macros are being used for the wrong register.
> 

LGTM.

Reviewed-by: Suraj Kandpal <suraj.kandpal at intel.com>

> Cc: Suraj Kandpal <suraj.kandpal at intel.com>
> Cc: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
> 
> ---
> 
> Probably easiest to review by applying and using 'git show --word-diff'
> ---
>  drivers/gpu/drm/i915/display/intel_vdsc.c     | 146 ++++++++---------
>  .../gpu/drm/i915/display/intel_vdsc_regs.h    | 152 +++++++++---------
>  2 files changed, 149 insertions(+), 149 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c
> b/drivers/gpu/drm/i915/display/intel_vdsc.c
> index 4855514d7b09..126aff804e33 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> @@ -423,109 +423,109 @@ static void intel_dsc_pps_configure(const struct
> intel_crtc_state *crtc_state)
>  	int vdsc_instances_per_pipe =
> intel_dsc_get_vdsc_per_pipe(crtc_state);
> 
>  	/* PPS 0 */
> -	pps_val = DSC_VER_MAJ | vdsc_cfg->dsc_version_minor <<
> -		DSC_VER_MIN_SHIFT |
> -		vdsc_cfg->bits_per_component << DSC_BPC_SHIFT |
> -		vdsc_cfg->line_buf_depth << DSC_LINE_BUF_DEPTH_SHIFT;
> +	pps_val = DSC_PPS0_VER_MAJ | vdsc_cfg->dsc_version_minor <<
> +		DSC_PPS0_VER_MIN_SHIFT |
> +		vdsc_cfg->bits_per_component << DSC_PPS0_BPC_SHIFT |
> +		vdsc_cfg->line_buf_depth <<
> DSC_PPS0_LINE_BUF_DEPTH_SHIFT;
>  	if (vdsc_cfg->dsc_version_minor == 2) {
> -		pps_val |= DSC_ALT_ICH_SEL;
> +		pps_val |= DSC_PPS0_ALT_ICH_SEL;
>  		if (vdsc_cfg->native_420)
> -			pps_val |= DSC_NATIVE_420_ENABLE;
> +			pps_val |= DSC_PPS0_NATIVE_420_ENABLE;
>  		if (vdsc_cfg->native_422)
> -			pps_val |= DSC_NATIVE_422_ENABLE;
> +			pps_val |= DSC_PPS0_NATIVE_422_ENABLE;
>  	}
>  	if (vdsc_cfg->block_pred_enable)
> -		pps_val |= DSC_BLOCK_PREDICTION;
> +		pps_val |= DSC_PPS0_BLOCK_PREDICTION;
>  	if (vdsc_cfg->convert_rgb)
> -		pps_val |= DSC_COLOR_SPACE_CONVERSION;
> +		pps_val |= DSC_PPS0_COLOR_SPACE_CONVERSION;
>  	if (vdsc_cfg->simple_422)
> -		pps_val |= DSC_422_ENABLE;
> +		pps_val |= DSC_PPS0_422_ENABLE;
>  	if (vdsc_cfg->vbr_enable)
> -		pps_val |= DSC_VBR_ENABLE;
> +		pps_val |= DSC_PPS0_VBR_ENABLE;
>  	drm_dbg_kms(&dev_priv->drm, "PPS0 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 0, pps_val);
> 
>  	/* PPS 1 */
> -	pps_val = DSC_BPP(vdsc_cfg->bits_per_pixel);
> +	pps_val = DSC_PPS1_BPP(vdsc_cfg->bits_per_pixel);
>  	drm_dbg_kms(&dev_priv->drm, "PPS1 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 1, pps_val);
> 
>  	/* PPS 2 */
> -	pps_val = DSC_PIC_HEIGHT(vdsc_cfg->pic_height) |
> -		DSC_PIC_WIDTH(vdsc_cfg->pic_width / num_vdsc_instances);
> +	pps_val = DSC_PPS2_PIC_HEIGHT(vdsc_cfg->pic_height) |
> +		DSC_PPS2_PIC_WIDTH(vdsc_cfg->pic_width /
> num_vdsc_instances);
>  	drm_dbg_kms(&dev_priv->drm, "PPS2 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 2, pps_val);
> 
>  	/* PPS 3 */
> -	pps_val = DSC_SLICE_HEIGHT(vdsc_cfg->slice_height) |
> -		DSC_SLICE_WIDTH(vdsc_cfg->slice_width);
> +	pps_val = DSC_PPS3_SLICE_HEIGHT(vdsc_cfg->slice_height) |
> +		DSC_PPS3_SLICE_WIDTH(vdsc_cfg->slice_width);
>  	drm_dbg_kms(&dev_priv->drm, "PPS3 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 3, pps_val);
> 
>  	/* PPS 4 */
> -	pps_val = DSC_INITIAL_XMIT_DELAY(vdsc_cfg->initial_xmit_delay) |
> -		DSC_INITIAL_DEC_DELAY(vdsc_cfg->initial_dec_delay);
> +	pps_val = DSC_PPS4_INITIAL_XMIT_DELAY(vdsc_cfg-
> >initial_xmit_delay) |
> +		DSC_PPS4_INITIAL_DEC_DELAY(vdsc_cfg->initial_dec_delay);
>  	drm_dbg_kms(&dev_priv->drm, "PPS4 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 4, pps_val);
> 
>  	/* PPS 5 */
> -	pps_val = DSC_SCALE_INC_INT(vdsc_cfg->scale_increment_interval) |
> -		DSC_SCALE_DEC_INT(vdsc_cfg->scale_decrement_interval);
> +	pps_val = DSC_PPS5_SCALE_INC_INT(vdsc_cfg-
> >scale_increment_interval) |
> +		DSC_PPS5_SCALE_DEC_INT(vdsc_cfg-
> >scale_decrement_interval);
>  	drm_dbg_kms(&dev_priv->drm, "PPS5 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 5, pps_val);
> 
>  	/* PPS 6 */
> -	pps_val = DSC_INITIAL_SCALE_VALUE(vdsc_cfg->initial_scale_value) |
> -		DSC_FIRST_LINE_BPG_OFFSET(vdsc_cfg->first_line_bpg_offset)
> |
> -		DSC_FLATNESS_MIN_QP(vdsc_cfg->flatness_min_qp) |
> -		DSC_FLATNESS_MAX_QP(vdsc_cfg->flatness_max_qp);
> +	pps_val = DSC_PPS6_INITIAL_SCALE_VALUE(vdsc_cfg-
> >initial_scale_value) |
> +		DSC_PPS6_FIRST_LINE_BPG_OFFSET(vdsc_cfg-
> >first_line_bpg_offset) |
> +		DSC_PPS6_FLATNESS_MIN_QP(vdsc_cfg->flatness_min_qp) |
> +		DSC_PPS6_FLATNESS_MAX_QP(vdsc_cfg->flatness_max_qp);
>  	drm_dbg_kms(&dev_priv->drm, "PPS6 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 6, pps_val);
> 
>  	/* PPS 7 */
> -	pps_val = DSC_SLICE_BPG_OFFSET(vdsc_cfg->slice_bpg_offset) |
> -		DSC_NFL_BPG_OFFSET(vdsc_cfg->nfl_bpg_offset);
> +	pps_val = DSC_PPS7_SLICE_BPG_OFFSET(vdsc_cfg->slice_bpg_offset) |
> +		DSC_PPS7_NFL_BPG_OFFSET(vdsc_cfg->nfl_bpg_offset);
>  	drm_dbg_kms(&dev_priv->drm, "PPS7 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 7, pps_val);
> 
>  	/* PPS 8 */
> -	pps_val = DSC_FINAL_OFFSET(vdsc_cfg->final_offset) |
> -		DSC_INITIAL_OFFSET(vdsc_cfg->initial_offset);
> +	pps_val = DSC_PPS8_FINAL_OFFSET(vdsc_cfg->final_offset) |
> +		DSC_PPS8_INITIAL_OFFSET(vdsc_cfg->initial_offset);
>  	drm_dbg_kms(&dev_priv->drm, "PPS8 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 8, pps_val);
> 
>  	/* PPS 9 */
> -	pps_val = DSC_RC_MODEL_SIZE(vdsc_cfg->rc_model_size) |
> -		DSC_RC_EDGE_FACTOR(DSC_RC_EDGE_FACTOR_CONST);
> +	pps_val = DSC_PPS9_RC_MODEL_SIZE(vdsc_cfg->rc_model_size) |
> +
> 	DSC_PPS9_RC_EDGE_FACTOR(DSC_RC_EDGE_FACTOR_CONST);
>  	drm_dbg_kms(&dev_priv->drm, "PPS9 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 9, pps_val);
> 
>  	/* PPS 10 */
> -	pps_val = DSC_RC_QUANT_INC_LIMIT0(vdsc_cfg-
> >rc_quant_incr_limit0) |
> -		DSC_RC_QUANT_INC_LIMIT1(vdsc_cfg->rc_quant_incr_limit1)
> |
> -		DSC_RC_TARGET_OFF_HIGH(DSC_RC_TGT_OFFSET_HI_CONST)
> |
> -
> 	DSC_RC_TARGET_OFF_LOW(DSC_RC_TGT_OFFSET_LO_CONST);
> +	pps_val = DSC_PPS10_RC_QUANT_INC_LIMIT0(vdsc_cfg-
> >rc_quant_incr_limit0) |
> +		DSC_PPS10_RC_QUANT_INC_LIMIT1(vdsc_cfg-
> >rc_quant_incr_limit1) |
> +
> 	DSC_PPS10_RC_TARGET_OFF_HIGH(DSC_RC_TGT_OFFSET_HI_CONST)
> |
> +
> 	DSC_PPS10_RC_TARGET_OFF_LOW(DSC_RC_TGT_OFFSET_LO_CONST);
>  	drm_dbg_kms(&dev_priv->drm, "PPS10 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 10, pps_val);
> 
>  	/* PPS 16 */
> -	pps_val = DSC_SLICE_CHUNK_SIZE(vdsc_cfg->slice_chunk_size) |
> -		DSC_SLICE_PER_LINE((vdsc_cfg->pic_width /
> num_vdsc_instances) /
> -				   vdsc_cfg->slice_width) |
> -		DSC_SLICE_ROW_PER_FRAME(vdsc_cfg->pic_height /
> -					vdsc_cfg->slice_height);
> +	pps_val = DSC_PPS16_SLICE_CHUNK_SIZE(vdsc_cfg->slice_chunk_size)
> |
> +		DSC_PPS16_SLICE_PER_LINE((vdsc_cfg->pic_width /
> num_vdsc_instances) /
> +					 vdsc_cfg->slice_width) |
> +		DSC_PPS16_SLICE_ROW_PER_FRAME(vdsc_cfg->pic_height /
> +					      vdsc_cfg->slice_height);
>  	drm_dbg_kms(&dev_priv->drm, "PPS16 = 0x%08x\n", pps_val);
>  	intel_dsc_pps_write(crtc_state, 16, pps_val);
> 
>  	if (DISPLAY_VER(dev_priv) >= 14) {
>  		/* PPS 17 */
> -		pps_val = DSC_SL_BPG_OFFSET(vdsc_cfg-
> >second_line_bpg_offset);
> +		pps_val = DSC_PPS17_SL_BPG_OFFSET(vdsc_cfg-
> >second_line_bpg_offset);
>  		drm_dbg_kms(&dev_priv->drm, "PPS17 = 0x%08x\n", pps_val);
>  		intel_dsc_pps_write(crtc_state, 17, pps_val);
> 
>  		/* PPS 18 */
> -		pps_val = DSC_NSL_BPG_OFFSET(vdsc_cfg->nsl_bpg_offset) |
> -			DSC_SL_OFFSET_ADJ(vdsc_cfg-
> >second_line_offset_adj);
> +		pps_val = DSC_PPS18_NSL_BPG_OFFSET(vdsc_cfg-
> >nsl_bpg_offset) |
> +			DSC_PPS18_SL_OFFSET_ADJ(vdsc_cfg-
> >second_line_offset_adj);
>  		drm_dbg_kms(&dev_priv->drm, "PPS18 = 0x%08x\n", pps_val);
>  		intel_dsc_pps_write(crtc_state, 18, pps_val);
>  	}
> @@ -857,15 +857,15 @@ static void intel_dsc_get_pps_config(struct
> intel_crtc_state *crtc_state)
>  	/* PPS 0 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 0);
> 
> -	vdsc_cfg->bits_per_component = (pps_temp & DSC_BPC_MASK) >>
> DSC_BPC_SHIFT;
> +	vdsc_cfg->bits_per_component = (pps_temp & DSC_PPS0_BPC_MASK)
> >>
> +DSC_PPS0_BPC_SHIFT;
>  	vdsc_cfg->line_buf_depth =
> -		(pps_temp & DSC_LINE_BUF_DEPTH_MASK) >>
> DSC_LINE_BUF_DEPTH_SHIFT;
> -	vdsc_cfg->block_pred_enable = pps_temp & DSC_BLOCK_PREDICTION;
> -	vdsc_cfg->convert_rgb = pps_temp &
> DSC_COLOR_SPACE_CONVERSION;
> -	vdsc_cfg->simple_422 = pps_temp & DSC_422_ENABLE;
> -	vdsc_cfg->native_422 = pps_temp & DSC_NATIVE_422_ENABLE;
> -	vdsc_cfg->native_420 = pps_temp & DSC_NATIVE_420_ENABLE;
> -	vdsc_cfg->vbr_enable = pps_temp & DSC_VBR_ENABLE;
> +		(pps_temp & DSC_PPS0_LINE_BUF_DEPTH_MASK) >>
> DSC_PPS0_LINE_BUF_DEPTH_SHIFT;
> +	vdsc_cfg->block_pred_enable = pps_temp &
> DSC_PPS0_BLOCK_PREDICTION;
> +	vdsc_cfg->convert_rgb = pps_temp &
> DSC_PPS0_COLOR_SPACE_CONVERSION;
> +	vdsc_cfg->simple_422 = pps_temp & DSC_PPS0_422_ENABLE;
> +	vdsc_cfg->native_422 = pps_temp & DSC_PPS0_NATIVE_422_ENABLE;
> +	vdsc_cfg->native_420 = pps_temp & DSC_PPS0_NATIVE_420_ENABLE;
> +	vdsc_cfg->vbr_enable = pps_temp & DSC_PPS0_VBR_ENABLE;
> 
>  	/* PPS 1 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 1); @@ -880,74
> +880,74 @@ static void intel_dsc_get_pps_config(struct intel_crtc_state
> *crtc_state)
>  	/* PPS 2 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 2);
> 
> -	vdsc_cfg->pic_width = REG_FIELD_GET(DSC_PIC_WIDTH_MASK,
> pps_temp) / num_vdsc_instances;
> -	vdsc_cfg->pic_height = REG_FIELD_GET(DSC_PIC_HEIGHT_MASK,
> pps_temp);
> +	vdsc_cfg->pic_width = REG_FIELD_GET(DSC_PPS2_PIC_WIDTH_MASK,
> pps_temp) / num_vdsc_instances;
> +	vdsc_cfg->pic_height = REG_FIELD_GET(DSC_PPS2_PIC_HEIGHT_MASK,
> +pps_temp);
> 
>  	/* PPS 3 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 3);
> 
> -	vdsc_cfg->slice_width = REG_FIELD_GET(DSC_SLICE_WIDTH_MASK,
> pps_temp);
> -	vdsc_cfg->slice_height = REG_FIELD_GET(DSC_SLICE_HEIGHT_MASK,
> pps_temp);
> +	vdsc_cfg->slice_width =
> REG_FIELD_GET(DSC_PPS3_SLICE_WIDTH_MASK, pps_temp);
> +	vdsc_cfg->slice_height =
> REG_FIELD_GET(DSC_PPS3_SLICE_HEIGHT_MASK,
> +pps_temp);
> 
>  	/* PPS 4 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 4);
> 
> -	vdsc_cfg->initial_dec_delay =
> REG_FIELD_GET(DSC_INITIAL_DEC_DELAY_MASK, pps_temp);
> -	vdsc_cfg->initial_xmit_delay =
> REG_FIELD_GET(DSC_INITIAL_XMIT_DELAY_MASK, pps_temp);
> +	vdsc_cfg->initial_dec_delay =
> REG_FIELD_GET(DSC_PPS4_INITIAL_DEC_DELAY_MASK, pps_temp);
> +	vdsc_cfg->initial_xmit_delay =
> +REG_FIELD_GET(DSC_PPS4_INITIAL_XMIT_DELAY_MASK, pps_temp);
> 
>  	/* PPS 5 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 5);
> 
> -	vdsc_cfg->scale_decrement_interval =
> REG_FIELD_GET(DSC_SCALE_DEC_INT_MASK, pps_temp);
> -	vdsc_cfg->scale_increment_interval =
> REG_FIELD_GET(DSC_SCALE_INC_INT_MASK, pps_temp);
> +	vdsc_cfg->scale_decrement_interval =
> REG_FIELD_GET(DSC_PPS5_SCALE_DEC_INT_MASK, pps_temp);
> +	vdsc_cfg->scale_increment_interval =
> +REG_FIELD_GET(DSC_PPS5_SCALE_INC_INT_MASK, pps_temp);
> 
>  	/* PPS 6 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 6);
> 
> -	vdsc_cfg->initial_scale_value =
> REG_FIELD_GET(DSC_INITIAL_SCALE_VALUE_MASK, pps_temp);
> -	vdsc_cfg->first_line_bpg_offset =
> REG_FIELD_GET(DSC_FIRST_LINE_BPG_OFFSET_MASK, pps_temp);
> -	vdsc_cfg->flatness_min_qp =
> REG_FIELD_GET(DSC_FLATNESS_MIN_QP_MASK, pps_temp);
> -	vdsc_cfg->flatness_max_qp =
> REG_FIELD_GET(DSC_FLATNESS_MAX_QP_MASK, pps_temp);
> +	vdsc_cfg->initial_scale_value =
> REG_FIELD_GET(DSC_PPS6_INITIAL_SCALE_VALUE_MASK, pps_temp);
> +	vdsc_cfg->first_line_bpg_offset =
> REG_FIELD_GET(DSC_PPS6_FIRST_LINE_BPG_OFFSET_MASK, pps_temp);
> +	vdsc_cfg->flatness_min_qp =
> REG_FIELD_GET(DSC_PPS6_FLATNESS_MIN_QP_MASK, pps_temp);
> +	vdsc_cfg->flatness_max_qp =
> +REG_FIELD_GET(DSC_PPS6_FLATNESS_MAX_QP_MASK, pps_temp);
> 
>  	/* PPS 7 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 7);
> 
> -	vdsc_cfg->nfl_bpg_offset =
> REG_FIELD_GET(DSC_NFL_BPG_OFFSET_MASK, pps_temp);
> -	vdsc_cfg->slice_bpg_offset =
> REG_FIELD_GET(DSC_SLICE_BPG_OFFSET_MASK, pps_temp);
> +	vdsc_cfg->nfl_bpg_offset =
> REG_FIELD_GET(DSC_PPS7_NFL_BPG_OFFSET_MASK, pps_temp);
> +	vdsc_cfg->slice_bpg_offset =
> +REG_FIELD_GET(DSC_PPS7_SLICE_BPG_OFFSET_MASK, pps_temp);
> 
>  	/* PPS 8 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 8);
> 
> -	vdsc_cfg->initial_offset = REG_FIELD_GET(DSC_INITIAL_OFFSET_MASK,
> pps_temp);
> -	vdsc_cfg->final_offset = REG_FIELD_GET(DSC_FINAL_OFFSET_MASK,
> pps_temp);
> +	vdsc_cfg->initial_offset =
> REG_FIELD_GET(DSC_PPS8_INITIAL_OFFSET_MASK, pps_temp);
> +	vdsc_cfg->final_offset =
> REG_FIELD_GET(DSC_PPS8_FINAL_OFFSET_MASK,
> +pps_temp);
> 
>  	/* PPS 9 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 9);
> 
> -	vdsc_cfg->rc_model_size =
> REG_FIELD_GET(DSC_RC_MODEL_SIZE_MASK, pps_temp);
> +	vdsc_cfg->rc_model_size =
> REG_FIELD_GET(DSC_PPS9_RC_MODEL_SIZE_MASK,
> +pps_temp);
> 
>  	/* PPS 10 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 10);
> 
> -	vdsc_cfg->rc_quant_incr_limit0 =
> REG_FIELD_GET(DSC_RC_QUANT_INC_LIMIT0_MASK, pps_temp);
> -	vdsc_cfg->rc_quant_incr_limit1 =
> REG_FIELD_GET(DSC_RC_QUANT_INC_LIMIT1_MASK, pps_temp);
> +	vdsc_cfg->rc_quant_incr_limit0 =
> REG_FIELD_GET(DSC_PPS10_RC_QUANT_INC_LIMIT0_MASK, pps_temp);
> +	vdsc_cfg->rc_quant_incr_limit1 =
> +REG_FIELD_GET(DSC_PPS10_RC_QUANT_INC_LIMIT1_MASK, pps_temp);
> 
>  	/* PPS 16 */
>  	pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 16);
> 
> -	vdsc_cfg->slice_chunk_size =
> REG_FIELD_GET(DSC_SLICE_CHUNK_SIZE_MASK, pps_temp);
> +	vdsc_cfg->slice_chunk_size =
> +REG_FIELD_GET(DSC_PPS16_SLICE_CHUNK_SIZE_MASK, pps_temp);
> 
>  	if (DISPLAY_VER(i915) >= 14) {
>  		/* PPS 17 */
>  		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 17);
> 
> -		vdsc_cfg->second_line_bpg_offset =
> REG_FIELD_GET(DSC_SL_BPG_OFFSET_MASK, pps_temp);
> +		vdsc_cfg->second_line_bpg_offset =
> +REG_FIELD_GET(DSC_PPS17_SL_BPG_OFFSET_MASK, pps_temp);
> 
>  		/* PPS 18 */
>  		pps_temp = intel_dsc_pps_read_and_verify(crtc_state, 18);
> 
> -		vdsc_cfg->nsl_bpg_offset =
> REG_FIELD_GET(DSC_NSL_BPG_OFFSET_MASK, pps_temp);
> -		vdsc_cfg->second_line_offset_adj =
> REG_FIELD_GET(DSC_SL_OFFSET_ADJ_MASK, pps_temp);
> +		vdsc_cfg->nsl_bpg_offset =
> REG_FIELD_GET(DSC_PPS18_NSL_BPG_OFFSET_MASK, pps_temp);
> +		vdsc_cfg->second_line_offset_adj =
> +REG_FIELD_GET(DSC_PPS18_SL_OFFSET_ADJ_MASK, pps_temp);
>  	}
>  }
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc_regs.h
> b/drivers/gpu/drm/i915/display/intel_vdsc_regs.h
> index 58d282dcfc6f..92782de2b309 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc_regs.h
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc_regs.h
> @@ -73,115 +73,115 @@
>  #define  ICL_DSC1_PPS(pipe, pps)
> 	_MMIO(_ICL_DSC1_PPS_0(pipe) + ((pps) * 4))
> 
>  /* PPS 0 */
> -#define  DSC_NATIVE_422_ENABLE		BIT(23)
> -#define  DSC_NATIVE_420_ENABLE		BIT(22)
> -#define  DSC_ALT_ICH_SEL		(1 << 20)
> -#define  DSC_VBR_ENABLE			(1 << 19)
> -#define  DSC_422_ENABLE			(1 << 18)
> -#define  DSC_COLOR_SPACE_CONVERSION	(1 << 17)
> -#define  DSC_BLOCK_PREDICTION		(1 << 16)
> -#define  DSC_LINE_BUF_DEPTH_SHIFT	12
> -#define  DSC_LINE_BUF_DEPTH_MASK	REG_GENMASK(15, 12)
> -#define  DSC_BPC_SHIFT			8
> -#define  DSC_BPC_MASK			REG_GENMASK(11, 8)
> -#define  DSC_VER_MIN_SHIFT		4
> -#define  DSC_VER_MAJ			(0x1 << 0)
> +#define   DSC_PPS0_NATIVE_422_ENABLE		BIT(23)
> +#define   DSC_PPS0_NATIVE_420_ENABLE		BIT(22)
> +#define   DSC_PPS0_ALT_ICH_SEL			(1 << 20)
> +#define   DSC_PPS0_VBR_ENABLE			(1 << 19)
> +#define   DSC_PPS0_422_ENABLE			(1 << 18)
> +#define   DSC_PPS0_COLOR_SPACE_CONVERSION	(1 << 17)
> +#define   DSC_PPS0_BLOCK_PREDICTION		(1 << 16)
> +#define   DSC_PPS0_LINE_BUF_DEPTH_SHIFT		12
> +#define   DSC_PPS0_LINE_BUF_DEPTH_MASK		REG_GENMASK(15,
> 12)
> +#define   DSC_PPS0_BPC_SHIFT			8
> +#define   DSC_PPS0_BPC_MASK			REG_GENMASK(11, 8)
> +#define   DSC_PPS0_VER_MIN_SHIFT		4
> +#define   DSC_PPS0_VER_MAJ			(0x1 << 0)
> 
>  /* PPS 1 */
> -#define  DSC_BPP(bpp)				((bpp) << 0)
> +#define   DSC_PPS1_BPP(bpp)			((bpp) << 0)
> 
>  /* PPS 2 */
> -#define  DSC_PIC_WIDTH_MASK		REG_GENMASK(31, 16)
> -#define  DSC_PIC_HEIGHT_MASK		REG_GENMASK(15, 0)
> -#define  DSC_PIC_WIDTH(pic_width)
> 	REG_FIELD_PREP(DSC_PIC_WIDTH_MASK, pic_width)
> -#define  DSC_PIC_HEIGHT(pic_height)
> 	REG_FIELD_PREP(DSC_PIC_HEIGHT_MASK, pic_height)
> +#define   DSC_PPS2_PIC_WIDTH_MASK		REG_GENMASK(31, 16)
> +#define   DSC_PPS2_PIC_HEIGHT_MASK		REG_GENMASK(15, 0)
> +#define   DSC_PPS2_PIC_WIDTH(pic_width)
> 	REG_FIELD_PREP(DSC_PPS2_PIC_WIDTH_MASK, pic_width)
> +#define   DSC_PPS2_PIC_HEIGHT(pic_height)
> 	REG_FIELD_PREP(DSC_PPS2_PIC_HEIGHT_MASK, pic_height)
> 
>  /* PPS 3 */
> -#define  DSC_SLICE_WIDTH_MASK			REG_GENMASK(31,
> 16)
> -#define  DSC_SLICE_HEIGHT_MASK			REG_GENMASK(15, 0)
> -#define  DSC_SLICE_WIDTH(slice_width)
> 	REG_FIELD_PREP(DSC_SLICE_WIDTH_MASK, slice_width)
> -#define  DSC_SLICE_HEIGHT(slice_height)
> 	REG_FIELD_PREP(DSC_SLICE_HEIGHT_MASK, slice_height)
> +#define   DSC_PPS3_SLICE_WIDTH_MASK		REG_GENMASK(31,
> 16)
> +#define   DSC_PPS3_SLICE_HEIGHT_MASK		REG_GENMASK(15, 0)
> +#define   DSC_PPS3_SLICE_WIDTH(slice_width)
> 	REG_FIELD_PREP(DSC_PPS3_SLICE_WIDTH_MASK, slice_width)
> +#define   DSC_PPS3_SLICE_HEIGHT(slice_height)
> 	REG_FIELD_PREP(DSC_PPS3_SLICE_HEIGHT_MASK, slice_height)
> 
>  /* PPS 4 */
> -#define  DSC_INITIAL_DEC_DELAY_MASK		REG_GENMASK(31,
> 16)
> -#define  DSC_INITIAL_XMIT_DELAY_MASK		REG_GENMASK(9, 0)
> -#define  DSC_INITIAL_DEC_DELAY(dec_delay)
> REG_FIELD_PREP(DSC_INITIAL_DEC_DELAY_MASK, \
> +#define   DSC_PPS4_INITIAL_DEC_DELAY_MASK	REG_GENMASK(31,
> 16)
> +#define   DSC_PPS4_INITIAL_XMIT_DELAY_MASK	REG_GENMASK(9, 0)
> +#define   DSC_PPS4_INITIAL_DEC_DELAY(dec_delay)
> 	REG_FIELD_PREP(DSC_PPS4_INITIAL_DEC_DELAY_MASK, \
>  							       dec_delay)
> -#define  DSC_INITIAL_XMIT_DELAY(xmit_delay)
> REG_FIELD_PREP(DSC_INITIAL_XMIT_DELAY_MASK, \
> -							       xmit_delay)
> +#define   DSC_PPS4_INITIAL_XMIT_DELAY(xmit_delay)
> 	REG_FIELD_PREP(DSC_PPS4_INITIAL_XMIT_DELAY_MASK, \
> +
> xmit_delay)
> 
>  /* PPS 5 */
> -#define  DSC_SCALE_DEC_INT_MASK			REG_GENMASK(27,
> 16)
> -#define  DSC_SCALE_INC_INT_MASK			REG_GENMASK(15, 0)
> -#define  DSC_SCALE_DEC_INT(scale_dec)
> 	REG_FIELD_PREP(DSC_SCALE_DEC_INT_MASK, scale_dec)
> -#define  DSC_SCALE_INC_INT(scale_inc)
> 	REG_FIELD_PREP(DSC_SCALE_INC_INT_MASK, scale_inc)
> +#define   DSC_PPS5_SCALE_DEC_INT_MASK		REG_GENMASK(27,
> 16)
> +#define   DSC_PPS5_SCALE_INC_INT_MASK		REG_GENMASK(15, 0)
> +#define   DSC_PPS5_SCALE_DEC_INT(scale_dec)
> 	REG_FIELD_PREP(DSC_PPS5_SCALE_DEC_INT_MASK, scale_dec)
> +#define   DSC_PPS5_SCALE_INC_INT(scale_inc)
> 	REG_FIELD_PREP(DSC_PPS5_SCALE_INC_INT_MASK, scale_inc)
> 
>  /* PPS 6 */
> -#define  DSC_FLATNESS_MAX_QP_MASK		REG_GENMASK(28,
> 24)
> -#define  DSC_FLATNESS_MIN_QP_MASK		REG_GENMASK(20,
> 16)
> -#define  DSC_FIRST_LINE_BPG_OFFSET_MASK		REG_GENMASK(12, 8)
> -#define  DSC_INITIAL_SCALE_VALUE_MASK		REG_GENMASK(5, 0)
> -#define  DSC_FLATNESS_MAX_QP(max_qp)
> 	REG_FIELD_PREP(DSC_FLATNESS_MAX_QP_MASK, max_qp)
> -#define  DSC_FLATNESS_MIN_QP(min_qp)
> 	REG_FIELD_PREP(DSC_FLATNESS_MIN_QP_MASK, min_qp)
> -#define  DSC_FIRST_LINE_BPG_OFFSET(offset)
> 	REG_FIELD_PREP(DSC_FIRST_LINE_BPG_OFFSET_MASK, \
> -							       offset)
> -#define  DSC_INITIAL_SCALE_VALUE(value)
> 	REG_FIELD_PREP(DSC_INITIAL_SCALE_VALUE_MASK, \
> +#define   DSC_PPS6_FLATNESS_MAX_QP_MASK
> 	REG_GENMASK(28, 24)
> +#define   DSC_PPS6_FLATNESS_MIN_QP_MASK		REG_GENMASK(20,
> 16)
> +#define   DSC_PPS6_FIRST_LINE_BPG_OFFSET_MASK	REG_GENMASK(12, 8)
> +#define   DSC_PPS6_INITIAL_SCALE_VALUE_MASK	REG_GENMASK(5, 0)
> +#define   DSC_PPS6_FLATNESS_MAX_QP(max_qp)
> 	REG_FIELD_PREP(DSC_PPS6_FLATNESS_MAX_QP_MASK, max_qp)
> +#define   DSC_PPS6_FLATNESS_MIN_QP(min_qp)
> 	REG_FIELD_PREP(DSC_PPS6_FLATNESS_MIN_QP_MASK, min_qp)
> +#define   DSC_PPS6_FIRST_LINE_BPG_OFFSET(offset)
> 	REG_FIELD_PREP(DSC_PPS6_FIRST_LINE_BPG_OFFSET_MASK, \
> +								       offset)
> +#define   DSC_PPS6_INITIAL_SCALE_VALUE(value)
> 	REG_FIELD_PREP(DSC_PPS6_INITIAL_SCALE_VALUE_MASK, \
>  							       value)
> 
>  /* PPS 7 */
> -#define  DSC_NFL_BPG_OFFSET_MASK		REG_GENMASK(31, 16)
> -#define  DSC_SLICE_BPG_OFFSET_MASK		REG_GENMASK(15, 0)
> -#define  DSC_NFL_BPG_OFFSET(bpg_offset)
> 	REG_FIELD_PREP(DSC_NFL_BPG_OFFSET_MASK, bpg_offset)
> -#define  DSC_SLICE_BPG_OFFSET(bpg_offset)
> 	REG_FIELD_PREP(DSC_SLICE_BPG_OFFSET_MASK, \
> +#define   DSC_PPS7_NFL_BPG_OFFSET_MASK		REG_GENMASK(31,
> 16)
> +#define   DSC_PPS7_SLICE_BPG_OFFSET_MASK	REG_GENMASK(15, 0)
> +#define   DSC_PPS7_NFL_BPG_OFFSET(bpg_offset)
> 	REG_FIELD_PREP(DSC_PPS7_NFL_BPG_OFFSET_MASK, bpg_offset)
> +#define   DSC_PPS7_SLICE_BPG_OFFSET(bpg_offset)
> 	REG_FIELD_PREP(DSC_PPS7_SLICE_BPG_OFFSET_MASK, \
>  							       bpg_offset)
>  /* PPS 8 */
> -#define  DSC_INITIAL_OFFSET_MASK		REG_GENMASK(31, 16)
> -#define  DSC_FINAL_OFFSET_MASK			REG_GENMASK(15, 0)
> -#define  DSC_INITIAL_OFFSET(initial_offset)
> 	REG_FIELD_PREP(DSC_INITIAL_OFFSET_MASK, \
> -							       initial_offset)
> -#define  DSC_FINAL_OFFSET(final_offset)
> 	REG_FIELD_PREP(DSC_FINAL_OFFSET_MASK, \
> +#define   DSC_PPS8_INITIAL_OFFSET_MASK		REG_GENMASK(31,
> 16)
> +#define   DSC_PPS8_FINAL_OFFSET_MASK		REG_GENMASK(15, 0)
> +#define   DSC_PPS8_INITIAL_OFFSET(initial_offset)
> 	REG_FIELD_PREP(DSC_PPS8_INITIAL_OFFSET_MASK, \
> +
> initial_offset)
> +#define   DSC_PPS8_FINAL_OFFSET(final_offset)
> 	REG_FIELD_PREP(DSC_PPS8_FINAL_OFFSET_MASK, \
>  							       final_offset)
> 
>  /* PPS 9 */
> -#define  DSC_RC_EDGE_FACTOR_MASK		REG_GENMASK(19,
> 16)
> -#define  DSC_RC_MODEL_SIZE_MASK			REG_GENMASK(15, 0)
> -#define  DSC_RC_EDGE_FACTOR(rc_edge_fact)
> 	REG_FIELD_PREP(DSC_RC_EDGE_FACTOR_MASK, \
> +#define   DSC_PPS9_RC_EDGE_FACTOR_MASK		REG_GENMASK(19,
> 16)
> +#define   DSC_PPS9_RC_MODEL_SIZE_MASK		REG_GENMASK(15, 0)
> +#define   DSC_PPS9_RC_EDGE_FACTOR(rc_edge_fact)
> 	REG_FIELD_PREP(DSC_PPS9_RC_EDGE_FACTOR_MASK, \
>  							       rc_edge_fact)
> -#define  DSC_RC_MODEL_SIZE(rc_model_size)
> 	REG_FIELD_PREP(DSC_RC_MODEL_SIZE_MASK, \
> +#define   DSC_PPS9_RC_MODEL_SIZE(rc_model_size)
> 	REG_FIELD_PREP(DSC_PPS9_RC_MODEL_SIZE_MASK, \
>  							       rc_model_size)
> 
>  /* PPS 10 */
> -#define  DSC_RC_TGT_OFF_LOW_MASK
> 	REG_GENMASK(23, 20)
> -#define  DSC_RC_TGT_OFF_HIGH_MASK
> 	REG_GENMASK(19, 16)
> -#define  DSC_RC_QUANT_INC_LIMIT1_MASK
> 	REG_GENMASK(12, 8)
> -#define  DSC_RC_QUANT_INC_LIMIT0_MASK
> 	REG_GENMASK(4, 0)
> -#define  DSC_RC_TARGET_OFF_LOW(rc_tgt_off_low)
> 	REG_FIELD_PREP(DSC_RC_TGT_OFF_LOW_MASK, \
> +#define   DSC_PPS10_RC_TGT_OFF_LOW_MASK
> 	REG_GENMASK(23, 20)
> +#define   DSC_PPS10_RC_TGT_OFF_HIGH_MASK	REG_GENMASK(19,
> 16)
> +#define   DSC_PPS10_RC_QUANT_INC_LIMIT1_MASK	REG_GENMASK(12, 8)
> +#define   DSC_PPS10_RC_QUANT_INC_LIMIT0_MASK	REG_GENMASK(4, 0)
> +#define   DSC_PPS10_RC_TARGET_OFF_LOW(rc_tgt_off_low)
> 	REG_FIELD_PREP(DSC_PPS10_RC_TGT_OFF_LOW_MASK, \
> 
> rc_tgt_off_low)
> -#define  DSC_RC_TARGET_OFF_HIGH(rc_tgt_off_high)
> 	REG_FIELD_PREP(DSC_RC_TGT_OFF_HIGH_MASK, \
> +#define   DSC_PPS10_RC_TARGET_OFF_HIGH(rc_tgt_off_high)
> 	REG_FIELD_PREP(DSC_PPS10_RC_TGT_OFF_HIGH_MASK, \
> 
> rc_tgt_off_high)
> -#define  DSC_RC_QUANT_INC_LIMIT1(lim)
> 	REG_FIELD_PREP(DSC_RC_QUANT_INC_LIMIT1_MASK, lim)
> -#define  DSC_RC_QUANT_INC_LIMIT0(lim)
> 	REG_FIELD_PREP(DSC_RC_QUANT_INC_LIMIT0_MASK, lim)
> +#define   DSC_PPS10_RC_QUANT_INC_LIMIT1(lim)
> 	REG_FIELD_PREP(DSC_PPS10_RC_QUANT_INC_LIMIT1_MASK, lim)
> +#define   DSC_PPS10_RC_QUANT_INC_LIMIT0(lim)
> 	REG_FIELD_PREP(DSC_PPS10_RC_QUANT_INC_LIMIT0_MASK, lim)
> 
>  /* PPS 16 */
> -#define  DSC_SLICE_ROW_PR_FRME_MASK
> 	REG_GENMASK(31, 20)
> -#define  DSC_SLICE_PER_LINE_MASK			REG_GENMASK(18,
> 16)
> -#define  DSC_SLICE_CHUNK_SIZE_MASK
> 	REG_GENMASK(15, 0)
> -#define  DSC_SLICE_ROW_PER_FRAME(slice_row_per_frame)
> 	REG_FIELD_PREP(DSC_SLICE_ROW_PR_FRME_MASK, \
> -
> slice_row_per_frame)
> -#define  DSC_SLICE_PER_LINE(slice_per_line)
> 	REG_FIELD_PREP(DSC_SLICE_PER_LINE_MASK, \
> -
> slice_per_line)
> -#define  DSC_SLICE_CHUNK_SIZE(slice_chunk_size)
> 	REG_FIELD_PREP(DSC_SLICE_CHUNK_SIZE_MASK, \
> -
> slice_chunk_size)
> +#define   DSC_PPS16_SLICE_ROW_PR_FRME_MASK	REG_GENMASK(31,
> 20)
> +#define   DSC_PPS16_SLICE_PER_LINE_MASK		REG_GENMASK(18,
> 16)
> +#define   DSC_PPS16_SLICE_CHUNK_SIZE_MASK	REG_GENMASK(15, 0)
> +#define   DSC_PPS16_SLICE_ROW_PER_FRAME(slice_row_per_frame)
> 	REG_FIELD_PREP(DSC_PPS16_SLICE_ROW_PR_FRME_MASK, \
> +
> slice_row_per_frame)
> +#define   DSC_PPS16_SLICE_PER_LINE(slice_per_line)
> 	REG_FIELD_PREP(DSC_PPS16_SLICE_PER_LINE_MASK, \
> +
> slice_per_line)
> +#define   DSC_PPS16_SLICE_CHUNK_SIZE(slice_chunk_size)
> 	REG_FIELD_PREP(DSC_PPS16_SLICE_CHUNK_SIZE_MASK, \
> +
> slice_chunk_size)
> 
>  /* PPS 17 (MTL+) */
> -#define DSC_SL_BPG_OFFSET_MASK			REG_GENMASK(31,
> 27)
> -#define DSC_SL_BPG_OFFSET(offset)
> 	REG_FIELD_PREP(DSC_SL_BPG_OFFSET_MASK, offset)
> +#define   DSC_PPS17_SL_BPG_OFFSET_MASK		REG_GENMASK(31,
> 27)
> +#define   DSC_PPS17_SL_BPG_OFFSET(offset)
> 	REG_FIELD_PREP(DSC_PPS17_SL_BPG_OFFSET_MASK, offset)
> 
>  /* PPS 18 (MTL+) */
> -#define DSC_NSL_BPG_OFFSET_MASK			REG_GENMASK(31,
> 16)
> -#define DSC_SL_OFFSET_ADJ_MASK			REG_GENMASK(15, 0)
> -#define DSC_NSL_BPG_OFFSET(offset)
> 	REG_FIELD_PREP(DSC_NSL_BPG_OFFSET_MASK, offset)
> -#define DSC_SL_OFFSET_ADJ(offset)
> 	REG_FIELD_PREP(DSC_SL_OFFSET_ADJ_MASK, offset)
> +#define   DSC_PPS18_NSL_BPG_OFFSET_MASK		REG_GENMASK(31,
> 16)
> +#define   DSC_PPS18_SL_OFFSET_ADJ_MASK		REG_GENMASK(15, 0)
> +#define   DSC_PPS18_NSL_BPG_OFFSET(offset)
> 	REG_FIELD_PREP(DSC_PPS18_NSL_BPG_OFFSET_MASK, offset)
> +#define   DSC_PPS18_SL_OFFSET_ADJ(offset)
> 	REG_FIELD_PREP(DSC_PPS18_SL_OFFSET_ADJ_MASK, offset)
> 
>  /* Icelake Rate Control Buffer Threshold Registers */
>  #define DSCA_RC_BUF_THRESH_0			_MMIO(0x6B230)
> --
> 2.39.2



More information about the Intel-gfx mailing list