Re: [PATCH 6.12.y 7/8] drm/xe/rtp: Refactor OAG MMIO trigger register whitelisting

"Dixit, Ashutosh" <[email protected]> Mon, 03 Aug 2026 16:50:46 -0700
Newsgroups org.kernel.vger.stable
Message-ID <[email protected]>
On Fri, 31 Jul 2026 20:10:49 -0700, Sasha Levin wrote:
>

Hi Sasha,

I have backported this entire series to linux-6.12.y here:

https://lore.kernel.org/stable/[email protected]/

Thanks.
--
Ashutosh

> From: Ashutosh Dixit <[email protected]>
>
> [ Upstream commit ed455775c5a68b75e5f6ad6c8e0e3e9c98fd3f64 ]
>
> Minor refactor of OAG MMIO trigger register whitelisting for code reuse
> with OAM MMIO trigger register whitelisting.
>
> Signed-off-by: Ashutosh Dixit <[email protected]>
> Reviewed-by: Umesh Nerlige Ramappa <[email protected]>
> Link: https://patch.msgid.link/[email protected]
> Stable-dep-of: e70086a3a06d ("drm/xe/rtp: Add RING_FORCE_TO_NONPRIV_DENY to OA whitelists")
> Signed-off-by: Sasha Levin <[email protected]>
> ---
>  drivers/gpu/drm/xe/xe_reg_whitelist.c | 41 +++++++++++++--------------
>  1 file changed, 19 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_reg_whitelist.c b/drivers/gpu/drm/xe/xe_reg_whitelist.c
> index b568686973a8..5914ae2f88f0 100644
> --- a/drivers/gpu/drm/xe/xe_reg_whitelist.c
> +++ b/drivers/gpu/drm/xe/xe_reg_whitelist.c
> @@ -66,28 +66,6 @@ static const struct xe_rtp_entry_sr register_whitelist[] = {
>		       ENGINE_CLASS(RENDER)),
>	  XE_RTP_ACTIONS(WHITELIST(CSBE_DEBUG_STATUS(RENDER_RING_BASE), 0))
>	},
> -	{ XE_RTP_NAME("oa_reg_render"),
> -	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, XE_RTP_END_VERSION_UNDEFINED),
> -		       ENGINE_CLASS(RENDER)),
> -	  XE_RTP_ACTIONS(WHITELIST(OAG_MMIOTRIGGER,
> -				   RING_FORCE_TO_NONPRIV_ACCESS_RW),
> -			 WHITELIST(OAG_OASTATUS,
> -				   RING_FORCE_TO_NONPRIV_ACCESS_RD),
> -			 WHITELIST(OAG_OAHEADPTR,
> -				   RING_FORCE_TO_NONPRIV_ACCESS_RD |
> -				   RING_FORCE_TO_NONPRIV_RANGE_4))
> -	},
> -	{ XE_RTP_NAME("oa_reg_compute"),
> -	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, XE_RTP_END_VERSION_UNDEFINED),
> -		       ENGINE_CLASS(COMPUTE)),
> -	  XE_RTP_ACTIONS(WHITELIST(OAG_MMIOTRIGGER,
> -				   RING_FORCE_TO_NONPRIV_ACCESS_RW),
> -			 WHITELIST(OAG_OASTATUS,
> -				   RING_FORCE_TO_NONPRIV_ACCESS_RD),
> -			 WHITELIST(OAG_OAHEADPTR,
> -				   RING_FORCE_TO_NONPRIV_ACCESS_RD |
> -				   RING_FORCE_TO_NONPRIV_RANGE_4))
> -	},
>	{ XE_RTP_NAME("14024997852"),
>	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(3000, 3005), ENGINE_CLASS(RENDER)),
>	  XE_RTP_ACTIONS(WHITELIST(FF_MODE,
> @@ -95,6 +73,25 @@ static const struct xe_rtp_entry_sr register_whitelist[] = {
>			 WHITELIST(VFLSKPD,
>				   RING_FORCE_TO_NONPRIV_ACCESS_RW))
>	},
> +
> +#define WHITELIST_OA_MMIO_TRG(trg, status, head) \
> +	WHITELIST(trg, RING_FORCE_TO_NONPRIV_ACCESS_RW), \
> +	WHITELIST(status, RING_FORCE_TO_NONPRIV_ACCESS_RD), \
> +	WHITELIST(head, RING_FORCE_TO_NONPRIV_ACCESS_RD | RING_FORCE_TO_NONPRIV_RANGE_4)
> +
> +#define WHITELIST_OAG_MMIO_TRG \
> +	WHITELIST_OA_MMIO_TRG(OAG_MMIOTRIGGER, OAG_OASTATUS, OAG_OAHEADPTR)
> +
> +	{ XE_RTP_NAME("oag_mmio_trg_rcs"),
> +	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, XE_RTP_END_VERSION_UNDEFINED),
> +		       ENGINE_CLASS(RENDER)),
> +	  XE_RTP_ACTIONS(WHITELIST_OAG_MMIO_TRG)
> +	},
> +	{ XE_RTP_NAME("oag_mmio_trg_ccs"),
> +	  XE_RTP_RULES(GRAPHICS_VERSION_RANGE(1200, XE_RTP_END_VERSION_UNDEFINED),
> +		       ENGINE_CLASS(COMPUTE)),
> +	  XE_RTP_ACTIONS(WHITELIST_OAG_MMIO_TRG)
> +	},
>  };
>
>  static void whitelist_apply_to_hwe(struct xe_hw_engine *hwe)
> --
> 2.53.0
>