[PATCH v5 03/17] drm/i915/display: Add pipe dmc registers and bits for DC Balance
Nautiyal, Ankit K
ankit.k.nautiyal at intel.com
Fri May 30 06:22:47 UTC 2025
On 5/13/2025 10:46 AM, Mitul Golani wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Add pipe dmc registers and access bits for DC Balance params
> configuration and enablement.
>
> --v2:
> - Separate register definitions for transcoder and
> pipe dmc. (Ankit)
> - Use MMIO pipe macros instead of transcoder ones. (Ankit)
> - Remove dev_priv use. (Jani, Nikula)
>
> --v3:
> - Add all register address, from capital alphabet to small. (Ankit)
> - Add EVT CTL registers.
> - Add co-author tag.
> - Add event flag for Triggering DC Balance.
>
> Co-authored-by: Mitul Golani <mitulkumar.ajitkumar.golani at intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani at intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dmc_regs.h | 52 +++++++++++++++++++
> 1 file changed, 52 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dmc_regs.h b/drivers/gpu/drm/i915/display/intel_dmc_regs.h
> index e16ea3f16ed8..137816cb9e9d 100644
> --- a/drivers/gpu/drm/i915/display/intel_dmc_regs.h
> +++ b/drivers/gpu/drm/i915/display/intel_dmc_regs.h
> @@ -75,6 +75,7 @@
> #define DMC_EVT_CTL_EVENT_ID_MASK REG_GENMASK(15, 8)
> #define DMC_EVT_CTL_EVENT_ID_FALSE 0x01
> #define DMC_EVT_CTL_EVENT_ID_VBLANK_A 0x32 /* main DMC */
> +#define DMC_EVT_CTL_EVENT_ID_ADAPTIVE_DC_BALANCE_TRIGGER 0x3D
> /* An event handler scheduled to run at a 1 kHz frequency. */
> #define DMC_EVT_CTL_EVENT_ID_CLK_MSEC 0xbf
>
> @@ -117,4 +118,55 @@
> #define DMC_WAKELOCK_CTL_REQ REG_BIT(31)
> #define DMC_WAKELOCK_CTL_ACK REG_BIT(15)
>
> +#define _PIPEDMC_DCB_CTL_A 0x5f1a0
> +#define _PIPEDMC_DCB_CTL_B 0x5f5a0
> +#define PIPEDMC_DCB_CTL(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_CTL_A,\
> + _PIPEDMC_DCB_CTL_B)
> +#define PIPEDMC_ADAPTIVE_DCB_ENABLE REG_BIT(31)
> +
> +#define _PIPEDMC_DCB_VBLANK_A 0x5f1bc
> +#define _PIPEDMC_DCB_VBLANK_B 0x5f5bc
> +#define PIPEDMC_DCB_VBLANK(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_VBLANK_A,\
> + _PIPEDMC_DCB_VBLANK_B)
> +
> +#define _PIPEDMC_DCB_SLOPE_A 0x5f1b8
> +#define _PIPEDMC_DCB_SLOPE_B 0x5f5b8
> +#define PIPEDMC_DCB_SLOPE(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_SLOPE_A,\
> + _PIPEDMC_DCB_SLOPE_B)
> +
> +#define _PIPEDMC_DCB_GUARDBAND_A 0x5f1b4
> +#define _PIPEDMC_DCB_GUARDBAND_B 0x5f5b4
> +#define PIPEDMC_DCB_GUARDBAND(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_GUARDBAND_A,\
> + _PIPEDMC_DCB_GUARDBAND_B)
> +
> +#define _PIPEDMC_DCB_MAX_INCREASE_A 0x5f1ac
> +#define _PIPEDMC_DCB_MAX_INCREASE_B 0x5f5ac
> +#define PIPEDMC_DCB_MAX_INCREASE(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_MAX_INCREASE_A,\
> + _PIPEDMC_DCB_MAX_INCREASE_B)
> +
> +#define _PIPEDMC_DCB_MAX_DECREASE_A 0x5f1b0
> +#define _PIPEDMC_DCB_MAX_DECREASE_B 0x5f5b0
> +#define PIPEDMC_DCB_MAX_DECREASE(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_MAX_DECREASE_A,\
> + _PIPEDMC_DCB_MAX_DECREASE_B)
> +
> +#define _PIPEDMC_DCB_VMIN_A 0x5f1a4
> +#define _PIPEDMC_DCB_VMIN_B 0x5f5a4
> +#define PIPEDMC_DCB_VMIN(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_VMIN_A,\
> + _PIPEDMC_DCB_VMIN_B)
> +
> +#define _PIPEDMC_DCB_VMAX_A 0x5f1a8
> +#define _PIPEDMC_DCB_VMAX_B 0x5f5a8
> +#define PIPEDMC_DCB_VMAX(pipe) _MMIO_PIPE((pipe), _PIPEDMC_DCB_VMAX_A,\
> + _PIPEDMC_DCB_VMAX_B)
> +
> +#define _PIPEDMC_DCB_DEBUG_A 0x5f1c0
> +#define _PIPEDMC_DCB_DEBUG_B 0x5f5c0
> +#define PIPEDMC_DCB_DEBUG(pipe) _MMIO_PIPE(pipe, _PIPEDMC_DCB_DEBUG_A,\
> + _PIPEDMC_DCB_DEBUG_B)
> +
> +#define _PIPEDMC_EVT_CTL_3_A 0x5f040
> +#define _PIPEDMC_EVT_CTL_3_B 0x5f440
> +#define PIPEDMC_EVT_CTL_3(pipe) _MMIO_PIPE(pipe, _PIPEDMC_EVT_CTL_3_A,\
> + _PIPEDMC_EVT_CTL_3_B)
> +
> #endif /* __INTEL_DMC_REGS_H__ */
More information about the Intel-xe
mailing list