From: Riana Tauro Date: Tue, 28 Jan 2025 09:56:32 +0000 (+0530) Subject: drm/xe: Initialize mei-gsc and vsec in survivability mode X-Git-Tag: v6.15-rc1~120^2~15^2~75 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b47c9cdb6a78364fe68f8af0abfd6f265577001;p=thirdparty%2Fkernel%2Fstable.git drm/xe: Initialize mei-gsc and vsec in survivability mode Initialize mei-gsc in survivability mode and disable HECI interrupts. Also initialize vsec in survivability mode Signed-off-by: Riana Tauro Reviewed-by: Rodrigo Vivi Reviewed-by: Alexander Usyskin Link: https://patchwork.freedesktop.org/patch/msgid/20250128095632.1294722-4-riana.tauro@intel.com Signed-off-by: Rodrigo Vivi --- diff --git a/drivers/gpu/drm/xe/xe_heci_gsc.c b/drivers/gpu/drm/xe/xe_heci_gsc.c index d765bfd3636b4..06dc78d3a8123 100644 --- a/drivers/gpu/drm/xe/xe_heci_gsc.c +++ b/drivers/gpu/drm/xe/xe_heci_gsc.c @@ -12,6 +12,7 @@ #include "xe_drv.h" #include "xe_heci_gsc.h" #include "xe_platform_types.h" +#include "xe_survivability_mode.h" #define GSC_BAR_LENGTH 0x00000FFC @@ -200,7 +201,7 @@ void xe_heci_gsc_init(struct xe_device *xe) return; } - if (!def->use_polling) { + if (!def->use_polling && !xe_survivability_mode_enabled(xe)) { ret = heci_gsc_irq_setup(xe); if (ret) goto fail; diff --git a/drivers/gpu/drm/xe/xe_survivability_mode.c b/drivers/gpu/drm/xe/xe_survivability_mode.c index 633f5effa3492..c619560af74f0 100644 --- a/drivers/gpu/drm/xe/xe_survivability_mode.c +++ b/drivers/gpu/drm/xe/xe_survivability_mode.c @@ -12,8 +12,10 @@ #include "xe_device.h" #include "xe_gt.h" +#include "xe_heci_gsc.h" #include "xe_mmio.h" #include "xe_pcode_api.h" +#include "xe_vsec.h" #define MAX_SCRATCH_MMIO 8 @@ -142,6 +144,10 @@ static void enable_survivability_mode(struct pci_dev *pdev) dev_warn(dev, "Failed to create survivability sysfs files\n"); return; } + + xe_heci_gsc_init(xe); + + xe_vsec_init(xe); } /** @@ -194,6 +200,7 @@ void xe_survivability_mode_remove(struct xe_device *xe) struct device *dev = &pdev->dev; sysfs_remove_file(&dev->kobj, &dev_attr_survivability_mode.attr); + xe_heci_gsc_fini(xe); kfree(survivability->info); pci_set_drvdata(pdev, NULL); }