[PATCH] drm/amdgpu: Only clear dumb buffers if ring is enabled
Christian König
ckoenig.leichtzumerken at gmail.com
Mon Mar 11 18:40:06 UTC 2019
Am 11.03.19 um 19:16 schrieb Nicholas Kazlauskas:
> The buffers should be cleared when possible but we also don't want
> buffer creation to fail in the rare case where the ring isn't ready
> during the call. This could happen during some suspend/resume sequences.
>
> Cc: Christian König <ckoenig.leichtzumerken at gmail.com>
> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>
Reviewed-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> index a58072bbc9b8..9ee8d7a3c6d4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
> @@ -733,18 +733,25 @@ int amdgpu_mode_dumb_create(struct drm_file *file_priv,
> struct amdgpu_device *adev = dev->dev_private;
> struct drm_gem_object *gobj;
> uint32_t handle;
> + u64 flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
> u32 domain;
> int r;
>
> + /*
> + * The buffer returned from this function should be cleared, but
> + * it can only be done if the ring is enabled or we'll fail to
> + * create the buffer.
> + */
> + if (adev->mman.buffer_funcs_enabled)
> + flags |= AMDGPU_GEM_CREATE_VRAM_CLEARED;
> +
> args->pitch = amdgpu_align_pitch(adev, args->width,
> DIV_ROUND_UP(args->bpp, 8), 0);
> args->size = (u64)args->pitch * args->height;
> args->size = ALIGN(args->size, PAGE_SIZE);
> domain = amdgpu_bo_get_preferred_pin_domain(adev,
> amdgpu_display_supported_domains(adev));
> - r = amdgpu_gem_object_create(adev, args->size, 0, domain,
> - AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED |
> - AMDGPU_GEM_CREATE_VRAM_CLEARED,
> + r = amdgpu_gem_object_create(adev, args->size, 0, domain, flags,
> ttm_bo_type_device, NULL, &gobj);
> if (r)
> return -ENOMEM;
More information about the amd-gfx
mailing list