Lyude Paul
2020-Aug-10 21:18 UTC
[Nouveau] [PATCH 0/2] drm/nouveau: Small CRC fixes for 5.9
Just two CRC related fixes for the new CRC functionality in 5.9. One of these unbreaks CRC reporting on volta+, which accidentally got broken when converting over to nvidia's class headers. The other simply removes an unneeded CRC method call that's been hiding in head907d_mode() for quite a while now. Lyude Paul (2): drm/nouveau/kms/nv140-: Include correct push header in crcc37d.c drm/nouveau/kms/nv50-: Don't call HEAD_SET_CRC_CONTROL in head907d_mode() drivers/gpu/drm/nouveau/dispnv50/crcc37d.c | 2 +- drivers/gpu/drm/nouveau/dispnv50/head907d.c | 11 ++--------- 2 files changed, 3 insertions(+), 10 deletions(-) -- 2.26.2
Lyude Paul
2020-Aug-10 21:18 UTC
[Nouveau] [PATCH 1/2] drm/nouveau/kms/nv140-: Include correct push header in crcc37d.c
Looks like when we converted everything over to Nvidia's class headers, we mistakenly included the nvif/push507b.h instead of nvif/pushc37b.h, which resulted in breaking CRC reporting for volta+: nouveau 0000:1f:00.0: disp: chid 0 stat 10003361 reason 3 [RESERVED_METHOD] mthd 0d84 data 00000000 code 00000000 nouveau 0000:1f:00.0: disp: chid 0 stat 10003360 reason 3 [RESERVED_METHOD] mthd 0d80 data 00000000 code 00000000 nouveau 0000:1f:00.0: DRM: CRC notifier ctx for head 3 not finished after 50ms So, fix that. Signed-off-by: Lyude Paul <lyude at redhat.com> Fixes: c4b27bc8682c ("drm/nouveau/kms/nv50-: convert core crc_set_src() to new push macros") --- drivers/gpu/drm/nouveau/dispnv50/crcc37d.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/crcc37d.c b/drivers/gpu/drm/nouveau/dispnv50/crcc37d.c index 9afe9a87bde0c..814e5bd974460 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/crcc37d.c +++ b/drivers/gpu/drm/nouveau/dispnv50/crcc37d.c @@ -6,7 +6,7 @@ #include "disp.h" #include "head.h" -#include <nvif/push507c.h> +#include <nvif/pushc37b.h> #include <nvhw/class/clc37d.h> -- 2.26.2
Lyude Paul
2020-Aug-10 21:18 UTC
[Nouveau] [PATCH 2/2] drm/nouveau/kms/nv50-: Don't call HEAD_SET_CRC_CONTROL in head907d_mode()
This was a mistake that was present before, but never got noticed until we converted over to using nvidia's class headers for display programming. Luckily though it never caused any problems, since we always end up calling crc907d_set_src() after head907d_mode(). So, let's get rid of this. Signed-off-by: Lyude Paul <lyude at redhat.com> --- drivers/gpu/drm/nouveau/dispnv50/head907d.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/head907d.c b/drivers/gpu/drm/nouveau/dispnv50/head907d.c index 8f860e9c52247..85648d790743f 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/head907d.c +++ b/drivers/gpu/drm/nouveau/dispnv50/head907d.c @@ -322,7 +322,7 @@ head907d_mode(struct nv50_head *head, struct nv50_head_atom *asyh) const int i = head->base.index; int ret; - if ((ret = PUSH_WAIT(push, 14))) + if ((ret = PUSH_WAIT(push, 13))) return ret; PUSH_MTHD(push, NV907D, HEAD_SET_OVERSCAN_COLOR(i), @@ -353,14 +353,7 @@ head907d_mode(struct nv50_head *head, struct nv50_head_atom *asyh) PUSH_MTHD(push, NV907D, HEAD_SET_DEFAULT_BASE_COLOR(i), NVVAL(NV907D, HEAD_SET_DEFAULT_BASE_COLOR, RED, 0) | NVVAL(NV907D, HEAD_SET_DEFAULT_BASE_COLOR, GREEN, 0) | - NVVAL(NV907D, HEAD_SET_DEFAULT_BASE_COLOR, BLUE, 0), - - HEAD_SET_CRC_CONTROL(i), - NVDEF(NV907D, HEAD_SET_CRC_CONTROL, CONTROLLING_CHANNEL, CORE) | - NVDEF(NV907D, HEAD_SET_CRC_CONTROL, EXPECT_BUFFER_COLLAPSE, FALSE) | - NVDEF(NV907D, HEAD_SET_CRC_CONTROL, TIMESTAMP_MODE, FALSE) | - NVDEF(NV907D, HEAD_SET_CRC_CONTROL, PRIMARY_OUTPUT, NONE) | - NVDEF(NV907D, HEAD_SET_CRC_CONTROL, SECONDARY_OUTPUT, NONE)); + NVVAL(NV907D, HEAD_SET_DEFAULT_BASE_COLOR, BLUE, 0)); PUSH_MTHD(push, NV907D, HEAD_SET_PIXEL_CLOCK_FREQUENCY(i), NVVAL(NV907D, HEAD_SET_PIXEL_CLOCK_FREQUENCY, HERTZ, m->clock * 1000) | -- 2.26.2
Ben Skeggs
2020-Aug-10 23:23 UTC
[Nouveau] [PATCH 0/2] drm/nouveau: Small CRC fixes for 5.9
On Tue, 11 Aug 2020 at 07:18, Lyude Paul <lyude at redhat.com> wrote:> > Just two CRC related fixes for the new CRC functionality in 5.9. One of > these unbreaks CRC reporting on volta+, which accidentally got broken > when converting over to nvidia's class headers. The other simply removes > an unneeded CRC method call that's been hiding in head907d_mode() for > quite a while now. > > Lyude Paul (2): > drm/nouveau/kms/nv140-: Include correct push header in crcc37d.cGot them both. I already had this first one in my tree, but your description was better, so I took yours. Thanks, Ben.> drm/nouveau/kms/nv50-: Don't call HEAD_SET_CRC_CONTROL in > head907d_mode() > > drivers/gpu/drm/nouveau/dispnv50/crcc37d.c | 2 +- > drivers/gpu/drm/nouveau/dispnv50/head907d.c | 11 ++--------- > 2 files changed, 3 insertions(+), 10 deletions(-) > > -- > 2.26.2 > > _______________________________________________ > Nouveau mailing list > Nouveau at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/nouveau
Seemingly Similar Threads
- [PATCH RFC v1 00/52] drm/crtc: Rename struct drm_crtc::dev to drm_dev
- [PATCH RFC v1 00/52] drm/crtc: Rename struct drm_crtc::dev to drm_dev
- [PATCH v3] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
- [PATCH v5 1/2] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
- [PATCH 0/2] drm/nouveau: Backport SOR/PIOR probing fixes for v5.8