summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/xe/xe_uc.c
diff options
context:
space:
mode:
authorDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>2023-11-17 14:51:45 -0800
committerRodrigo Vivi <rodrigo.vivi@intel.com>2023-12-21 11:45:06 -0500
commit0d1caff4a367e0cbc28622fab7e39576bac82bb9 (patch)
tree59e2c8aabf1e8665ef2bde03eda661a0658892d1 /drivers/gpu/drm/xe/xe_uc.c
parent2e7227b4b733223a0a5b6a7a2685c7ff089c21c5 (diff)
downloadlinux-stable-0d1caff4a367e0cbc28622fab7e39576bac82bb9.tar.gz
linux-stable-0d1caff4a367e0cbc28622fab7e39576bac82bb9.tar.bz2
linux-stable-0d1caff4a367e0cbc28622fab7e39576bac82bb9.zip
drm/xe/gsc: Introduce GSC FW
Add the basic definitions and init function. Same as HuC, GSC is only supported on the media GT on MTL and newer platforms. Note that the GSC requires submission resources which can't be allocated during init (because we don't have the hwconfig yet), so it can't be marked as loadable at the end of the init function. The allocation of those resources will come in the patch that makes use of them to load the FW. v2: better comment, move num FWs define inside the enum (John) Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Alan Previn <alan.previn.teres.alexis@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_uc.c')
-rw-r--r--drivers/gpu/drm/xe/xe_uc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/xe/xe_uc.c b/drivers/gpu/drm/xe/xe_uc.c
index 784f53c5f282..b67154c78dff 100644
--- a/drivers/gpu/drm/xe/xe_uc.c
+++ b/drivers/gpu/drm/xe/xe_uc.c
@@ -6,6 +6,7 @@
#include "xe_uc.h"
#include "xe_device.h"
+#include "xe_gsc.h"
#include "xe_gt.h"
#include "xe_guc.h"
#include "xe_guc_pc.h"
@@ -32,8 +33,8 @@ int xe_uc_init(struct xe_uc *uc)
int ret;
/*
- * We call the GuC/HuC init functions even if GuC submission is off to
- * correctly move our tracking of the FW state to "disabled".
+ * We call the GuC/HuC/GSC init functions even if GuC submission is off
+ * to correctly move our tracking of the FW state to "disabled".
*/
ret = xe_guc_init(&uc->guc);
@@ -44,6 +45,10 @@ int xe_uc_init(struct xe_uc *uc)
if (ret)
goto err;
+ ret = xe_gsc_init(&uc->gsc);
+ if (ret)
+ goto err;
+
if (!xe_device_uc_enabled(uc_to_xe(uc)))
return 0;