diff options
author | Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> | 2023-11-18 01:51:48 +0300 |
---|---|---|
committer | Rodrigo Vivi <rodrigo.vivi@intel.com> | 2023-12-21 19:45:06 +0300 |
commit | aae84bf1cd96889a7d80b6b50131f60aa63899d7 (patch) | |
tree | 2d6fdb2646ff60994173c55739c1445d14886866 /drivers/gpu/drm/xe/xe_gt.c | |
parent | dd0e89e5edc20d3875ed7ded48e7e97118cdfbc8 (diff) | |
download | linux-aae84bf1cd96889a7d80b6b50131f60aa63899d7.tar.xz |
drm/xe/gsc: Implement WA 14015076503
When the GSC FW is loaded, we need to inform it when a GSCCS reset is
coming and then wait 200ms for it to get ready to process the reset.
v2: move WA code to GSC file, use variable in Makefile (John)
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: John Harrison <john.c.harrison@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'drivers/gpu/drm/xe/xe_gt.c')
-rw-r--r-- | drivers/gpu/drm/xe/xe_gt.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/xe/xe_gt.c b/drivers/gpu/drm/xe/xe_gt.c index 0dddb751c6a4..00193b02a7e5 100644 --- a/drivers/gpu/drm/xe/xe_gt.c +++ b/drivers/gpu/drm/xe/xe_gt.c @@ -21,6 +21,7 @@ #include "xe_execlist.h" #include "xe_force_wake.h" #include "xe_ggtt.h" +#include "xe_gsc.h" #include "xe_gt_clock.h" #include "xe_gt_idle_sysfs.h" #include "xe_gt_mcr.h" @@ -512,12 +513,16 @@ static int do_gt_reset(struct xe_gt *gt) { int err; + xe_gsc_wa_14015076503(gt, true); + xe_mmio_write32(gt, GDRST, GRDOM_FULL); err = xe_mmio_wait32(gt, GDRST, GRDOM_FULL, 0, 5000, NULL, false); if (err) xe_gt_err(gt, "failed to clear GRDOM_FULL (%pe)\n", ERR_PTR(err)); + xe_gsc_wa_14015076503(gt, false); + return err; } |