[PATCH v9 8/8] drm/xe/eustall: Add workaround 22016596838 which applies to PVC.

Dixit, Ashutosh ashutosh.dixit at intel.com
Wed Feb 12 20:01:45 UTC 2025


On Mon, 10 Feb 2025 05:46:49 -0800, Harish Chegondi wrote:
>
> Add PVC workaround 22016596838 that disables EU DOP gating
> during EU stall sampling.
>
> Signed-off-by: Harish Chegondi <harish.chegondi at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_eu_stall.c   | 10 ++++++++++
>  drivers/gpu/drm/xe/xe_wa_oob.rules |  1 +
>  2 files changed, 11 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_eu_stall.c b/drivers/gpu/drm/xe/xe_eu_stall.c
> index 4dce58f60405..6acb87a25f78 100644
> --- a/drivers/gpu/drm/xe/xe_eu_stall.c
> +++ b/drivers/gpu/drm/xe/xe_eu_stall.c
> @@ -9,6 +9,7 @@
>  #include <linux/types.h>
>
>  #include <drm/drm_drv.h>
> +#include <generated/xe_wa_oob.h>
>  #include <uapi/drm/xe_drm.h>
>
>  #include "xe_bo.h"
> @@ -22,6 +23,7 @@
>  #include "xe_observation.h"
>  #include "xe_pm.h"
>  #include "xe_trace.h"
> +#include "xe_wa.h"
>
>  #include "regs/xe_eu_stall_regs.h"
>  #include "regs/xe_gt_regs.h"
> @@ -658,6 +660,10 @@ static int xe_eu_stall_stream_enable(struct xe_eu_stall_data_stream *stream)
>		return -ETIMEDOUT;
>	}
>
> +	if (XE_WA(gt, 22016596838))
> +		xe_gt_mcr_multicast_write(gt, ROW_CHICKEN2,
> +					  _MASKED_BIT_ENABLE(DISABLE_DOP_GATING));
> +
>	for_each_dss_steering(xecore, gt, group, instance) {
>		write_ptr_reg = xe_gt_mcr_unicast_read(gt, XEHPC_EUSTALL_REPORT, group, instance);
>		/* Clear any drop bits set and not cleared in the previous session. */
> @@ -816,6 +822,10 @@ static int xe_eu_stall_disable_locked(struct xe_eu_stall_data_stream *stream)
>	queue_delayed_work(stream->buf_poll_wq, &stream->buf_poll_work, 0);
>	flush_delayed_work(&stream->buf_poll_work);
>
> +	if (XE_WA(gt, 22016596838))
> +		xe_gt_mcr_multicast_write(gt, ROW_CHICKEN2,
> +					  _MASKED_BIT_DISABLE(DISABLE_DOP_GATING));
> +
>	xe_force_wake_put(gt_to_fw(gt), XE_FW_RENDER);
>	xe_pm_runtime_put(gt_to_xe(gt));
>
> diff --git a/drivers/gpu/drm/xe/xe_wa_oob.rules b/drivers/gpu/drm/xe/xe_wa_oob.rules
> index 228436532282..8e2cae7f7135 100644
> --- a/drivers/gpu/drm/xe/xe_wa_oob.rules
> +++ b/drivers/gpu/drm/xe/xe_wa_oob.rules
> @@ -5,6 +5,7 @@
>  22011391025	PLATFORM(DG2)
>  22012727170	SUBPLATFORM(DG2, G11)
>  22012727685	SUBPLATFORM(DG2, G11)
> +22016596838	PLATFORM(PVC)
>  18020744125	PLATFORM(PVC)
>  1509372804	PLATFORM(PVC), GRAPHICS_STEP(A0, C0)
>  1409600907	GRAPHICS_VERSION_RANGE(1200, 1250)

I am assuming:

* 22016596838 is the correct lineage bug number for this
* It is ok to do the enable/disable DOP gating in EU stall enable/disable,
  rather than in say stream_init/stream_close.

With this, this lgtm:

Reviewed-by: Ashutosh Dixit <ashutosh.dixit at intel.com>


More information about the Intel-xe mailing list