diff options
Diffstat (limited to 'drivers/gpu/drm/nouveau')
| -rw-r--r-- | drivers/gpu/drm/nouveau/dispnv50/curs507a.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/dispnv50/wndw.c | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/drm/nouveau/dispnv50/curs507a.c b/drivers/gpu/drm/nouveau/dispnv50/curs507a.c index 291c08117ab6..397143b639c6 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/curs507a.c +++ b/drivers/gpu/drm/nouveau/dispnv50/curs507a.c | |||
| @@ -132,7 +132,7 @@ curs507a_new_(const struct nv50_wimm_func *func, struct nouveau_drm *drm, | |||
| 132 | 132 | ||
| 133 | nvif_object_map(&wndw->wimm.base.user, NULL, 0); | 133 | nvif_object_map(&wndw->wimm.base.user, NULL, 0); |
| 134 | wndw->immd = func; | 134 | wndw->immd = func; |
| 135 | wndw->ctxdma.parent = &disp->core->chan.base.user; | 135 | wndw->ctxdma.parent = NULL; |
| 136 | return 0; | 136 | return 0; |
| 137 | } | 137 | } |
| 138 | 138 | ||
diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouveau/dispnv50/wndw.c index 224963b533a6..c5a9bc1af5af 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c | |||
| @@ -444,14 +444,17 @@ nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) | |||
| 444 | if (ret) | 444 | if (ret) |
| 445 | return ret; | 445 | return ret; |
| 446 | 446 | ||
| 447 | ctxdma = nv50_wndw_ctxdma_new(wndw, fb); | 447 | if (wndw->ctxdma.parent) { |
| 448 | if (IS_ERR(ctxdma)) { | 448 | ctxdma = nv50_wndw_ctxdma_new(wndw, fb); |
| 449 | nouveau_bo_unpin(fb->nvbo); | 449 | if (IS_ERR(ctxdma)) { |
| 450 | return PTR_ERR(ctxdma); | 450 | nouveau_bo_unpin(fb->nvbo); |
| 451 | return PTR_ERR(ctxdma); | ||
| 452 | } | ||
| 453 | |||
| 454 | asyw->image.handle[0] = ctxdma->object.handle; | ||
| 451 | } | 455 | } |
| 452 | 456 | ||
| 453 | asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.resv); | 457 | asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.resv); |
| 454 | asyw->image.handle[0] = ctxdma->object.handle; | ||
| 455 | asyw->image.offset[0] = fb->nvbo->bo.offset; | 458 | asyw->image.offset[0] = fb->nvbo->bo.offset; |
| 456 | 459 | ||
| 457 | if (wndw->func->prepare) { | 460 | if (wndw->func->prepare) { |
