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 394a2e1..018320e 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;