[PATCH 7/9] habanalabs/gaudi: use memory_scrub_val from debugfs

From: Oded Gabbay
Date: Thu Jun 23 2022 - 16:42:47 EST


From: Dafna Hirschfeld <dhirschfeld@xxxxxxxxx>

In the callback scrub_device_mem, use 'memory_scrub_val'
from debugfs for the scrubbing value.

Signed-off-by: Dafna Hirschfeld <dhirschfeld@xxxxxxxxx>
Reviewed-by: Oded Gabbay <ogabbay@xxxxxxxxxx>
Signed-off-by: Oded Gabbay <ogabbay@xxxxxxxxxx>
---
Documentation/ABI/testing/debugfs-driver-habanalabs | 3 ++-
drivers/misc/habanalabs/gaudi/gaudi.c | 5 ++---
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/Documentation/ABI/testing/debugfs-driver-habanalabs b/Documentation/ABI/testing/debugfs-driver-habanalabs
index 0f8d20fe343f..deb66944cd0c 100644
--- a/Documentation/ABI/testing/debugfs-driver-habanalabs
+++ b/Documentation/ABI/testing/debugfs-driver-habanalabs
@@ -182,7 +182,8 @@ Date: May 2022
KernelVersion: 5.19
Contact: dhirschfeld@xxxxxxxxx
Description: The value to which the dram will be set to when the user
- scrubs the dram using 'memory_scrub' debugfs file
+ scrubs the dram using 'memory_scrub' debugfs file and
+ the scrubbing value when using module param 'memory_scrub'

What: /sys/kernel/debug/habanalabs/hl<n>/mmu
Date: Jan 2019
diff --git a/drivers/misc/habanalabs/gaudi/gaudi.c b/drivers/misc/habanalabs/gaudi/gaudi.c
index bc5e74505d03..8cf3382fa039 100644
--- a/drivers/misc/habanalabs/gaudi/gaudi.c
+++ b/drivers/misc/habanalabs/gaudi/gaudi.c
@@ -4851,7 +4851,7 @@ static int gaudi_scrub_device_mem(struct hl_device *hdev)
struct asic_fixed_properties *prop = &hdev->asic_prop;
u64 addr, size, dummy_val;
int rc = 0;
- u64 val = 0;
+ u64 val = hdev->memory_scrub_val;

if (!hdev->memory_scrub)
return 0;
@@ -4871,7 +4871,6 @@ static int gaudi_scrub_device_mem(struct hl_device *hdev)
/* Scrub SRAM */
addr = prop->sram_user_base_address;
size = hdev->pldm ? 0x10000 : prop->sram_size - SRAM_USER_BASE_OFFSET;
- val = 0x7777777777777777ull;

dev_dbg(hdev->dev, "Scrubing SRAM: 0x%09llx - 0x%09llx val: 0x%llx\n",
addr, addr + size, val);
@@ -4882,7 +4881,7 @@ static int gaudi_scrub_device_mem(struct hl_device *hdev)
}

/* Scrub HBM using all DMA channels in parallel */
- rc = gaudi_scrub_device_dram(hdev, 0xdeadbeaf);
+ rc = gaudi_scrub_device_dram(hdev, val);
if (rc) {
dev_err(hdev->dev, "Failed to clear HBM (%d)\n", rc);
return rc;
--
2.25.1