]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
crypto: akcipher - Drop sign/verify operations
[linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_device.c
index f4628412dac44b4dcf8ff3a29ae2b6fe01dd1548..c2394c8b4d6b21f5dfc05da533007f3c32cf191d 100644 (file)
@@ -4107,9 +4107,6 @@ int amdgpu_device_init(struct amdgpu_device *adev,
        spin_lock_init(&adev->mm_stats.lock);
        spin_lock_init(&adev->wb.lock);
 
-       INIT_LIST_HEAD(&adev->shadow_list);
-       mutex_init(&adev->shadow_list_lock);
-
        INIT_LIST_HEAD(&adev->reset_list);
 
        INIT_LIST_HEAD(&adev->ras_list);
@@ -5029,80 +5026,6 @@ static int amdgpu_device_ip_post_soft_reset(struct amdgpu_device *adev)
        return 0;
 }
 
-/**
- * amdgpu_device_recover_vram - Recover some VRAM contents
- *
- * @adev: amdgpu_device pointer
- *
- * Restores the contents of VRAM buffers from the shadows in GTT.  Used to
- * restore things like GPUVM page tables after a GPU reset where
- * the contents of VRAM might be lost.
- *
- * Returns:
- * 0 on success, negative error code on failure.
- */
-static int amdgpu_device_recover_vram(struct amdgpu_device *adev)
-{
-       struct dma_fence *fence = NULL, *next = NULL;
-       struct amdgpu_bo *shadow;
-       struct amdgpu_bo_vm *vmbo;
-       long r = 1, tmo;
-
-       if (amdgpu_sriov_runtime(adev))
-               tmo = msecs_to_jiffies(8000);
-       else
-               tmo = msecs_to_jiffies(100);
-
-       dev_info(adev->dev, "recover vram bo from shadow start\n");
-       mutex_lock(&adev->shadow_list_lock);
-       list_for_each_entry(vmbo, &adev->shadow_list, shadow_list) {
-               /* If vm is compute context or adev is APU, shadow will be NULL */
-               if (!vmbo->shadow)
-                       continue;
-               shadow = vmbo->shadow;
-
-               /* No need to recover an evicted BO */
-               if (!shadow->tbo.resource ||
-                   shadow->tbo.resource->mem_type != TTM_PL_TT ||
-                   shadow->tbo.resource->start == AMDGPU_BO_INVALID_OFFSET ||
-                   shadow->parent->tbo.resource->mem_type != TTM_PL_VRAM)
-                       continue;
-
-               r = amdgpu_bo_restore_shadow(shadow, &next);
-               if (r)
-                       break;
-
-               if (fence) {
-                       tmo = dma_fence_wait_timeout(fence, false, tmo);
-                       dma_fence_put(fence);
-                       fence = next;
-                       if (tmo == 0) {
-                               r = -ETIMEDOUT;
-                               break;
-                       } else if (tmo < 0) {
-                               r = tmo;
-                               break;
-                       }
-               } else {
-                       fence = next;
-               }
-       }
-       mutex_unlock(&adev->shadow_list_lock);
-
-       if (fence)
-               tmo = dma_fence_wait_timeout(fence, false, tmo);
-       dma_fence_put(fence);
-
-       if (r < 0 || tmo <= 0) {
-               dev_err(adev->dev, "recover vram bo from shadow failed, r is %ld, tmo is %ld\n", r, tmo);
-               return -EIO;
-       }
-
-       dev_info(adev->dev, "recover vram bo from shadow done\n");
-       return 0;
-}
-
-
 /**
  * amdgpu_device_reset_sriov - reset ASIC for SR-IOV vf
  *
@@ -5165,12 +5088,8 @@ static int amdgpu_device_reset_sriov(struct amdgpu_device *adev,
        if (r)
                return r;
 
-       if (adev->virt.gim_feature & AMDGIM_FEATURE_GIM_FLR_VRAMLOST) {
+       if (adev->virt.gim_feature & AMDGIM_FEATURE_GIM_FLR_VRAMLOST)
                amdgpu_inc_vram_lost(adev);
-               r = amdgpu_device_recover_vram(adev);
-       }
-       if (r)
-               return r;
 
        /* need to be called during full access so we can't do it later like
         * bare-metal does.
@@ -5569,9 +5488,7 @@ out:
                        }
                }
 
-               if (!r)
-                       r = amdgpu_device_recover_vram(tmp_adev);
-               else
+               if (r)
                        tmp_adev->asic_reset_res = r;
        }
 
@@ -6189,7 +6106,7 @@ bool amdgpu_device_is_peer_accessible(struct amdgpu_device *adev,
                p2p_addressable = !(adev->gmc.aper_base & address_mask ||
                                     aper_limit & address_mask);
        }
-       return is_large_bar && p2p_access && p2p_addressable;
+       return pcie_p2p && is_large_bar && p2p_access && p2p_addressable;
 #else
        return false;
 #endif
This page took 0.034243 seconds and 4 git commands to generate.