drm/amdkfd: Add TC flush on VMID deallocation for Hawaii
[linux-2.6-block.git] / drivers / gpu / drm / amd / amdkfd / kfd_priv.h
index 0d5d924b31ef6936669224a059122a2cf8850d6b..aaed005ce1f5d6501022c1d82f46c1bc363138a8 100644 (file)
@@ -494,6 +494,7 @@ struct qcm_process_device {
 
        /* IB memory */
        uint64_t ib_base;
+       void *ib_kaddr;
 };
 
 /* KFD Memory Eviction */
@@ -543,6 +544,9 @@ struct kfd_process_device {
        struct file *drm_file;
        void *vm;
 
+       /* GPUVM allocations storage */
+       struct idr alloc_idr;
+
        /* Flag used to tell the pdd has dequeued from the dqm.
         * This is used to prevent dev->dqm->ops.process_termination() from
         * being called twice when it is already called in IOMMU callback
@@ -678,6 +682,14 @@ struct kfd_process_device *kfd_create_process_device_data(struct kfd_dev *dev,
 int kfd_reserved_mem_mmap(struct kfd_process *process,
                          struct vm_area_struct *vma);
 
+/* KFD process API for creating and translating handles */
+int kfd_process_device_create_obj_handle(struct kfd_process_device *pdd,
+                                       void *mem);
+void *kfd_process_device_translate_handle(struct kfd_process_device *p,
+                                       int handle);
+void kfd_process_device_remove_obj_handle(struct kfd_process_device *pdd,
+                                       int handle);
+
 /* Process device data iterator */
 struct kfd_process_device *kfd_get_first_process_device_data(
                                                        struct kfd_process *p);
@@ -823,6 +835,8 @@ int pm_send_unmap_queue(struct packet_manager *pm, enum kfd_queue_type type,
 
 void pm_release_ib(struct packet_manager *pm);
 
+uint32_t pm_create_release_mem(uint64_t gpu_addr, uint32_t *buffer);
+
 uint64_t kfd_get_number_elems(struct kfd_dev *kfd);
 
 /* Events */