Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 887f7d38 authored by Oded Gabbay's avatar Oded Gabbay Committed by Greg Kroah-Hartman
Browse files

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: default avatarOded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6765fda0
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -1036,16 +1036,16 @@ 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));
	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);
}
}

/*
 * goya_init_dma_qmans - Initialize QMAN DMA registers
+1 −0
Original line number Diff line number Diff line
@@ -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