Lines Matching full:sdma

77 	for (i = 0; i < adev->sdma.num_instances; i++)  in cik_sdma_free_microcode()
78 amdgpu_ucode_release(&adev->sdma.instance[i].fw); in cik_sdma_free_microcode()
82 * sDMA - System DMA
90 * (ring buffer, IBs, etc.), but sDMA has it's own
92 * used by the CP. sDMA supports copying data, writing
133 for (i = 0; i < adev->sdma.num_instances; i++) { in cik_sdma_init_microcode()
135 err = amdgpu_ucode_request(adev, &adev->sdma.instance[i].fw, in cik_sdma_init_microcode()
139 err = amdgpu_ucode_request(adev, &adev->sdma.instance[i].fw, in cik_sdma_init_microcode()
149 for (i = 0; i < adev->sdma.num_instances; i++) in cik_sdma_init_microcode()
150 amdgpu_ucode_release(&adev->sdma.instance[i].fw); in cik_sdma_init_microcode()
202 struct amdgpu_sdma_instance *sdma = amdgpu_sdma_get_instance_from_ring(ring); in cik_sdma_ring_insert_nop() local
206 if (sdma && sdma->burst_nop && (i == 0)) in cik_sdma_ring_insert_nop()
314 for (i = 0; i < adev->sdma.num_instances; i++) { in cik_sdma_gfx_stop()
371 for (i = 0; i < adev->sdma.num_instances; i++) { in cik_ctx_switch_enable()
409 for (i = 0; i < adev->sdma.num_instances; i++) { in cik_sdma_enable()
434 for (i = 0; i < adev->sdma.num_instances; i++) { in cik_sdma_gfx_resume()
435 ring = &adev->sdma.instance[i].ring; in cik_sdma_gfx_resume()
440 /* SDMA GFX */ in cik_sdma_gfx_resume()
443 /* XXX SDMA RLC - todo */ in cik_sdma_gfx_resume()
497 for (i = 0; i < adev->sdma.num_instances; i++) { in cik_sdma_gfx_resume()
498 ring = &adev->sdma.instance[i].ring; in cik_sdma_gfx_resume()
522 * cik_sdma_load_microcode - load the sDMA ME ucode
539 for (i = 0; i < adev->sdma.num_instances; i++) { in cik_sdma_load_microcode()
540 if (!adev->sdma.instance[i].fw) in cik_sdma_load_microcode()
542 hdr = (const struct sdma_firmware_header_v1_0 *)adev->sdma.instance[i].fw->data; in cik_sdma_load_microcode()
545 adev->sdma.instance[i].fw_version = le32_to_cpu(hdr->header.ucode_version); in cik_sdma_load_microcode()
546 adev->sdma.instance[i].feature_version = le32_to_cpu(hdr->ucode_feature_version); in cik_sdma_load_microcode()
547 if (adev->sdma.instance[i].feature_version >= 20) in cik_sdma_load_microcode()
548 adev->sdma.instance[i].burst_nop = true; in cik_sdma_load_microcode()
550 (adev->sdma.instance[i].fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes)); in cik_sdma_load_microcode()
554 WREG32(mmSDMA0_UCODE_ADDR + sdma_offsets[i], adev->sdma.instance[i].fw_version); in cik_sdma_load_microcode()
578 /* enable sdma ring preemption */ in cik_sdma_start()
716 * Update PTEs by copying them from the GART using sDMA (CIK).
743 * Update PTEs by writing them manually using sDMA (CIK).
764 * cik_sdma_vm_set_pte_pde - update the page tables using sDMA
773 * Update the page tables using sDMA (CIK).
801 struct amdgpu_sdma_instance *sdma = amdgpu_sdma_get_instance_from_ring(ring); in cik_sdma_ring_pad_ib() local
807 if (sdma && sdma->burst_nop && (i == 0)) in cik_sdma_ring_pad_ib()
841 * cik_sdma_ring_emit_vm_flush - cik vm flush using sDMA
848 * using sDMA (CIK).
928 adev->sdma.num_instances = SDMA_MAX_INSTANCE; in cik_sdma_early_init()
948 /* SDMA trap event */ in cik_sdma_sw_init()
950 &adev->sdma.trap_irq); in cik_sdma_sw_init()
954 /* SDMA Privileged inst */ in cik_sdma_sw_init()
956 &adev->sdma.illegal_inst_irq); in cik_sdma_sw_init()
960 /* SDMA Privileged inst */ in cik_sdma_sw_init()
962 &adev->sdma.illegal_inst_irq); in cik_sdma_sw_init()
966 for (i = 0; i < adev->sdma.num_instances; i++) { in cik_sdma_sw_init()
967 ring = &adev->sdma.instance[i].ring; in cik_sdma_sw_init()
969 sprintf(ring->name, "sdma%d", i); in cik_sdma_sw_init()
971 &adev->sdma.trap_irq, in cik_sdma_sw_init()
987 for (i = 0; i < adev->sdma.num_instances; i++) in cik_sdma_sw_fini()
988 amdgpu_ring_fini(&adev->sdma.instance[i].ring); in cik_sdma_sw_fini()
1149 DRM_DEBUG("IH: SDMA trap\n"); in cik_sdma_process_trap_irq()
1154 amdgpu_fence_process(&adev->sdma.instance[0].ring); in cik_sdma_process_trap_irq()
1167 amdgpu_fence_process(&adev->sdma.instance[1].ring); in cik_sdma_process_trap_irq()
1188 DRM_ERROR("Illegal instruction in SDMA command stream\n"); in cik_sdma_process_illegal_inst_irq()
1190 drm_sched_fault(&adev->sdma.instance[instance_id].ring.sched); in cik_sdma_process_illegal_inst_irq()
1262 for (i = 0; i < adev->sdma.num_instances; i++) { in cik_sdma_set_ring_funcs()
1263 adev->sdma.instance[i].ring.funcs = &cik_sdma_ring_funcs; in cik_sdma_set_ring_funcs()
1264 adev->sdma.instance[i].ring.me = i; in cik_sdma_set_ring_funcs()
1279 adev->sdma.trap_irq.num_types = AMDGPU_SDMA_IRQ_LAST; in cik_sdma_set_irq_funcs()
1280 adev->sdma.trap_irq.funcs = &cik_sdma_trap_irq_funcs; in cik_sdma_set_irq_funcs()
1281 adev->sdma.illegal_inst_irq.funcs = &cik_sdma_illegal_inst_irq_funcs; in cik_sdma_set_irq_funcs()
1285 * cik_sdma_emit_copy_buffer - copy buffer using the sDMA engine
1313 * cik_sdma_emit_fill_buffer - fill buffer using the sDMA engine
1347 adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; in cik_sdma_set_buffer_funcs()
1363 for (i = 0; i < adev->sdma.num_instances; i++) { in cik_sdma_set_vm_pte_funcs()
1365 &adev->sdma.instance[i].ring.sched; in cik_sdma_set_vm_pte_funcs()
1367 adev->vm_manager.vm_pte_num_scheds = adev->sdma.num_instances; in cik_sdma_set_vm_pte_funcs()