Lines Matching full:sdma
248 struct amdgpu_sdma_instance *sdma = amdgpu_sdma_get_instance_from_ring(ring); in sdma_v6_0_ring_insert_nop() local
252 if (sdma && sdma->burst_nop && (i == 0)) in sdma_v6_0_ring_insert_nop()
406 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_gfx_stop()
458 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_enable()
484 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_gfx_resume()
485 ring = &adev->sdma.instance[i].ring; in sdma_v6_0_gfx_resume()
557 adev->doorbell_index.sdma_doorbell_range * adev->sdma.num_instances); in sdma_v6_0_gfx_resume()
634 * sdma_v6_0_load_microcode - load the sDMA ME ucode
652 if (!adev->sdma.instance[0].fw) in sdma_v6_0_load_microcode()
655 /* use broadcast mode to load SDMA microcode by default */ in sdma_v6_0_load_microcode()
659 dev_info(adev->dev, "Use broadcast method to load SDMA firmware\n"); in sdma_v6_0_load_microcode()
661 hdr = (const struct sdma_firmware_header_v2_0 *)adev->sdma.instance[0].fw->data; in sdma_v6_0_load_microcode()
666 (adev->sdma.instance[0].fw->data + in sdma_v6_0_load_microcode()
681 (adev->sdma.instance[0].fw->data + in sdma_v6_0_load_microcode()
692 dev_info(adev->dev, "Use legacy method to load SDMA firmware\n"); in sdma_v6_0_load_microcode()
693 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_load_microcode()
695 hdr = (const struct sdma_firmware_header_v2_0 *)adev->sdma.instance[0].fw->data; in sdma_v6_0_load_microcode()
700 (adev->sdma.instance[0].fw->data + in sdma_v6_0_load_microcode()
711 … WREG32(sdma_v6_0_get_reg_offset(adev, i, regSDMA0_UCODE_ADDR), adev->sdma.instance[0].fw_version); in sdma_v6_0_load_microcode()
717 (adev->sdma.instance[0].fw->data + in sdma_v6_0_load_microcode()
728 … WREG32(sdma_v6_0_get_reg_offset(adev, i, regSDMA0_UCODE_ADDR), adev->sdma.instance[0].fw_version); in sdma_v6_0_load_microcode()
743 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_soft_reset()
778 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_check_soft_reset()
779 ring = &adev->sdma.instance[i].ring; in sdma_v6_0_check_soft_reset()
821 /* enable sdma ring preemption */ in sdma_v6_0_start()
1059 * Update PTEs by copying them from the GART using sDMA.
1088 * Update PTEs by writing them manually using sDMA.
1109 * sdma_v6_0_vm_set_pte_pde - update the page tables using sDMA
1118 * Update the page tables using sDMA.
1146 struct amdgpu_sdma_instance *sdma = amdgpu_sdma_get_instance_from_ring(ring); in sdma_v6_0_ring_pad_ib() local
1152 if (sdma && sdma->burst_nop && (i == 0)) in sdma_v6_0_ring_pad_ib()
1187 * sdma_v6_0_ring_emit_vm_flush - vm flush using sDMA
1193 * using sDMA.
1253 /* SDMA trap event */ in sdma_v6_0_sw_init()
1256 &adev->sdma.trap_irq); in sdma_v6_0_sw_init()
1262 DRM_ERROR("Failed to load sdma firmware!\n"); in sdma_v6_0_sw_init()
1266 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_sw_init()
1267 ring = &adev->sdma.instance[i].ring; in sdma_v6_0_sw_init()
1272 DRM_DEBUG("SDMA %d use_doorbell being set to: [%s]\n", i, in sdma_v6_0_sw_init()
1278 sprintf(ring->name, "sdma%d", i); in sdma_v6_0_sw_init()
1280 &adev->sdma.trap_irq, in sdma_v6_0_sw_init()
1295 for (i = 0; i < adev->sdma.num_instances; i++) in sdma_v6_0_sw_fini()
1296 amdgpu_ring_fini(&adev->sdma.instance[i].ring); in sdma_v6_0_sw_fini()
1315 /* disable the scheduler for SDMA */ in sdma_v6_0_hw_fini()
1345 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_is_idle()
1441 DRM_DEBUG("IH: SDMA trap\n"); in sdma_v6_0_process_trap_irq()
1461 DRM_ERROR("IH: wrong ring_ID detected, as wrong sdma instance\n"); in sdma_v6_0_process_trap_irq()
1469 amdgpu_fence_process(&adev->sdma.instance[instances].ring); in sdma_v6_0_process_trap_irq()
1561 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_set_ring_funcs()
1562 adev->sdma.instance[i].ring.funcs = &sdma_v6_0_ring_funcs; in sdma_v6_0_set_ring_funcs()
1563 adev->sdma.instance[i].ring.me = i; in sdma_v6_0_set_ring_funcs()
1578 adev->sdma.trap_irq.num_types = AMDGPU_SDMA_IRQ_INSTANCE0 + in sdma_v6_0_set_irq_funcs()
1579 adev->sdma.num_instances; in sdma_v6_0_set_irq_funcs()
1580 adev->sdma.trap_irq.funcs = &sdma_v6_0_trap_irq_funcs; in sdma_v6_0_set_irq_funcs()
1581 adev->sdma.illegal_inst_irq.funcs = &sdma_v6_0_illegal_inst_irq_funcs; in sdma_v6_0_set_irq_funcs()
1585 * sdma_v6_0_emit_copy_buffer - copy buffer using the sDMA engine
1614 * sdma_v6_0_emit_fill_buffer - fill buffer using the sDMA engine
1648 adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; in sdma_v6_0_set_buffer_funcs()
1663 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_set_vm_pte_funcs()
1665 &adev->sdma.instance[i].ring.sched; in sdma_v6_0_set_vm_pte_funcs()
1667 adev->vm_manager.vm_pte_num_scheds = adev->sdma.num_instances; in sdma_v6_0_set_vm_pte_funcs()