mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 22:52:19 +02:00
accel/habanalabs: fix DRAM BAR base address calculation
When the DRAM region size in the BAR is not a power of 2, calculating the corresponding BAR base address should be done using the offset from the DRAM start address, and not using directly the DRAM address. Signed-off-by: Tomer Tayar <ttayar@habana.ai> Reviewed-by: Oded Gabbay <ogabbay@kernel.org> Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
This commit is contained in:
parent
8c075401f2
commit
d0df8a35a7
|
|
@ -55,7 +55,8 @@ static u64 hl_set_dram_bar(struct hl_device *hdev, u64 addr, struct pci_mem_regi
|
|||
if (is_power_of_2(prop->dram_pci_bar_size))
|
||||
bar_base_addr = addr & ~(prop->dram_pci_bar_size - 0x1ull);
|
||||
else
|
||||
bar_base_addr = DIV_ROUND_DOWN_ULL(addr, prop->dram_pci_bar_size) *
|
||||
bar_base_addr = region->region_base +
|
||||
div64_u64((addr - region->region_base), prop->dram_pci_bar_size) *
|
||||
prop->dram_pci_bar_size;
|
||||
|
||||
old_base = hdev->asic_funcs->set_dram_bar_base(hdev, bar_base_addr);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user