Commit 401fabd6 authored by Michal Wajdeczko's avatar Michal Wajdeczko
Browse files

drm/xe/mert: Use local mert variable to simplify the code



There is no need to always refer to MERT data using tile pointer.
Use of local mert pointer will simplify the code and make it look
like other existing MERT function.

Signed-off-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Reviewed-by: default avatarLukasz Laguna <lukasz.laguna@intel.com>
Link: https://patch.msgid.link/20260109151219.26206-5-michal.wajdeczko@intel.com
parent ff4eca1f
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ int xe_mert_invalidate_lmtt(struct xe_device *xe)
void xe_mert_irq_handler(struct xe_device *xe, u32 master_ctl)
{
	struct xe_tile *tile = xe_device_get_root_tile(xe);
	struct xe_mert *mert = &tile->mert;
	unsigned long flags;
	u32 reg_val;
	u8 err;
@@ -69,13 +70,13 @@ void xe_mert_irq_handler(struct xe_device *xe, u32 master_ctl)
	else if (err)
		drm_dbg(&xe->drm, "MERT catastrophic error: Unexpected fault (0x%x)\n", err);

	spin_lock_irqsave(&tile->mert.lock, flags);
	if (tile->mert.tlb_inv_triggered) {
	spin_lock_irqsave(&mert->lock, flags);
	if (mert->tlb_inv_triggered) {
		reg_val = xe_mmio_read32(&tile->mmio, MERT_TLB_INV_DESC_A);
		if (!(reg_val & MERT_TLB_INV_DESC_A_VALID)) {
			tile->mert.tlb_inv_triggered = false;
			complete_all(&tile->mert.tlb_inv_done);
			mert->tlb_inv_triggered = false;
			complete_all(&mert->tlb_inv_done);
		}
	}
	spin_unlock_irqrestore(&tile->mert.lock, flags);
	spin_unlock_irqrestore(&mert->lock, flags);
}