On Fri, Aug 20, 2021 at 4:30 AM Christian König <ckoenig.leichtzumerken@xxxxxxxxx> wrote: > > For some reason we run into an use case where a BO is already pinned > into GTT, but should be pinned into VRAM|GTT again. > > Handle that case gracefully as well. > > Signed-off-by: Christian König <christian.koenig@xxxxxxx> Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > index 795fa7445abe..92c8e6e7f346 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c > @@ -920,11 +920,6 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain, > return -EINVAL; > } > > - /* This assumes only APU display buffers are pinned with (VRAM|GTT). > - * See function amdgpu_display_supported_domains() > - */ > - domain = amdgpu_bo_get_preferred_pin_domain(adev, domain); > - > if (bo->tbo.pin_count) { > uint32_t mem_type = bo->tbo.resource->mem_type; > uint32_t mem_flags = bo->tbo.resource->placement; > @@ -949,6 +944,11 @@ int amdgpu_bo_pin_restricted(struct amdgpu_bo *bo, u32 domain, > return 0; > } > > + /* This assumes only APU display buffers are pinned with (VRAM|GTT). > + * See function amdgpu_display_supported_domains() > + */ > + domain = amdgpu_bo_get_preferred_pin_domain(adev, domain); > + > if (bo->tbo.base.import_attach) > dma_buf_pin(bo->tbo.base.import_attach); > > -- > 2.25.1 >