Commit e67a35bc authored by Harish Chegondi's avatar Harish Chegondi Committed by Ashutosh Dixit
Browse files

drm/xe/eustall: Add workaround 22016596838 which applies to PVC.

parent cd5bbb25
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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"
@@ -642,6 +644,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. */
@@ -793,6 +799,10 @@ static int xe_eu_stall_disable_locked(struct xe_eu_stall_data_stream *stream)

	cancel_delayed_work_sync(&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));

+1 −0
Original line number Diff line number Diff line
@@ -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)