Lines Matching defs:ctx

2136 void gaudi2_iterate_tpcs(struct hl_device *hdev, struct iterate_module_ctx *ctx)
2143 ctx->rc = 0;
2154 ctx->fn(hdev, dcore, inst, offset, ctx);
2155 if (ctx->rc) {
2168 ctx->fn(hdev, 0, NUM_DCORE0_TPC - 1, offset, ctx);
2169 if (ctx->rc)
5345 u32 offset, struct iterate_module_ctx *ctx)
5348 struct gaudi2_tpc_init_cfg_data *cfg_data = ctx->data;
7193 struct iterate_module_ctx *ctx)
7195 struct gaudi2_tpc_idle_data *idle_data = ctx->data;
7658 struct iterate_module_ctx *ctx)
7660 struct gaudi2_tpc_mmu_data *mmu_data = ctx->data;
10303 struct hl_ctx *ctx;
10306 /* Fetch the ctx */
10307 ctx = hl_get_compute_ctx(hdev);
10308 if (!ctx) {
10309 dev_err(hdev->dev, "No ctx available\n");
10323 reserved_va_base = hl_reserve_va_block(hdev, ctx, HL_VA_RANGE_TYPE_HOST, SZ_2M,
10334 rc = hl_mmu_map_contiguous(ctx, reserved_va_base, host_mem_dma_addr, SZ_2M);
10342 ctx->asid, reserved_va_base, SZ_2M);
10344 hl_mmu_unmap_contiguous(ctx, reserved_va_base, SZ_2M);
10351 gaudi2_kdma_set_mmbp_asid(hdev, false, ctx->asid);
10379 rc = hl_mmu_unmap_contiguous(ctx, reserved_va_base, SZ_2M);
10384 ctx->asid, reserved_va_base, SZ_2M);
10388 hl_unreserve_va_block(hdev, ctx, reserved_va_base, SZ_2M);
10392 hl_ctx_put(ctx);
10397 static int gaudi2_internal_cb_pool_init(struct hl_device *hdev, struct hl_ctx *ctx)
10431 hdev->internal_cb_va_base = hl_reserve_va_block(hdev, ctx, HL_VA_RANGE_TYPE_HOST,
10441 rc = hl_mmu_map_contiguous(ctx, hdev->internal_cb_va_base, hdev->internal_cb_pool_dma_addr,
10455 hl_mmu_unmap_contiguous(ctx, hdev->internal_cb_va_base, HOST_SPACE_INTERNAL_CB_SZ);
10458 hl_unreserve_va_block(hdev, ctx, hdev->internal_cb_va_base, HOST_SPACE_INTERNAL_CB_SZ);
10468 static void gaudi2_internal_cb_pool_fini(struct hl_device *hdev, struct hl_ctx *ctx)
10476 hl_mmu_unmap_contiguous(ctx, hdev->internal_cb_va_base, HOST_SPACE_INTERNAL_CB_SZ);
10477 hl_unreserve_va_block(hdev, ctx, hdev->internal_cb_va_base, HOST_SPACE_INTERNAL_CB_SZ);
10493 static int gaudi2_map_virtual_msix_doorbell_memory(struct hl_ctx *ctx)
10495 struct hl_device *hdev = ctx->hdev;
10500 rc = hl_mmu_map_page(ctx, RESERVED_VA_FOR_VIRTUAL_MSIX_DOORBELL_START,
10509 static void gaudi2_unmap_virtual_msix_doorbell_memory(struct hl_ctx *ctx)
10511 struct hl_device *hdev = ctx->hdev;
10515 rc = hl_mmu_unmap_page(ctx, RESERVED_VA_FOR_VIRTUAL_MSIX_DOORBELL_START,
10522 static int gaudi2_ctx_init(struct hl_ctx *ctx)
10526 rc = gaudi2_mmu_prepare(ctx->hdev, ctx->asid);
10533 if (ctx->hdev->reset_upon_device_release)
10534 gaudi2_restore_nic_qm_registers(ctx->hdev);
10536 gaudi2_restore_user_registers(ctx->hdev);
10538 rc = gaudi2_internal_cb_pool_init(ctx->hdev, ctx);
10542 rc = gaudi2_map_virtual_msix_doorbell_memory(ctx);
10544 gaudi2_internal_cb_pool_fini(ctx->hdev, ctx);
10549 static void gaudi2_ctx_fini(struct hl_ctx *ctx)
10551 if (ctx->asid == HL_KERNEL_ASID_ID)
10554 gaudi2_internal_cb_pool_fini(ctx->hdev, ctx);
10556 gaudi2_unmap_virtual_msix_doorbell_memory(ctx);
10561 struct hl_device *hdev = cs->ctx->hdev;
10763 static int gaudi2_collective_wait_create_jobs(struct hl_device *hdev, struct hl_ctx *ctx,