habanalabs: fix mmu cache registers init
authorOded Gabbay <oded.gabbay@gmail.com>
Thu, 28 Feb 2019 08:46:13 +0000 (10:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Feb 2019 12:04:59 +0000 (13:04 +0100)
This patch fix an incorrect initialization of the MMU cache registers. The
shift operation was done in the wrong direction.

Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/habanalabs/goya/goya.c

index 5780041..5444cd0 100644 (file)
@@ -2675,8 +2675,9 @@ static int goya_mmu_init(struct hl_device *hdev)
        goya->hw_cap_initialized |= HW_CAP_MMU;
 
        /* init MMU cache manage page */
-       WREG32(mmSTLB_CACHE_INV_BASE_39_8, MMU_CACHE_MNG_ADDR >> 8);
-       WREG32(mmSTLB_CACHE_INV_BASE_49_40, MMU_CACHE_MNG_ADDR << 40);
+       WREG32(mmSTLB_CACHE_INV_BASE_39_8,
+                               lower_32_bits(MMU_CACHE_MNG_ADDR >> 8));
+       WREG32(mmSTLB_CACHE_INV_BASE_49_40, MMU_CACHE_MNG_ADDR >> 40);
 
        /* Remove follower feature due to performance bug */
        WREG32_AND(mmSTLB_STLB_FEATURE_EN,