[PATCH 07/16] drm/radeon: use DMA_RESV_USAGE_KERNEL
Daniel Vetter
daniel at ffwll.ch
Wed Apr 6 12:43:39 UTC 2022
On Wed, Apr 06, 2022 at 09:51:23AM +0200, Christian König wrote:
> Always wait for kernel fences before kmap and not only for UVD kmaps.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/radeon/radeon_object.c | 7 ++++++-
> drivers/gpu/drm/radeon/radeon_uvd.c | 12 ++----------
> 2 files changed, 8 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
> index cb5c4aa45cef..6c4a6802ca96 100644
> --- a/drivers/gpu/drm/radeon/radeon_object.c
> +++ b/drivers/gpu/drm/radeon/radeon_object.c
> @@ -219,7 +219,12 @@ int radeon_bo_create(struct radeon_device *rdev,
> int radeon_bo_kmap(struct radeon_bo *bo, void **ptr)
> {
> bool is_iomem;
> - int r;
> + long r;
> +
> + r = dma_resv_wait_timeout(bo->tbo.base.resv, DMA_RESV_USAGE_KERNEL,
> + false, MAX_SCHEDULE_TIMEOUT);
Maybe another reason why we should push this wait into ttm kmap helpers?
Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> + if (r < 0)
> + return r;
>
> if (bo->kptr) {
> if (ptr) {
> diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c
> index a50750740ab0..a2cda184b2b2 100644
> --- a/drivers/gpu/drm/radeon/radeon_uvd.c
> +++ b/drivers/gpu/drm/radeon/radeon_uvd.c
> @@ -470,24 +470,16 @@ static int radeon_uvd_cs_msg(struct radeon_cs_parser *p, struct radeon_bo *bo,
> int32_t *msg, msg_type, handle;
> unsigned img_size = 0;
> void *ptr;
> - long r;
> - int i;
> + int i, r;
>
> if (offset & 0x3F) {
> DRM_ERROR("UVD messages must be 64 byte aligned!\n");
> return -EINVAL;
> }
>
> - r = dma_resv_wait_timeout(bo->tbo.base.resv, DMA_RESV_USAGE_WRITE,
> - false, MAX_SCHEDULE_TIMEOUT);
> - if (r <= 0) {
> - DRM_ERROR("Failed waiting for UVD message (%ld)!\n", r);
> - return r ? r : -ETIME;
> - }
> -
> r = radeon_bo_kmap(bo, &ptr);
> if (r) {
> - DRM_ERROR("Failed mapping the UVD message (%ld)!\n", r);
> + DRM_ERROR("Failed mapping the UVD message (%d)!\n", r);
> return r;
> }
>
> --
> 2.25.1
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the dri-devel
mailing list