Skip to content

Commit a9f88c6

Browse files
committed
drm/xe/soc_remapper: Initialize SoC remapper during Xe probe
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
1 parent e678703 commit a9f88c6

5 files changed

Lines changed: 46 additions & 0 deletions

File tree

drivers/gpu/drm/xe/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ xe-y += xe_bb.o \
116116
xe_sa.o \
117117
xe_sched_job.o \
118118
xe_shrinker.o \
119+
xe_soc_remapper.o \
119120
xe_step.o \
120121
xe_survivability_mode.o \
121122
xe_sync.o \

drivers/gpu/drm/xe/xe_device.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
#include "xe_pxp.h"
6363
#include "xe_query.h"
6464
#include "xe_shrinker.h"
65+
#include "xe_soc_remapper.h"
6566
#include "xe_survivability_mode.h"
6667
#include "xe_sriov.h"
6768
#include "xe_svm.h"
@@ -989,6 +990,10 @@ int xe_device_probe(struct xe_device *xe)
989990

990991
xe_nvm_init(xe);
991992

993+
err = xe_soc_remapper_init(xe);
994+
if (err)
995+
return err;
996+
992997
err = xe_heci_gsc_init(xe);
993998
if (err)
994999
return err;

drivers/gpu/drm/xe/xe_device_types.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,12 @@ struct xe_device {
578578
struct mutex lock;
579579
} pmt;
580580

581+
/** @soc_remapper: SoC remapper object */
582+
struct {
583+
/** @soc_remapper.lock: Serialize access to SoC Remapper's index registers */
584+
spinlock_t lock;
585+
} soc_remapper;
586+
581587
/**
582588
* @pm_callback_task: Track the active task that is running in either
583589
* the runtime_suspend or runtime_resume callbacks.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// SPDX-License-Identifier: MIT
2+
/*
3+
* Copyright © 2025 Intel Corporation
4+
*/
5+
6+
#include "xe_soc_remapper.h"
7+
8+
/**
9+
* xe_soc_remapper_init() - Initialize SoC remapper
10+
* @xe: Pointer to xe device.
11+
*
12+
* Initialize SoC remapper.
13+
*
14+
* Return: 0 on success, error code on failure
15+
*/
16+
int xe_soc_remapper_init(struct xe_device *xe)
17+
{
18+
spin_lock_init(&xe->soc_remapper.lock);
19+
20+
return 0;
21+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/* SPDX-License-Identifier: MIT */
2+
/*
3+
* Copyright © 2025 Intel Corporation
4+
*/
5+
6+
#ifndef _XE_SOC_REMAPPER_H_
7+
#define _XE_SOC_REMAPPER_H_
8+
9+
#include "xe_device_types.h"
10+
11+
int xe_soc_remapper_init(struct xe_device *xe);
12+
13+
#endif

0 commit comments

Comments
 (0)