Lines Matching refs:qpd
106 struct qcm_process_device *qpd; in kfd_sdma_activity_worker() local
119 qpd = &pdd->qpd; in kfd_sdma_activity_worker()
120 if (!dqm || !qpd) in kfd_sdma_activity_worker()
151 list_for_each_entry(q, &qpd->queues_list, list) { in kfd_sdma_activity_worker()
213 list_for_each_entry(q, &qpd->queues_list, list) { in kfd_sdma_activity_worker()
282 if (pdd->qpd.queue_count == 0) { in kfd_get_cu_occupancy()
764 struct qcm_process_device *qpd = &pdd->qpd; in kfd_process_device_reserve_ib_mem() local
773 if (qpd->ib_kaddr || !qpd->ib_base) in kfd_process_device_reserve_ib_mem()
777 ret = kfd_process_alloc_gpuvm(pdd, qpd->ib_base, PAGE_SIZE, flags, in kfd_process_device_reserve_ib_mem()
782 qpd->ib_mem = mem; in kfd_process_device_reserve_ib_mem()
783 qpd->ib_kaddr = kaddr; in kfd_process_device_reserve_ib_mem()
790 struct qcm_process_device *qpd = &pdd->qpd; in kfd_process_device_destroy_ib_mem() local
792 if (!qpd->ib_kaddr || !qpd->ib_base) in kfd_process_device_destroy_ib_mem()
795 kfd_process_free_gpuvm(qpd->ib_mem, pdd, qpd->ib_kaddr); in kfd_process_device_destroy_ib_mem()
1010 if (pdd->qpd.cwsr_kaddr && !pdd->qpd.cwsr_base) in kfd_process_destroy_pdds()
1011 free_pages((unsigned long)pdd->qpd.cwsr_kaddr, in kfd_process_destroy_pdds()
1014 kfree(pdd->qpd.doorbell_bitmap); in kfd_process_destroy_pdds()
1203 struct qcm_process_device *qpd = &p->pdds[i]->qpd; in kfd_process_init_cwsr_apu() local
1205 if (!dev->cwsr_enabled || qpd->cwsr_kaddr || qpd->cwsr_base) in kfd_process_init_cwsr_apu()
1209 qpd->tba_addr = (int64_t)vm_mmap(filep, 0, in kfd_process_init_cwsr_apu()
1213 if (IS_ERR_VALUE(qpd->tba_addr)) { in kfd_process_init_cwsr_apu()
1214 int err = qpd->tba_addr; in kfd_process_init_cwsr_apu()
1217 qpd->tba_addr = 0; in kfd_process_init_cwsr_apu()
1218 qpd->cwsr_kaddr = NULL; in kfd_process_init_cwsr_apu()
1222 memcpy(qpd->cwsr_kaddr, dev->cwsr_isa, dev->cwsr_isa_size); in kfd_process_init_cwsr_apu()
1224 qpd->tma_addr = qpd->tba_addr + KFD_CWSR_TMA_OFFSET; in kfd_process_init_cwsr_apu()
1226 qpd->tba_addr, qpd->tma_addr, qpd->cwsr_kaddr); in kfd_process_init_cwsr_apu()
1235 struct qcm_process_device *qpd = &pdd->qpd; in kfd_process_device_init_cwsr_dgpu() local
1243 if (!dev->cwsr_enabled || qpd->cwsr_kaddr || !qpd->cwsr_base) in kfd_process_device_init_cwsr_dgpu()
1247 ret = kfd_process_alloc_gpuvm(pdd, qpd->cwsr_base, in kfd_process_device_init_cwsr_dgpu()
1252 qpd->cwsr_mem = mem; in kfd_process_device_init_cwsr_dgpu()
1253 qpd->cwsr_kaddr = kaddr; in kfd_process_device_init_cwsr_dgpu()
1254 qpd->tba_addr = qpd->cwsr_base; in kfd_process_device_init_cwsr_dgpu()
1256 memcpy(qpd->cwsr_kaddr, dev->cwsr_isa, dev->cwsr_isa_size); in kfd_process_device_init_cwsr_dgpu()
1258 qpd->tma_addr = qpd->tba_addr + KFD_CWSR_TMA_OFFSET; in kfd_process_device_init_cwsr_dgpu()
1260 qpd->tba_addr, qpd->tma_addr, qpd->cwsr_kaddr); in kfd_process_device_init_cwsr_dgpu()
1268 struct qcm_process_device *qpd = &pdd->qpd; in kfd_process_device_destroy_cwsr_dgpu() local
1270 if (!dev->cwsr_enabled || !qpd->cwsr_kaddr || !qpd->cwsr_base) in kfd_process_device_destroy_cwsr_dgpu()
1273 kfd_process_free_gpuvm(qpd->cwsr_mem, pdd, qpd->cwsr_kaddr); in kfd_process_device_destroy_cwsr_dgpu()
1276 void kfd_process_set_trap_handler(struct qcm_process_device *qpd, in kfd_process_set_trap_handler() argument
1280 if (qpd->cwsr_kaddr) { in kfd_process_set_trap_handler()
1285 (uint64_t *)(qpd->cwsr_kaddr + KFD_CWSR_TMA_OFFSET); in kfd_process_set_trap_handler()
1290 qpd->tba_addr = tba_addr; in kfd_process_set_trap_handler()
1291 qpd->tma_addr = tma_addr; in kfd_process_set_trap_handler()
1427 static int init_doorbell_bitmap(struct qcm_process_device *qpd, in init_doorbell_bitmap() argument
1437 qpd->doorbell_bitmap = in init_doorbell_bitmap()
1440 if (!qpd->doorbell_bitmap) in init_doorbell_bitmap()
1451 set_bit(i, qpd->doorbell_bitmap); in init_doorbell_bitmap()
1453 qpd->doorbell_bitmap); in init_doorbell_bitmap()
1488 if (init_doorbell_bitmap(&pdd->qpd, dev)) { in kfd_create_process_device_data()
1494 INIT_LIST_HEAD(&pdd->qpd.queues_list); in kfd_create_process_device_data()
1495 INIT_LIST_HEAD(&pdd->qpd.priv_queue_list); in kfd_create_process_device_data()
1496 pdd->qpd.dqm = dev->dqm; in kfd_create_process_device_data()
1497 pdd->qpd.pqm = &p->pqm; in kfd_create_process_device_data()
1498 pdd->qpd.evicted = 0; in kfd_create_process_device_data()
1499 pdd->qpd.mapped_gws_queue = false; in kfd_create_process_device_data()
1717 &pdd->qpd); in kfd_process_evict_queues()
1741 &pdd->qpd)) in kfd_process_evict_queues()
1760 &pdd->qpd); in kfd_process_restore_queues()
1918 struct qcm_process_device *qpd; in kfd_reserved_mem_mmap() local
1928 qpd = &pdd->qpd; in kfd_reserved_mem_mmap()
1930 qpd->cwsr_kaddr = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, in kfd_reserved_mem_mmap()
1932 if (!qpd->cwsr_kaddr) { in kfd_reserved_mem_mmap()
1941 PFN_DOWN(__pa(qpd->cwsr_kaddr)), in kfd_reserved_mem_mmap()
1953 if (pdd->qpd.vmid) in kfd_flush_tlb()
1955 pdd->qpd.vmid); in kfd_flush_tlb()