habanalabs: set DMA0 completion to SOB 1007
authorOded Gabbay <oded.gabbay@gmail.com>
Thu, 28 Feb 2019 08:46:15 +0000 (10:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Feb 2019 12:04:59 +0000 (13:04 +0100)
This patch fix a bug where DMA channel 0 completion address wasn't
initialized by the driver.

The patch sets the address to Sync Object no. 1007

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

index 6f0075c4e9357b8eb9603b27a79af26e134d01d9..578e4bdc3a498b2326320a33baef77aa18c7826a 100644 (file)
@@ -1036,15 +1036,15 @@ static void goya_init_dma_ch(struct hl_device *hdev, int dma_id)
        WREG32(mmDMA_CH_0_ERRMSG_WDATA + reg_off,
                        GOYA_ASYNC_EVENT_ID_DMA0_CH + dma_id);
 
-       if (dma_id) {
+       if (dma_id)
                sob_addr = CFG_BASE + mmSYNC_MNGR_SOB_OBJ_1000 +
                                (dma_id - 1) * 4;
-               WREG32(mmDMA_CH_0_WR_COMP_ADDR_LO + reg_off,
-                               lower_32_bits(sob_addr));
-               WREG32(mmDMA_CH_0_WR_COMP_ADDR_HI + reg_off,
-                               upper_32_bits(sob_addr));
-               WREG32(mmDMA_CH_0_WR_COMP_WDATA + reg_off, 0x80000001);
-       }
+       else
+               sob_addr = CFG_BASE + mmSYNC_MNGR_SOB_OBJ_1007;
+
+       WREG32(mmDMA_CH_0_WR_COMP_ADDR_LO + reg_off, lower_32_bits(sob_addr));
+       WREG32(mmDMA_CH_0_WR_COMP_ADDR_HI + reg_off, upper_32_bits(sob_addr));
+       WREG32(mmDMA_CH_0_WR_COMP_WDATA + reg_off, 0x80000001);
 }
 
 /*
index a3c746849f02ee31c69e27ab34deab159db7404b..6cb0b6e54d417cf9265d1c99c444d7b2df433acd 100644 (file)
 #define mmSYNC_MNGR_MON_PAY_ADDRL_0                                  0x113000
 #define mmSYNC_MNGR_SOB_OBJ_0                                        0x112000
 #define mmSYNC_MNGR_SOB_OBJ_1000                                     0x112FA0
+#define mmSYNC_MNGR_SOB_OBJ_1007                                     0x112FBC
 #define mmSYNC_MNGR_SOB_OBJ_1023                                     0x112FFC
 #define mmSYNC_MNGR_MON_STATUS_0                                     0x114000
 #define mmSYNC_MNGR_MON_STATUS_255                                   0x1143FC