Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

habanalabs: extend QMAN0 job timeout

This patch fix a bug where the timeout for sending a job on QMAN0 by KMD
wasn't enough in palladium environment.

Signed-off-by: Omer Shpigelman <oshpigelman@habana.ai>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Omer Shpigelman and committed by
Greg Kroah-Hartman
3dccd187 887f7d38

+9 -3
+9 -3
drivers/misc/habanalabs/goya/goya.c
··· 83 83 #define GOYA_CPU_TIMEOUT_USEC 10000000 /* 10s */ 84 84 #define GOYA_TEST_QUEUE_WAIT_USEC 100000 /* 100ms */ 85 85 #define GOYA_PLDM_MMU_TIMEOUT_USEC (MMU_CONFIG_TIMEOUT_USEC * 100) 86 + #define GOYA_PLDM_QMAN0_TIMEOUT_USEC (HL_DEVICE_TIMEOUT_USEC * 30) 86 87 87 88 #define GOYA_QMAN0_FENCE_VAL 0xD169B243 88 89 ··· 3127 3126 u32 *fence_ptr; 3128 3127 dma_addr_t fence_dma_addr; 3129 3128 struct hl_cb *cb; 3130 - u32 tmp; 3129 + u32 tmp, timeout; 3131 3130 int rc; 3131 + 3132 + if (hdev->pldm) 3133 + timeout = GOYA_PLDM_QMAN0_TIMEOUT_USEC; 3134 + else 3135 + timeout = HL_DEVICE_TIMEOUT_USEC; 3132 3136 3133 3137 if (!hdev->asic_funcs->is_device_idle(hdev)) { 3134 3138 dev_err_ratelimited(hdev->dev, ··· 3181 3175 goto free_fence_ptr; 3182 3176 } 3183 3177 3184 - rc = hl_poll_timeout_memory(hdev, (u64) (uintptr_t) fence_ptr, 3185 - HL_DEVICE_TIMEOUT_USEC, &tmp); 3178 + rc = hl_poll_timeout_memory(hdev, (u64) (uintptr_t) fence_ptr, timeout, 3179 + &tmp); 3186 3180 3187 3181 hl_hw_queue_inc_ci_kernel(hdev, GOYA_QUEUE_ID_DMA_0); 3188 3182