drm/xe: Initialize mei-gsc and vsec in survivability mode
authorRiana Tauro <riana.tauro@intel.com>
Tue, 28 Jan 2025 09:56:32 +0000 (15:26 +0530)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 28 Jan 2025 13:58:46 +0000 (08:58 -0500)
Initialize mei-gsc in survivability mode and disable HECI
interrupts. Also initialize vsec in survivability mode

Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Alexander Usyskin <alexander.usyskin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250128095632.1294722-4-riana.tauro@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_heci_gsc.c
drivers/gpu/drm/xe/xe_survivability_mode.c

index d765bfd3636b4a5a39dfd62809850b08f7c0b639..06dc78d3a8123b78867493262ce1892c3f7dc574 100644 (file)
@@ -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;
index 633f5effa349291a6690ba1918f0540932380a19..c619560af74f0a59367fc15d4fe5242f49c51171 100644 (file)
 
 #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);
 }