]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe/soc_remapper: Initialize SoC remapper during Xe probe
authorUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Tue, 23 Dec 2025 18:39:45 +0000 (10:39 -0800)
committerUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Tue, 23 Dec 2025 19:43:46 +0000 (11:43 -0800)
SoC remapper is used to map different HW functions in the SoC to their
respective drivers. Initialize SoC remapper during driver load.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>
Link: https://patch.msgid.link/20251223183943.3175941-6-umesh.nerlige.ramappa@intel.com
drivers/gpu/drm/xe/Makefile
drivers/gpu/drm/xe/xe_device.c
drivers/gpu/drm/xe/xe_device_types.h
drivers/gpu/drm/xe/xe_soc_remapper.c [new file with mode: 0644]
drivers/gpu/drm/xe/xe_soc_remapper.h [new file with mode: 0644]

index 47e7912ce634c78bb37169e989f693546f47b159..37a6583993d1ddbffe03ea9de5f62170e0deea09 100644 (file)
@@ -116,6 +116,7 @@ xe-y += xe_bb.o \
        xe_sa.o \
        xe_sched_job.o \
        xe_shrinker.o \
+       xe_soc_remapper.o \
        xe_step.o \
        xe_survivability_mode.o \
        xe_sync.o \
index 951387d54295d29d19880526b2e29d867f49f5be..e101d290b2a64cf3037975a09c6041333ec475f6 100644 (file)
@@ -62,6 +62,7 @@
 #include "xe_pxp.h"
 #include "xe_query.h"
 #include "xe_shrinker.h"
+#include "xe_soc_remapper.h"
 #include "xe_survivability_mode.h"
 #include "xe_sriov.h"
 #include "xe_svm.h"
@@ -989,6 +990,10 @@ int xe_device_probe(struct xe_device *xe)
 
        xe_nvm_init(xe);
 
+       err = xe_soc_remapper_init(xe);
+       if (err)
+               return err;
+
        err = xe_heci_gsc_init(xe);
        if (err)
                return err;
index 6832fdbe274477945e4092cd1b7b497a8f11fb3a..69570e21c16bf35923869544d400d8d5d899c524 100644 (file)
@@ -578,6 +578,12 @@ struct xe_device {
                struct mutex lock;
        } pmt;
 
+       /** @soc_remapper: SoC remapper object */
+       struct {
+               /** @soc_remapper.lock: Serialize access to SoC Remapper's index registers */
+               spinlock_t lock;
+       } soc_remapper;
+
        /**
         * @pm_callback_task: Track the active task that is running in either
         * the runtime_suspend or runtime_resume callbacks.
diff --git a/drivers/gpu/drm/xe/xe_soc_remapper.c b/drivers/gpu/drm/xe/xe_soc_remapper.c
new file mode 100644 (file)
index 0000000..f2cc1f5
--- /dev/null
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: MIT
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#include "xe_soc_remapper.h"
+
+/**
+ * xe_soc_remapper_init() - Initialize SoC remapper
+ * @xe: Pointer to xe device.
+ *
+ * Initialize SoC remapper.
+ *
+ * Return: 0 on success, error code on failure
+ */
+int xe_soc_remapper_init(struct xe_device *xe)
+{
+       spin_lock_init(&xe->soc_remapper.lock);
+
+       return 0;
+}
diff --git a/drivers/gpu/drm/xe/xe_soc_remapper.h b/drivers/gpu/drm/xe/xe_soc_remapper.h
new file mode 100644 (file)
index 0000000..1060ad0
--- /dev/null
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: MIT */
+/*
+ * Copyright © 2025 Intel Corporation
+ */
+
+#ifndef _XE_SOC_REMAPPER_H_
+#define _XE_SOC_REMAPPER_H_
+
+#include "xe_device_types.h"
+
+int xe_soc_remapper_init(struct xe_device *xe);
+
+#endif