habanalabs: return dram virtual address in info ioctl
authorAlon Mizrahi <amizrahi@habana.ai>
Wed, 23 Dec 2020 15:53:17 +0000 (17:53 +0200)
committerOded Gabbay <ogabbay@kernel.org>
Wed, 27 Jan 2021 19:03:49 +0000 (21:03 +0200)
When working with DRAM MMU, we should supply the userspace with the
virtual start address of the DRAM instead of the physical one. This
is because the physical one has no meaning for the user as he only
knows the virtual address range.

Signed-off-by: Alon Mizrahi <amizrahi@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
drivers/misc/habanalabs/common/habanalabs_ioctl.c

index 394a2e1767ce4361c37c83c778d382d5297d95eb..018320e0331b8035e4b072216dfc441b72679a31 100644 (file)
@@ -57,7 +57,9 @@ static int hw_ip_info(struct hl_device *hdev, struct hl_info_args *args)
 
        hw_ip.device_id = hdev->asic_funcs->get_pci_id(hdev);
        hw_ip.sram_base_address = prop->sram_user_base_address;
-       hw_ip.dram_base_address = prop->dram_user_base_address;
+       hw_ip.dram_base_address =
+                       hdev->mmu_enable && prop->dram_supports_virtual_memory ?
+                       prop->dmmu.start_addr : prop->dram_user_base_address;
        hw_ip.tpc_enabled_mask = prop->tpc_enabled_mask;
        hw_ip.sram_size = prop->sram_size - sram_kmd_size;
        hw_ip.dram_size = prop->dram_size - dram_kmd_size;