[Nouveau] [PATCH 5/9] drm/nouveau: stop using ttm_bo_wait
Christian König
ckoenig.leichtzumerken at gmail.com
Wed Jan 18 09:04:23 UTC 2023
Hi guys,
another ping for this. It's just a minor cleanup.
Dave/Daniel can you help me out here?
Thanks,
Christian.
Am 11.01.23 um 10:52 schrieb Christian König:
> Hi guys,
>
> can I get a quick ack for this?
>
> The patch has no functional change and is just a cleanup.
>
> Thanks,
> Christian.
>
> Am 25.11.22 um 11:21 schrieb Christian König:
>> TTM is just wrapping core DMA functionality here, remove the mid-layer.
>> No functional change.
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>> drivers/gpu/drm/nouveau/nouveau_bo.c | 6 +++++-
>> drivers/gpu/drm/nouveau/nouveau_gem.c | 11 ++++++++---
>> 2 files changed, 13 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c
>> b/drivers/gpu/drm/nouveau/nouveau_bo.c
>> index 335fa91ca4ad..288eebc70a67 100644
>> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
>> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
>> @@ -922,6 +922,7 @@ static void nouveau_bo_move_ntfy(struct
>> ttm_buffer_object *bo,
>> struct nouveau_mem *mem = new_reg ? nouveau_mem(new_reg) : NULL;
>> struct nouveau_bo *nvbo = nouveau_bo(bo);
>> struct nouveau_vma *vma;
>> + long ret;
>> /* ttm can now (stupidly) pass the driver bos it didn't
>> create... */
>> if (bo->destroy != nouveau_bo_del_ttm)
>> @@ -936,7 +937,10 @@ static void nouveau_bo_move_ntfy(struct
>> ttm_buffer_object *bo,
>> }
>> } else {
>> list_for_each_entry(vma, &nvbo->vma_list, head) {
>> - WARN_ON(ttm_bo_wait(bo, false, false));
>> + ret = dma_resv_wait_timeout(bo->base.resv,
>> + DMA_RESV_USAGE_BOOKKEEP,
>> + false, 15 * HZ);
>> + WARN_ON(ret <= 0);
>> nouveau_vma_unmap(vma);
>> }
>> }
>> diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c
>> b/drivers/gpu/drm/nouveau/nouveau_gem.c
>> index ac5793c96957..f77e44958037 100644
>> --- a/drivers/gpu/drm/nouveau/nouveau_gem.c
>> +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
>> @@ -645,7 +645,7 @@ nouveau_gem_pushbuf_reloc_apply(struct
>> nouveau_cli *cli,
>> struct drm_nouveau_gem_pushbuf_reloc *reloc,
>> struct drm_nouveau_gem_pushbuf_bo *bo)
>> {
>> - int ret = 0;
>> + long ret = 0;
>> unsigned i;
>> for (i = 0; i < req->nr_relocs; i++) {
>> @@ -703,9 +703,14 @@ nouveau_gem_pushbuf_reloc_apply(struct
>> nouveau_cli *cli,
>> data |= r->vor;
>> }
>> - ret = ttm_bo_wait(&nvbo->bo, false, false);
>> + ret = dma_resv_wait_timeout(nvbo->bo.base.resv,
>> + DMA_RESV_USAGE_BOOKKEEP,
>> + false, 15 * HZ);
>> + if (ret == 0)
>> + ret = -EBUSY;
>> if (ret) {
>> - NV_PRINTK(err, cli, "reloc wait_idle failed: %d\n", ret);
>> + NV_PRINTK(err, cli, "reloc wait_idle failed: %ld\n",
>> + ret);
>> break;
>> }
>
More information about the Nouveau
mailing list