summaryrefslogtreecommitdiff
path: root/drivers/misc
diff options
context:
space:
mode:
authorOmer Shpigelman <oshpigelman@habana.ai>2020-05-17 17:35:39 +0300
committerOded Gabbay <oded.gabbay@gmail.com>2020-05-25 08:15:33 +0300
commit42d0b0b95f9822fc02440c0ae5f9192c0ebe54bf (patch)
tree5a8365f145bed5ea537ecc1aa8f7e418ee08a76f /drivers/misc
parented65bfd9fd86dec3772570b0320ca85b9fb69f2e (diff)
habanalabs: improve MMU cache invalidation code
A new sequence is introduced to invalidate the MMU cache in order to avoid timeouts. Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai> Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/habanalabs/gaudi/gaudi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/misc/habanalabs/gaudi/gaudi.c b/drivers/misc/habanalabs/gaudi/gaudi.c
index 4cb1f71dd4f1..093384731f0d 100644
--- a/drivers/misc/habanalabs/gaudi/gaudi.c
+++ b/drivers/misc/habanalabs/gaudi/gaudi.c
@@ -5982,16 +5982,18 @@ static void gaudi_mmu_invalidate_cache(struct hl_device *hdev, bool is_hard,
timeout_usec = MMU_CONFIG_TIMEOUT_USEC;
/* L0 & L1 invalidation */
- WREG32(mmSTLB_INV_ALL_START, 1);
+ WREG32(mmSTLB_INV_PS, 2);
rc = hl_poll_timeout(
hdev,
- mmSTLB_INV_ALL_START,
+ mmSTLB_INV_PS,
status,
!status,
1000,
timeout_usec);
+ WREG32(mmSTLB_INV_SET, 0);
+
if (rc)
dev_notice_ratelimited(hdev->dev,
"Timeout when waiting for MMU cache invalidation\n");