Re: [PATCH 2/2] drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows
On Mon, Sep 6, 2021 at 2:56 AM Ben Skeggs wrote: > > From: Ben Skeggs > > Prevent NVD core channel error code 67 occuring and hanging display, > managed to reproduce on GA102 while testing suspend/resume scenarios. > > Required extension of earlier commit to fix interactions with EFI. > Reviewed-by: Karol Herbst > Fixes: e78b1b545c6c ("drm/nouveau/kms/nv50: workaround EFI GOP window channel > format differences"). > Signed-off-by: Ben Skeggs > Cc: Lyude Paul > Cc: Karol Herbst > Cc: # v5.12+ > --- > drivers/gpu/drm/nouveau/dispnv50/head.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/nouveau/dispnv50/head.c > b/drivers/gpu/drm/nouveau/dispnv50/head.c > index f8438a886b64..c3c57be54e1c 100644 > --- a/drivers/gpu/drm/nouveau/dispnv50/head.c > +++ b/drivers/gpu/drm/nouveau/dispnv50/head.c > @@ -52,6 +52,7 @@ nv50_head_flush_clr(struct nv50_head *head, > void > nv50_head_flush_set_wndw(struct nv50_head *head, struct nv50_head_atom *asyh) > { > + if (asyh->set.curs ) head->func->curs_set(head, asyh); > if (asyh->set.olut ) { > asyh->olut.offset = nv50_lut_load(>olut, > asyh->olut.buffer, > @@ -67,7 +68,6 @@ nv50_head_flush_set(struct nv50_head *head, struct > nv50_head_atom *asyh) > if (asyh->set.view ) head->func->view(head, asyh); > if (asyh->set.mode ) head->func->mode(head, asyh); > if (asyh->set.core ) head->func->core_set(head, asyh); > - if (asyh->set.curs ) head->func->curs_set(head, asyh); > if (asyh->set.base ) head->func->base(head, asyh); > if (asyh->set.ovly ) head->func->ovly(head, asyh); > if (asyh->set.dither ) head->func->dither (head, asyh); > -- > 2.31.1 >
[PATCH 2/2] drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows
From: Ben Skeggs Prevent NVD core channel error code 67 occuring and hanging display, managed to reproduce on GA102 while testing suspend/resume scenarios. Required extension of earlier commit to fix interactions with EFI. Fixes: e78b1b545c6c ("drm/nouveau/kms/nv50: workaround EFI GOP window channel format differences"). Signed-off-by: Ben Skeggs Cc: Lyude Paul Cc: Karol Herbst Cc: # v5.12+ --- drivers/gpu/drm/nouveau/dispnv50/head.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/head.c b/drivers/gpu/drm/nouveau/dispnv50/head.c index f8438a886b64..c3c57be54e1c 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/head.c +++ b/drivers/gpu/drm/nouveau/dispnv50/head.c @@ -52,6 +52,7 @@ nv50_head_flush_clr(struct nv50_head *head, void nv50_head_flush_set_wndw(struct nv50_head *head, struct nv50_head_atom *asyh) { + if (asyh->set.curs ) head->func->curs_set(head, asyh); if (asyh->set.olut ) { asyh->olut.offset = nv50_lut_load(>olut, asyh->olut.buffer, @@ -67,7 +68,6 @@ nv50_head_flush_set(struct nv50_head *head, struct nv50_head_atom *asyh) if (asyh->set.view ) head->func->view(head, asyh); if (asyh->set.mode ) head->func->mode(head, asyh); if (asyh->set.core ) head->func->core_set(head, asyh); - if (asyh->set.curs ) head->func->curs_set(head, asyh); if (asyh->set.base ) head->func->base(head, asyh); if (asyh->set.ovly ) head->func->ovly(head, asyh); if (asyh->set.dither ) head->func->dither (head, asyh); -- 2.31.1