Re: [PATCH 2/2] drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows

2021-09-06 Thread Karol Herbst
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

2021-09-05 Thread Ben Skeggs
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