From 7970e04d1705075e01f1e168e5b32c9c7680118b Mon Sep 17 00:00:00 2001 From: Michal Wajdeczko Date: Fri, 9 Jan 2026 16:12:19 +0100 Subject: [PATCH] drm/xe/mert: Move MERT initialization to xe_mert.c Most of the MERT code is already in dedicated file, no reason to keep internal MERT data structure initialization elsewhere. Signed-off-by: Michal Wajdeczko Cc: Lukasz Laguna Reviewed-by: Lukasz Laguna Link: https://patch.msgid.link/20260109151219.26206-6-michal.wajdeczko@intel.com --- drivers/gpu/drm/xe/xe_mert.c | 13 +++++++++++++ drivers/gpu/drm/xe/xe_mert.h | 1 + drivers/gpu/drm/xe/xe_sriov_pf.c | 4 +--- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_mert.c b/drivers/gpu/drm/xe/xe_mert.c index ad832e89256c..fc027d2d7a5e 100644 --- a/drivers/gpu/drm/xe/xe_mert.c +++ b/drivers/gpu/drm/xe/xe_mert.c @@ -11,6 +11,19 @@ #include "xe_mmio.h" #include "xe_tile.h" +/** + * xe_mert_init_early() - Initialize MERT data + * @xe: the &xe_device with MERT to init + */ +void xe_mert_init_early(struct xe_device *xe) +{ + struct xe_tile *tile = xe_device_get_root_tile(xe); + struct xe_mert *mert = &tile->mert; + + spin_lock_init(&mert->lock); + init_completion(&mert->tlb_inv_done); +} + /** * xe_mert_invalidate_lmtt() - Invalidate MERT LMTT * @xe: the &xe_device with MERT diff --git a/drivers/gpu/drm/xe/xe_mert.h b/drivers/gpu/drm/xe/xe_mert.h index 44daeca094bd..fc977203692d 100644 --- a/drivers/gpu/drm/xe/xe_mert.h +++ b/drivers/gpu/drm/xe/xe_mert.h @@ -25,6 +25,7 @@ struct xe_mert { }; #ifdef CONFIG_PCI_IOV +void xe_mert_init_early(struct xe_device *xe); int xe_mert_invalidate_lmtt(struct xe_device *xe); void xe_mert_irq_handler(struct xe_device *xe, u32 master_ctl); #else diff --git a/drivers/gpu/drm/xe/xe_sriov_pf.c b/drivers/gpu/drm/xe/xe_sriov_pf.c index 72423bb17e6f..6ce3c58e003c 100644 --- a/drivers/gpu/drm/xe/xe_sriov_pf.c +++ b/drivers/gpu/drm/xe/xe_sriov_pf.c @@ -90,7 +90,6 @@ bool xe_sriov_pf_readiness(struct xe_device *xe) */ int xe_sriov_pf_init_early(struct xe_device *xe) { - struct xe_mert *mert = &xe_device_get_root_tile(xe)->mert; int err; xe_assert(xe, IS_SRIOV_PF(xe)); @@ -112,8 +111,7 @@ int xe_sriov_pf_init_early(struct xe_device *xe) xe_sriov_pf_service_init(xe); - spin_lock_init(&mert->lock); - init_completion(&mert->tlb_inv_done); + xe_mert_init_early(xe); return 0; } -- 2.47.3