aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/4642-drm-amdgpu-Update-function-level-documentation-for-G.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4642-drm-amdgpu-Update-function-level-documentation-for-G.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/4642-drm-amdgpu-Update-function-level-documentation-for-G.patch633
1 files changed, 633 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4642-drm-amdgpu-Update-function-level-documentation-for-G.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4642-drm-amdgpu-Update-function-level-documentation-for-G.patch
new file mode 100644
index 00000000..8a206f9c
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4642-drm-amdgpu-Update-function-level-documentation-for-G.patch
@@ -0,0 +1,633 @@
+From 83b86c7573978a66325325b3736b084bed2256a8 Mon Sep 17 00:00:00 2001
+From: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
+Date: Mon, 11 Jun 2018 11:11:24 -0400
+Subject: [PATCH 4642/5725] drm/amdgpu: Update function level documentation for
+ GPUVM v3
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Add/update function level documentation and add reference to amdgpu_vm.c
+in amdgpu.rst
+
+v2:
+Fix reference in rst file.
+Fix compilation warnings.
+Add space between function names and params list where
+it's missing.
+
+v3:
+Fix some funtion comments.
+Add formatted documentation to structs.
+
+Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 253 ++++++++++++++++++++++++++++-----
+ 1 file changed, 215 insertions(+), 38 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+index 651acca..3c7b1de 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
+@@ -34,8 +34,9 @@
+ #include "amdgpu_trace.h"
+ #include "amdgpu_amdkfd.h"
+
+-/*
+- * GPUVM
++/**
++ * DOC: GPUVM
++ *
+ * GPUVM is similar to the legacy gart on older asics, however
+ * rather than there being a single global gart table
+ * for the entire GPU, there are multiple VM page tables active
+@@ -63,37 +64,84 @@ INTERVAL_TREE_DEFINE(struct amdgpu_bo_va_mapping, rb, uint64_t, __subtree_last,
+ #undef START
+ #undef LAST
+
+-/* Local structure. Encapsulate some VM table update parameters to reduce
++/**
++ * struct amdgpu_pte_update_params - Local structure
++ *
++ * Encapsulate some VM table update parameters to reduce
+ * the number of function parameters
++ *
+ */
+ struct amdgpu_pte_update_params {
+- /* amdgpu device we do this update for */
++
++ /**
++ * @adev: amdgpu device we do this update for
++ */
+ struct amdgpu_device *adev;
+- /* optional amdgpu_vm we do this update for */
++
++ /**
++ * @vm: optional amdgpu_vm we do this update for
++ */
+ struct amdgpu_vm *vm;
+- /* address where to copy page table entries from */
++
++ /**
++ * @src: address where to copy page table entries from
++ */
+ uint64_t src;
+- /* indirect buffer to fill with commands */
++
++ /**
++ * @ib: indirect buffer to fill with commands
++ */
+ struct amdgpu_ib *ib;
+- /* Function which actually does the update */
++
++ /**
++ * @func: Function which actually does the update
++ */
+ void (*func)(struct amdgpu_pte_update_params *params,
+ struct amdgpu_bo *bo, uint64_t pe,
+ uint64_t addr, unsigned count, uint32_t incr,
+ uint64_t flags);
+- /* The next two are used during VM update by CPU
+- * DMA addresses to use for mapping
+- * Kernel pointer of PD/PT BO that needs to be updated
++ /**
++ * @pages_addr:
++ *
++ * DMA addresses to use for mapping, used during VM update by CPU
+ */
+ dma_addr_t *pages_addr;
++
++ /**
++ * @kptr:
++ *
++ * Kernel pointer of PD/PT BO that needs to be updated,
++ * used during VM update by CPU
++ */
+ void *kptr;
+ };
+
+-/* Helper to disable partial resident texture feature from a fence callback */
++/**
++ * struct amdgpu_prt_cb - Helper to disable partial resident texture feature from a fence callback
++ */
+ struct amdgpu_prt_cb {
++
++ /**
++ * @adev: amdgpu device
++ */
+ struct amdgpu_device *adev;
++
++ /**
++ * @cb: callback
++ */
+ struct dma_fence_cb cb;
+ };
+
++/**
++ * amdgpu_vm_bo_base_init - Adds bo to the list of bos associated with the vm
++ *
++ * @base: base structure for tracking BO usage in a VM
++ * @vm: vm to which bo is to be added
++ * @bo: amdgpu buffer object
++ *
++ * Initialize a bo_va_base structure and add it to the appropriate lists
++ *
++ */
+ static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base,
+ struct amdgpu_vm *vm,
+ struct amdgpu_bo *bo)
+@@ -126,8 +174,10 @@ static void amdgpu_vm_bo_base_init(struct amdgpu_vm_bo_base *base,
+ * amdgpu_vm_level_shift - return the addr shift for each level
+ *
+ * @adev: amdgpu_device pointer
++ * @level: VMPT level
+ *
+- * Returns the number of bits the pfn needs to be right shifted for a level.
++ * Returns:
++ * The number of bits the pfn needs to be right shifted for a level.
+ */
+ static unsigned amdgpu_vm_level_shift(struct amdgpu_device *adev,
+ unsigned level)
+@@ -155,8 +205,10 @@ static unsigned amdgpu_vm_level_shift(struct amdgpu_device *adev,
+ * amdgpu_vm_num_entries - return the number of entries in a PD/PT
+ *
+ * @adev: amdgpu_device pointer
++ * @level: VMPT level
+ *
+- * Calculate the number of entries in a page directory or page table.
++ * Returns:
++ * The number of entries in a page directory or page table.
+ */
+ static unsigned amdgpu_vm_num_entries(struct amdgpu_device *adev,
+ unsigned level)
+@@ -179,8 +231,10 @@ static unsigned amdgpu_vm_num_entries(struct amdgpu_device *adev,
+ * amdgpu_vm_bo_size - returns the size of the BOs in bytes
+ *
+ * @adev: amdgpu_device pointer
++ * @level: VMPT level
+ *
+- * Calculate the size of the BO for a page directory or page table in bytes.
++ * Returns:
++ * The size of the BO for a page directory or page table in bytes.
+ */
+ static unsigned amdgpu_vm_bo_size(struct amdgpu_device *adev, unsigned level)
+ {
+@@ -218,6 +272,9 @@ void amdgpu_vm_get_pd_bo(struct amdgpu_vm *vm,
+ * @param: parameter for the validation callback
+ *
+ * Validate the page table BOs on command submission if neccessary.
++ *
++ * Returns:
++ * Validation result.
+ */
+ int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+ int (*validate)(void *p, struct amdgpu_bo *bo),
+@@ -273,6 +330,9 @@ int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+ * @vm: VM to check
+ *
+ * Check if all VM PDs/PTs are ready for updates
++ *
++ * Returns:
++ * True if eviction list is empty.
+ */
+ bool amdgpu_vm_ready(struct amdgpu_vm *vm)
+ {
+@@ -283,10 +343,14 @@ bool amdgpu_vm_ready(struct amdgpu_vm *vm)
+ * amdgpu_vm_clear_bo - initially clear the PDs/PTs
+ *
+ * @adev: amdgpu_device pointer
++ * @vm: VM to clear BO from
+ * @bo: BO to clear
+ * @level: level this BO is at
+ *
+ * Root PD needs to be reserved when calling this.
++ *
++ * Returns:
++ * 0 on success, errno otherwise.
+ */
+ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev,
+ struct amdgpu_vm *vm, struct amdgpu_bo *bo,
+@@ -382,10 +446,16 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev,
+ *
+ * @adev: amdgpu_device pointer
+ * @vm: requested vm
++ * @parent: parent PT
+ * @saddr: start of the address range
+ * @eaddr: end of the address range
++ * @level: VMPT level
++ * @ats: indicate ATS support from PTE
+ *
+ * Make sure the page directories and page tables are allocated
++ *
++ * Returns:
++ * 0 on success, errno otherwise.
+ */
+ static int amdgpu_vm_alloc_levels(struct amdgpu_device *adev,
+ struct amdgpu_vm *vm,
+@@ -495,6 +565,9 @@ static int amdgpu_vm_alloc_levels(struct amdgpu_device *adev,
+ * @size: Size from start address we need.
+ *
+ * Make sure the page tables are allocated.
++ *
++ * Returns:
++ * 0 on success, errno otherwise.
+ */
+ int amdgpu_vm_alloc_pts(struct amdgpu_device *adev,
+ struct amdgpu_vm *vm,
+@@ -560,6 +633,15 @@ void amdgpu_vm_check_compute_bug(struct amdgpu_device *adev)
+ }
+ }
+
++/**
++ * amdgpu_vm_need_pipeline_sync - Check if pipe sync is needed for job.
++ *
++ * @ring: ring on which the job will be submitted
++ * @job: job to submit
++ *
++ * Returns:
++ * True if sync is needed.
++ */
+ bool amdgpu_vm_need_pipeline_sync(struct amdgpu_ring *ring,
+ struct amdgpu_job *job)
+ {
+@@ -587,6 +669,14 @@ bool amdgpu_vm_need_pipeline_sync(struct amdgpu_ring *ring,
+ return vm_flush_needed || gds_switch_needed;
+ }
+
++/**
++ * amdgpu_vm_is_large_bar - Check if BAR is large enough
++ *
++ * @adev: amdgpu_device pointer
++ *
++ * Returns:
++ * True if BAR is large enough.
++ */
+ static bool amdgpu_vm_is_large_bar(struct amdgpu_device *adev)
+ {
+ return (adev->gmc.real_vram_size == adev->gmc.visible_vram_size);
+@@ -596,10 +686,12 @@ static bool amdgpu_vm_is_large_bar(struct amdgpu_device *adev)
+ * amdgpu_vm_flush - hardware flush the vm
+ *
+ * @ring: ring to use for flush
+- * @vmid: vmid number to use
+- * @pd_addr: address of the page directory
++ * @need_pipe_sync: is pipe sync needed
+ *
+ * Emit a VM flush when it is necessary.
++ *
++ * Returns:
++ * 0 on success, errno otherwise.
+ */
+ int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job, bool need_pipe_sync)
+ {
+@@ -707,6 +799,9 @@ int amdgpu_vm_flush(struct amdgpu_ring *ring, struct amdgpu_job *job, bool need_
+ * Returns the found bo_va or NULL if none is found
+ *
+ * Object has to be reserved!
++ *
++ * Returns:
++ * Found bo_va or NULL.
+ */
+ struct amdgpu_bo_va *amdgpu_vm_bo_find(struct amdgpu_vm *vm,
+ struct amdgpu_bo *bo)
+@@ -788,7 +883,10 @@ static void amdgpu_vm_do_copy_ptes(struct amdgpu_pte_update_params *params,
+ * @addr: the unmapped addr
+ *
+ * Look up the physical address of the page that the pte resolves
+- * to and return the pointer for the page table entry.
++ * to.
++ *
++ * Returns:
++ * The pointer for the page table entry.
+ */
+ static uint64_t amdgpu_vm_map_gart(const dma_addr_t *pages_addr, uint64_t addr)
+ {
+@@ -841,6 +939,17 @@ static void amdgpu_vm_cpu_set_ptes(struct amdgpu_pte_update_params *params,
+ }
+ }
+
++
++/**
++ * amdgpu_vm_wait_pd - Wait for PT BOs to be free.
++ *
++ * @adev: amdgpu_device pointer
++ * @vm: related vm
++ * @owner: fence owner
++ *
++ * Returns:
++ * 0 on success, errno otherwise.
++ */
+ static int amdgpu_vm_wait_pd(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+ void *owner)
+ {
+@@ -894,7 +1003,10 @@ static void amdgpu_vm_update_pde(struct amdgpu_pte_update_params *params,
+ /*
+ * amdgpu_vm_invalidate_level - mark all PD levels as invalid
+ *
++ * @adev: amdgpu_device pointer
++ * @vm: related vm
+ * @parent: parent PD
++ * @level: VMPT level
+ *
+ * Mark all PD level as invalid after an error.
+ */
+@@ -929,7 +1041,9 @@ static void amdgpu_vm_invalidate_level(struct amdgpu_device *adev,
+ * @vm: requested vm
+ *
+ * Makes sure all directories are up to date.
+- * Returns 0 for success, error for failure.
++ *
++ * Returns:
++ * 0 for success, error for failure.
+ */
+ int amdgpu_vm_update_directories(struct amdgpu_device *adev,
+ struct amdgpu_vm *vm)
+@@ -1116,14 +1230,15 @@ static void amdgpu_vm_handle_huge_pages(struct amdgpu_pte_update_params *p,
+ * amdgpu_vm_update_ptes - make sure that page tables are valid
+ *
+ * @params: see amdgpu_pte_update_params definition
+- * @vm: requested vm
+ * @start: start of GPU address range
+ * @end: end of GPU address range
+ * @dst: destination address to map to, the next dst inside the function
+ * @flags: mapping flags
+ *
+ * Update the page tables in the range @start - @end.
+- * Returns 0 for success, -EINVAL for failure.
++ *
++ * Returns:
++ * 0 for success, -EINVAL for failure.
+ */
+ static int amdgpu_vm_update_ptes(struct amdgpu_pte_update_params *params,
+ uint64_t start, uint64_t end,
+@@ -1177,7 +1292,9 @@ static int amdgpu_vm_update_ptes(struct amdgpu_pte_update_params *params,
+ * @end: last PTE to handle
+ * @dst: addr those PTEs should point to
+ * @flags: hw mapping flags
+- * Returns 0 for success, -EINVAL for failure.
++ *
++ * Returns:
++ * 0 for success, -EINVAL for failure.
+ */
+ static int amdgpu_vm_frag_ptes(struct amdgpu_pte_update_params *params,
+ uint64_t start, uint64_t end,
+@@ -1249,7 +1366,9 @@ static int amdgpu_vm_frag_ptes(struct amdgpu_pte_update_params *params,
+ * @fence: optional resulting fence
+ *
+ * Fill in the page table entries between @start and @last.
+- * Returns 0 for success, -EINVAL for failure.
++ *
++ * Returns:
++ * 0 for success, -EINVAL for failure.
+ */
+ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
+ struct dma_fence *exclusive,
+@@ -1404,7 +1523,9 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev,
+ *
+ * Split the mapping into smaller chunks so that each update fits
+ * into a SDMA IB.
+- * Returns 0 for success, -EINVAL for failure.
++ *
++ * Returns:
++ * 0 for success, -EINVAL for failure.
+ */
+ static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev,
+ struct dma_fence *exclusive,
+@@ -1534,7 +1655,9 @@ static int amdgpu_vm_bo_split_mapping(struct amdgpu_device *adev,
+ * @clear: if true clear the entries
+ *
+ * Fill in the page table entries for @bo_va.
+- * Returns 0 for success, -EINVAL for failure.
++ *
++ * Returns:
++ * 0 for success, -EINVAL for failure.
+ */
+ int amdgpu_vm_bo_update(struct amdgpu_device *adev,
+ struct amdgpu_bo_va *bo_va,
+@@ -1639,6 +1762,8 @@ int amdgpu_vm_bo_update(struct amdgpu_device *adev,
+
+ /**
+ * amdgpu_vm_update_prt_state - update the global PRT state
++ *
++ * @adev: amdgpu_device pointer
+ */
+ static void amdgpu_vm_update_prt_state(struct amdgpu_device *adev)
+ {
+@@ -1653,6 +1778,8 @@ static void amdgpu_vm_update_prt_state(struct amdgpu_device *adev)
+
+ /**
+ * amdgpu_vm_prt_get - add a PRT user
++ *
++ * @adev: amdgpu_device pointer
+ */
+ static void amdgpu_vm_prt_get(struct amdgpu_device *adev)
+ {
+@@ -1665,6 +1792,8 @@ static void amdgpu_vm_prt_get(struct amdgpu_device *adev)
+
+ /**
+ * amdgpu_vm_prt_put - drop a PRT user
++ *
++ * @adev: amdgpu_device pointer
+ */
+ static void amdgpu_vm_prt_put(struct amdgpu_device *adev)
+ {
+@@ -1674,6 +1803,8 @@ static void amdgpu_vm_prt_put(struct amdgpu_device *adev)
+
+ /**
+ * amdgpu_vm_prt_cb - callback for updating the PRT status
++ *
++ * @fence: fence for the callback
+ */
+ static void amdgpu_vm_prt_cb(struct dma_fence *fence, struct dma_fence_cb *_cb)
+ {
+@@ -1685,6 +1816,9 @@ static void amdgpu_vm_prt_cb(struct dma_fence *fence, struct dma_fence_cb *_cb)
+
+ /**
+ * amdgpu_vm_add_prt_cb - add callback for updating the PRT status
++ *
++ * @adev: amdgpu_device pointer
++ * @fence: fence for the callback
+ */
+ static void amdgpu_vm_add_prt_cb(struct amdgpu_device *adev,
+ struct dma_fence *fence)
+@@ -1776,9 +1910,11 @@ static void amdgpu_vm_prt_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
+ * or if an error occurred)
+ *
+ * Make sure all freed BOs are cleared in the PT.
+- * Returns 0 for success.
+- *
+ * PTs have to be reserved and mutex must be locked!
++ *
++ * Returns:
++ * 0 for success.
++ *
+ */
+ int amdgpu_vm_clear_freed(struct amdgpu_device *adev,
+ struct amdgpu_vm *vm,
+@@ -1823,10 +1959,11 @@ int amdgpu_vm_clear_freed(struct amdgpu_device *adev,
+ *
+ * @adev: amdgpu_device pointer
+ * @vm: requested vm
+- * @sync: sync object to add fences to
+ *
+ * Make sure all BOs which are moved are updated in the PTs.
+- * Returns 0 for success.
++ *
++ * Returns:
++ * 0 for success.
+ *
+ * PTs have to be reserved!
+ */
+@@ -1881,7 +2018,9 @@ int amdgpu_vm_handle_moved(struct amdgpu_device *adev,
+ *
+ * Add @bo into the requested vm.
+ * Add @bo to the list of bos associated with the vm
+- * Returns newly added bo_va or NULL for failure
++ *
++ * Returns:
++ * Newly added bo_va or NULL for failure
+ *
+ * Object has to be reserved!
+ */
+@@ -1947,7 +2086,9 @@ static void amdgpu_vm_bo_insert_map(struct amdgpu_device *adev,
+ * @flags: attributes of pages (read/write/valid/etc.)
+ *
+ * Add a mapping of the BO at the specefied addr into the VM.
+- * Returns 0 for success, error for failure.
++ *
++ * Returns:
++ * 0 for success, error for failure.
+ *
+ * Object has to be reserved and unreserved outside!
+ */
+@@ -2009,7 +2150,9 @@ int amdgpu_vm_bo_map(struct amdgpu_device *adev,
+ *
+ * Add a mapping of the BO at the specefied addr into the VM. Replace existing
+ * mappings as we do so.
+- * Returns 0 for success, error for failure.
++ *
++ * Returns:
++ * 0 for success, error for failure.
+ *
+ * Object has to be reserved and unreserved outside!
+ */
+@@ -2066,7 +2209,9 @@ int amdgpu_vm_bo_replace_map(struct amdgpu_device *adev,
+ * @saddr: where to the BO is mapped
+ *
+ * Remove a mapping of the BO at the specefied addr from the VM.
+- * Returns 0 for success, error for failure.
++ *
++ * Returns:
++ * 0 for success, error for failure.
+ *
+ * Object has to be reserved and unreserved outside!
+ */
+@@ -2120,7 +2265,9 @@ int amdgpu_vm_bo_unmap(struct amdgpu_device *adev,
+ * @size: size of the range
+ *
+ * Remove all mappings in a range, split them as appropriate.
+- * Returns 0 for success, error for failure.
++ *
++ * Returns:
++ * 0 for success, error for failure.
+ */
+ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
+ struct amdgpu_vm *vm,
+@@ -2219,6 +2366,10 @@ int amdgpu_vm_bo_clear_mappings(struct amdgpu_device *adev,
+ * @vm: the requested VM
+ *
+ * Find a mapping by it's address.
++ *
++ * Returns:
++ * The amdgpu_bo_va_mapping matching for addr or NULL
++ *
+ */
+ struct amdgpu_bo_va_mapping *amdgpu_vm_bo_lookup_mapping(struct amdgpu_vm *vm,
+ uint64_t addr)
+@@ -2270,7 +2421,6 @@ void amdgpu_vm_bo_rmv(struct amdgpu_device *adev,
+ * amdgpu_vm_bo_invalidate - mark the bo as invalid
+ *
+ * @adev: amdgpu_device pointer
+- * @vm: requested vm
+ * @bo: amdgpu buffer object
+ *
+ * Mark @bo as invalid.
+@@ -2319,6 +2469,14 @@ void amdgpu_vm_bo_invalidate(struct amdgpu_device *adev,
+ }
+ }
+
++/**
++ * amdgpu_vm_get_block_size - calculate VM page table size as power of two
++ *
++ * @vm_size: VM size
++ *
++ * Returns:
++ * VM page table as power of two
++ */
+ static uint32_t amdgpu_vm_get_block_size(uint64_t vm_size)
+ {
+ /* Total bits covered by PD + PTs */
+@@ -2424,6 +2582,9 @@ static void amdgpu_inc_compute_vms(struct amdgpu_device *adev)
+ * @vm_context: Indicates if it GFX or Compute context
+ *
+ * Init @vm fields.
++ *
++ * Returns:
++ * 0 for success, error for failure.
+ */
+ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+ int vm_context, unsigned int pasid)
+@@ -2549,6 +2710,9 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+ /**
+ * amdgpu_vm_make_compute - Turn a GFX VM into a compute VM
+ *
++ * @adev: amdgpu_device pointer
++ * @vm: requested vm
++ *
+ * This only works on GFX VMs that don't have any BOs added and no
+ * page tables allocated yet.
+ *
+@@ -2562,7 +2726,8 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
+ * setting. May also switch to the compute power profile if this is
+ * the first compute VM.
+ *
+- * Returns 0 for success, -errno for errors.
++ * Returns:
++ * 0 for success, -errno for errors.
+ */
+ int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm)
+ {
+@@ -2747,8 +2912,10 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
+ * @adev: amdgpu_device pointer
+ * @pasid: PASID do identify the VM
+ *
+- * This function is expected to be called in interrupt context. Returns
+- * true if there was fault credit, false otherwise
++ * This function is expected to be called in interrupt context.
++ *
++ * Returns:
++ * True if there was fault credit, false otherwise
+ */
+ bool amdgpu_vm_pasid_fault_credit(struct amdgpu_device *adev,
+ unsigned int pasid)
+@@ -2832,6 +2999,16 @@ void amdgpu_vm_manager_fini(struct amdgpu_device *adev)
+ amdgpu_vmid_mgr_fini(adev);
+ }
+
++/**
++ * amdgpu_vm_ioctl - Manages VMID reservation for vm hubs.
++ *
++ * @dev: drm device pointer
++ * @data: drm_amdgpu_vm
++ * @filp: drm file pointer
++ *
++ * Returns:
++ * 0 for success, -errno for errors.
++ */
+ int amdgpu_vm_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
+ {
+ union drm_amdgpu_vm *args = data;
+--
+2.7.4
+