Commit 2c77ec14 authored by Tomer Tayar's avatar Tomer Tayar Committed by Oded Gabbay
Browse files

habanalabs/gaudi2: don't enable entries in the MSIX_GW table



User should use the virtual MSI-X doorbell to generate interrupts from
the device, so there is no need to enable entries in the MSIX_GW table.

Signed-off-by: default avatarTomer Tayar <ttayar@habana.ai>
Reviewed-by: default avatarOded Gabbay <ogabbay@kernel.org>
Signed-off-by: default avatarOded Gabbay <ogabbay@kernel.org>
parent 24c983c8
Loading
Loading
Loading
Loading
+0 −26
Original line number Diff line number Diff line
@@ -4695,30 +4695,6 @@ static void gaudi2_init_dec(struct hl_device *hdev)
	}
}

static void gaudi2_init_msix_gw_table(struct hl_device *hdev)
{
	u32 first_reg_offset, last_reg_offset, msix_gw_table_base;
	u8 first_bit, last_bit;
	int i;

	msix_gw_table_base = mmPCIE_WRAP_MSIX_GW_TABLE_0;
	first_reg_offset = (GAUDI2_IRQ_NUM_USER_FIRST >> 5) << 2;
	first_bit = GAUDI2_IRQ_NUM_USER_FIRST % 32;
	last_reg_offset = (GAUDI2_IRQ_NUM_USER_LAST >> 5) << 2;
	last_bit = GAUDI2_IRQ_NUM_USER_LAST % 32;

	if (first_reg_offset == last_reg_offset) {
		WREG32(msix_gw_table_base + first_reg_offset, GENMASK(last_bit, first_bit));
		return;
	}

	WREG32(msix_gw_table_base + first_reg_offset, GENMASK(31, first_bit));
	WREG32(msix_gw_table_base + last_reg_offset, GENMASK(last_bit, 0));

	for (i = first_reg_offset + 4; i < last_reg_offset ; i += 4)
		WREG32(msix_gw_table_base + i, 0xFFFFFFFF);
}

static int gaudi2_mmu_update_asid_hop0_addr(struct hl_device *hdev,
					u32 stlb_base, u32 asid, u64 phys_addr)
{
@@ -5232,8 +5208,6 @@ static int gaudi2_hw_init(struct hl_device *hdev)
		return rc;
	}

	gaudi2_init_msix_gw_table(hdev);

	gaudi2_init_scrambler_hbm(hdev);
	gaudi2_init_kdma(hdev);