habanalabs: increase h/w timer when checking idle
authorOmer Shpigelman <oshpigelman@habana.ai>
Tue, 16 Jun 2020 14:56:27 +0000 (17:56 +0300)
committerOded Gabbay <oded.gabbay@gmail.com>
Wed, 24 Jun 2020 09:35:23 +0000 (12:35 +0300)
In GAUDI the current timer value for the hardware to check if it is
in IDLE state is too low. As a result, there are occasions where the H/W
wrongly reports it is not IDLE. The driver checks that before submitting
work on behalf of the driver during initialization, so a false report might
cause the driver to fail during device initialization.

Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
drivers/misc/habanalabs/gaudi/gaudi.c

index 69317d2ebdfad34fd15442df7fe9d040dfd4a6d9..834470d10b46bb5e800517dc0724adb34686e5df 100644 (file)
@@ -1893,6 +1893,8 @@ static void gaudi_init_pci_dma_qman(struct hl_device *hdev, int dma_id,
        WREG32(mmDMA0_QM_CP_MSG_BASE3_ADDR_LO_0 + q_off, so_base_ws_lo);
        WREG32(mmDMA0_QM_CP_MSG_BASE3_ADDR_HI_0 + q_off, so_base_ws_hi);
 
+       WREG32(mmDMA0_QM_CP_BARRIER_CFG_0 + q_off, 0x100);
+
        /* The following configuration is needed only once per QMAN */
        if (qman_id == 0) {
                /* Configure RAZWI IRQ */