habanalabs: set DMA0 completion to SOB 1007
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>
This commit is contained in:
parent
6765fda0f4
commit
887f7d38e4
|
@ -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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -108,6 +108,7 @@
|
|||
#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
|
||||
|
|
Loading…
Reference in New Issue