[PATCH v2 3/3] drm/xe: Initialize mei-gsc and vsec in survivability mode
Rodrigo Vivi
rodrigo.vivi at intel.com
Fri Jan 10 15:26:26 UTC 2025
On Wed, Jan 08, 2025 at 04:09:59PM +0530, Riana Tauro wrote:
> Initialize mei-gsc in survivability mode and disable HECI
> interrupts. Also initialize vsec in survivability mode
>
> Signed-off-by: Riana Tauro <riana.tauro at intel.com>
> ---
> drivers/gpu/drm/xe/xe_heci_gsc.c | 3 ++-
> drivers/gpu/drm/xe/xe_survivability_mode.c | 7 +++++++
> 2 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_heci_gsc.c b/drivers/gpu/drm/xe/xe_heci_gsc.c
> index d765bfd3636b..06dc78d3a812 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)) {
perhaps this could be avoided by adding a new argument to the
function? It gets strange that in this path we came from that component
and we need to peek back there...
otoh I know that sometimes these calls with true/false in arguments
can lead to confusion... and this is done really only once or twice
during probe, so not so hard feelings here...
up to you:
Reviewed-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> 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 4a978c7018c9..39ab898193a1 100644
> --- a/drivers/gpu/drm/xe/xe_survivability_mode.c
> +++ b/drivers/gpu/drm/xe/xe_survivability_mode.c
> @@ -13,8 +13,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
>
> @@ -152,6 +154,10 @@ static void enable_survivability_mode(struct xe_device *xe)
> drm_warn(&xe->drm, "Failed to create survivability sysfs files\n");
> return;
> }
> +
> + xe_heci_gsc_init(xe);
> +
> + xe_vsec_init(xe);
> }
>
> /**
> @@ -203,6 +209,7 @@ void xe_survivability_mode_remove(struct xe_device *xe)
> struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>
> sysfs_remove_file(&xe->drm.dev->kobj, &dev_attr_survivability_mode.attr);
> + xe_heci_gsc_fini(xe);
> kfree(survivability->info);
> pci_set_drvdata(pdev, NULL);
> }
> --
> 2.47.1
>
More information about the Intel-xe
mailing list