Lines Matching full:sdma

240 	struct amdgpu_sdma_instance *sdma = amdgpu_sdma_get_instance_from_ring(ring);  in sdma_v6_0_ring_insert_nop()  local
244 if (sdma && sdma->burst_nop && (i == 0)) in sdma_v6_0_ring_insert_nop()
398 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_gfx_stop()
434 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_ctxempty_int_enable()
464 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_enable()
472 * sdma_v6_0_gfx_resume_instance - start/restart a certain sdma engine
491 ring = &adev->sdma.instance[i].ring; in sdma_v6_0_gfx_resume_instance()
566 adev->doorbell_index.sdma_doorbell_range * adev->sdma.num_instances); in sdma_v6_0_gfx_resume_instance()
574 /* Set up sdma hang watchdog */ in sdma_v6_0_gfx_resume_instance()
634 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_gfx_resume()
657 * sdma_v6_0_load_microcode - load the sDMA ME ucode
675 if (!adev->sdma.instance[0].fw) in sdma_v6_0_load_microcode()
678 /* use broadcast mode to load SDMA microcode by default */ in sdma_v6_0_load_microcode()
682 dev_info(adev->dev, "Use broadcast method to load SDMA firmware\n"); in sdma_v6_0_load_microcode()
684 hdr = (const struct sdma_firmware_header_v2_0 *)adev->sdma.instance[0].fw->data; in sdma_v6_0_load_microcode()
689 (adev->sdma.instance[0].fw->data + in sdma_v6_0_load_microcode()
704 (adev->sdma.instance[0].fw->data + in sdma_v6_0_load_microcode()
715 dev_info(adev->dev, "Use legacy method to load SDMA firmware\n"); in sdma_v6_0_load_microcode()
716 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_load_microcode()
718 hdr = (const struct sdma_firmware_header_v2_0 *)adev->sdma.instance[0].fw->data; in sdma_v6_0_load_microcode()
723 (adev->sdma.instance[0].fw->data + in sdma_v6_0_load_microcode()
734 … WREG32(sdma_v6_0_get_reg_offset(adev, i, regSDMA0_UCODE_ADDR), adev->sdma.instance[0].fw_version); in sdma_v6_0_load_microcode()
740 (adev->sdma.instance[0].fw->data + in sdma_v6_0_load_microcode()
751 … WREG32(sdma_v6_0_get_reg_offset(adev, i, regSDMA0_UCODE_ADDR), adev->sdma.instance[0].fw_version); in sdma_v6_0_load_microcode()
766 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_soft_reset()
801 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_check_soft_reset()
802 ring = &adev->sdma.instance[i].ring; in sdma_v6_0_check_soft_reset()
843 /* enable sdma ring preemption */ in sdma_v6_0_start()
1083 * Update PTEs by copying them from the GART using sDMA.
1111 * Update PTEs by writing them manually using sDMA.
1132 * sdma_v6_0_vm_set_pte_pde - update the page tables using sDMA
1141 * Update the page tables using sDMA.
1170 struct amdgpu_sdma_instance *sdma = amdgpu_sdma_get_instance_from_ring(ring); in sdma_v6_0_ring_pad_ib() local
1176 if (sdma && sdma->burst_nop && (i == 0)) in sdma_v6_0_ring_pad_ib()
1211 * sdma_v6_0_ring_emit_vm_flush - vm flush using sDMA
1218 * using sDMA.
1290 adev->sdma.ras = &sdma_v6_0_3_ras; in sdma_v6_0_set_ras_funcs()
1324 /* SDMA trap event */ in sdma_v6_0_sw_init()
1327 &adev->sdma.trap_irq); in sdma_v6_0_sw_init()
1331 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_sw_init()
1332 ring = &adev->sdma.instance[i].ring; in sdma_v6_0_sw_init()
1337 DRM_DEBUG("SDMA %d use_doorbell being set to: [%s]\n", i, in sdma_v6_0_sw_init()
1344 sprintf(ring->name, "sdma%d", i); in sdma_v6_0_sw_init()
1346 &adev->sdma.trap_irq, in sdma_v6_0_sw_init()
1353 adev->sdma.supported_reset = in sdma_v6_0_sw_init()
1354 amdgpu_get_soft_full_reset_mask(&adev->sdma.instance[0].ring); in sdma_v6_0_sw_init()
1359 if (adev->sdma.instance[0].fw_version >= 21) in sdma_v6_0_sw_init()
1360 adev->sdma.supported_reset |= AMDGPU_RESET_TYPE_PER_QUEUE; in sdma_v6_0_sw_init()
1367 dev_err(adev->dev, "Failed to initialize sdma ras block!\n"); in sdma_v6_0_sw_init()
1371 /* Allocate memory for SDMA IP Dump buffer */ in sdma_v6_0_sw_init()
1372 ptr = kcalloc(adev->sdma.num_instances * reg_count, sizeof(uint32_t), GFP_KERNEL); in sdma_v6_0_sw_init()
1374 adev->sdma.ip_dump = ptr; in sdma_v6_0_sw_init()
1376 DRM_ERROR("Failed to allocated memory for SDMA IP Dump\n"); in sdma_v6_0_sw_init()
1390 for (i = 0; i < adev->sdma.num_instances; i++) in sdma_v6_0_sw_fini()
1391 amdgpu_ring_fini(&adev->sdma.instance[i].ring); in sdma_v6_0_sw_fini()
1396 kfree(adev->sdma.ip_dump); in sdma_v6_0_sw_fini()
1436 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_is_idle()
1516 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_reset_queue()
1517 if (ring == &adev->sdma.instance[i].ring) in sdma_v6_0_reset_queue()
1521 if (i == adev->sdma.num_instances) { in sdma_v6_0_reset_queue()
1522 DRM_ERROR("sdma instance not found\n"); in sdma_v6_0_reset_queue()
1559 DRM_DEBUG("IH: SDMA trap\n"); in sdma_v6_0_process_trap_irq()
1579 DRM_ERROR("IH: wrong ring_ID detected, as wrong sdma instance\n"); in sdma_v6_0_process_trap_irq()
1587 amdgpu_fence_process(&adev->sdma.instance[instances].ring); in sdma_v6_0_process_trap_irq()
1627 if (!adev->sdma.ip_dump) in sdma_v6_0_print_ip_state()
1630 drm_printf(p, "num_instances:%d\n", adev->sdma.num_instances); in sdma_v6_0_print_ip_state()
1631 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_print_ip_state()
1637 adev->sdma.ip_dump[instance_offset + j]); in sdma_v6_0_print_ip_state()
1648 if (!adev->sdma.ip_dump) in sdma_v6_0_dump_ip_state()
1652 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_dump_ip_state()
1655 adev->sdma.ip_dump[instance_offset + j] = in sdma_v6_0_dump_ip_state()
1722 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_set_ring_funcs()
1723 adev->sdma.instance[i].ring.funcs = &sdma_v6_0_ring_funcs; in sdma_v6_0_set_ring_funcs()
1724 adev->sdma.instance[i].ring.me = i; in sdma_v6_0_set_ring_funcs()
1739 adev->sdma.trap_irq.num_types = AMDGPU_SDMA_IRQ_INSTANCE0 + in sdma_v6_0_set_irq_funcs()
1740 adev->sdma.num_instances; in sdma_v6_0_set_irq_funcs()
1741 adev->sdma.trap_irq.funcs = &sdma_v6_0_trap_irq_funcs; in sdma_v6_0_set_irq_funcs()
1742 adev->sdma.illegal_inst_irq.funcs = &sdma_v6_0_illegal_inst_irq_funcs; in sdma_v6_0_set_irq_funcs()
1746 * sdma_v6_0_emit_copy_buffer - copy buffer using the sDMA engine
1776 * sdma_v6_0_emit_fill_buffer - fill buffer using the sDMA engine
1810 adev->mman.buffer_funcs_ring = &adev->sdma.instance[0].ring; in sdma_v6_0_set_buffer_funcs()
1825 for (i = 0; i < adev->sdma.num_instances; i++) { in sdma_v6_0_set_vm_pte_funcs()
1827 &adev->sdma.instance[i].ring.sched; in sdma_v6_0_set_vm_pte_funcs()
1829 adev->vm_manager.vm_pte_num_scheds = adev->sdma.num_instances; in sdma_v6_0_set_vm_pte_funcs()