[PATCH 11/11] drm/xe/xe2hpm: Add initial set of workarounds
Matt Roper
matthew.d.roper at intel.com
Tue Apr 2 16:07:06 UTC 2024
On Tue, Apr 02, 2024 at 06:17:24PM +0530, Balasubramani Vivekanandan wrote:
> From: Gustavo Sousa <gustavo.sousa at intel.com>
>
> Define the initial set of workarounds for Xe2_HPM.
>
> Signed-off-by: Gustavo Sousa <gustavo.sousa at intel.com>
> Signed-off-by: Balasubramani Vivekanandan <balasubramani.vivekanandan at intel.com>
Reviewed-by: Matt Roper <matthew.d.roper at intel.com>
> ---
> drivers/gpu/drm/xe/regs/xe_gt_regs.h | 4 ++++
> drivers/gpu/drm/xe/xe_wa.c | 32 ++++++++++++++++++++++++++++
> 2 files changed, 36 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> index 17cc9b6c9536..126baed6a99f 100644
> --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> @@ -279,6 +279,10 @@
> #define FORCEWAKE_GT XE_REG(0xa188)
>
> #define PG_ENABLE XE_REG(0xa210)
> +#define VD2_MFXVDENC_POWERGATE_ENABLE REG_BIT(8)
> +#define VD2_HCP_POWERGATE_ENABLE REG_BIT(7)
> +#define VD0_MFXVDENC_POWERGATE_ENABLE REG_BIT(4)
> +#define VD0_HCP_POWERGATE_ENABLE REG_BIT(3)
>
> #define CTC_MODE XE_REG(0xa26c)
> #define CTC_SHIFT_PARAMETER_MASK REG_GENMASK(2, 1)
> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
> index a163a764d25e..824481cd2247 100644
> --- a/drivers/gpu/drm/xe/xe_wa.c
> +++ b/drivers/gpu/drm/xe/xe_wa.c
> @@ -228,6 +228,28 @@ static const struct xe_rtp_entry_sr gt_was[] = {
> XE_RTP_ENTRY_FLAG(FOREACH_ENGINE),
> },
>
> + /* Xe2_HPM */
> +
> + { XE_RTP_NAME("16021867713"),
> + XE_RTP_RULES(MEDIA_VERSION(1301),
> + ENGINE_CLASS(VIDEO_DECODE)),
> + XE_RTP_ACTIONS(SET(VDBOX_CGCTL3F1C(0), MFXPIPE_CLKGATE_DIS)),
> + XE_RTP_ENTRY_FLAG(FOREACH_ENGINE),
> + },
> + { XE_RTP_NAME("14020316580"),
> + XE_RTP_RULES(MEDIA_VERSION(1301)),
> + XE_RTP_ACTIONS(CLR(PG_ENABLE,
> + VD0_HCP_POWERGATE_ENABLE |
> + VD0_MFXVDENC_POWERGATE_ENABLE |
> + VD2_HCP_POWERGATE_ENABLE |
> + VD2_MFXVDENC_POWERGATE_ENABLE)),
> + },
> + { XE_RTP_NAME("14019449301"),
> + XE_RTP_RULES(MEDIA_VERSION(1301), ENGINE_CLASS(VIDEO_DECODE)),
> + XE_RTP_ACTIONS(SET(VDBOX_CGCTL3F08(0), CG3DDISHRS_CLKGATE_DIS)),
> + XE_RTP_ENTRY_FLAG(FOREACH_ENGINE),
> + },
> +
> {}
> };
>
> @@ -508,6 +530,16 @@ static const struct xe_rtp_entry_sr engine_was[] = {
> XE_RTP_ACTIONS(SET(LSC_CHICKEN_BIT_0, WR_REQ_CHAINING_DIS))
> },
>
> + /* Xe2_HPM */
> +
> + { XE_RTP_NAME("16021639441"),
> + XE_RTP_RULES(MEDIA_VERSION(1301)),
> + XE_RTP_ACTIONS(SET(CSFE_CHICKEN1(0),
> + GHWSP_CSB_REPORT_DIS |
> + PPHWSP_CSB_AND_TIMESTAMP_REPORT_DIS,
> + XE_RTP_ACTION_FLAG(ENGINE_BASE)))
> + },
> +
> {}
> };
>
> --
> 2.25.1
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
More information about the Intel-xe
mailing list