Skip to content

Commit c88a073

Browse files
vsbelgaumThomas Hellström
authored andcommitted
drm/xe: Apply Wa_14020316580 in xe_gt_idle_enable_pg()
Wa_14020316580 was getting clobbered by power gating init code later in the driver load sequence. Move the Wa so that it applies correctly. Fixes: 7cd05ef ("drm/xe/xe2hpm: Add initial set of workarounds") Suggested-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com> Reviewed-by: Riana Tauro <riana.tauro@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Link: https://patch.msgid.link/20251129052548.70766-1-vinay.belgaumkar@intel.com Signed-off-by: Matt Roper <matthew.d.roper@intel.com> (cherry picked from commit 8b55021) Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
1 parent b32045d commit c88a073

3 files changed

Lines changed: 9 additions & 8 deletions

File tree

drivers/gpu/drm/xe/xe_gt_idle.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include <drm/drm_managed.h>
77

8+
#include <generated/xe_wa_oob.h>
89
#include "xe_force_wake.h"
910
#include "xe_device.h"
1011
#include "xe_gt.h"
@@ -16,6 +17,7 @@
1617
#include "xe_mmio.h"
1718
#include "xe_pm.h"
1819
#include "xe_sriov.h"
20+
#include "xe_wa.h"
1921

2022
/**
2123
* DOC: Xe GT Idle
@@ -145,6 +147,12 @@ void xe_gt_idle_enable_pg(struct xe_gt *gt)
145147
xe_mmio_write32(mmio, RENDER_POWERGATE_IDLE_HYSTERESIS, 25);
146148
}
147149

150+
if (XE_GT_WA(gt, 14020316580))
151+
gtidle->powergate_enable &= ~(VDN_HCP_POWERGATE_ENABLE(0) |
152+
VDN_MFXVDENC_POWERGATE_ENABLE(0) |
153+
VDN_HCP_POWERGATE_ENABLE(2) |
154+
VDN_MFXVDENC_POWERGATE_ENABLE(2));
155+
148156
xe_mmio_write32(mmio, POWERGATE_ENABLE, gtidle->powergate_enable);
149157
xe_force_wake_put(gt_to_fw(gt), fw_ref);
150158
}

drivers/gpu/drm/xe/xe_wa.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -270,14 +270,6 @@ static const struct xe_rtp_entry_sr gt_was[] = {
270270
XE_RTP_ACTIONS(SET(VDBOX_CGCTL3F1C(0), MFXPIPE_CLKGATE_DIS)),
271271
XE_RTP_ENTRY_FLAG(FOREACH_ENGINE),
272272
},
273-
{ XE_RTP_NAME("14020316580"),
274-
XE_RTP_RULES(MEDIA_VERSION(1301)),
275-
XE_RTP_ACTIONS(CLR(POWERGATE_ENABLE,
276-
VDN_HCP_POWERGATE_ENABLE(0) |
277-
VDN_MFXVDENC_POWERGATE_ENABLE(0) |
278-
VDN_HCP_POWERGATE_ENABLE(2) |
279-
VDN_MFXVDENC_POWERGATE_ENABLE(2))),
280-
},
281273
{ XE_RTP_NAME("14019449301"),
282274
XE_RTP_RULES(MEDIA_VERSION(1301), ENGINE_CLASS(VIDEO_DECODE)),
283275
XE_RTP_ACTIONS(SET(VDBOX_CGCTL3F08(0), CG3DDISHRS_CLKGATE_DIS)),

drivers/gpu/drm/xe/xe_wa_oob.rules

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,4 @@
7676

7777
15015404425_disable PLATFORM(PANTHERLAKE), MEDIA_STEP(B0, FOREVER)
7878
16026007364 MEDIA_VERSION(3000)
79+
14020316580 MEDIA_VERSION(1301)

0 commit comments

Comments
 (0)