Reviewed-by: Karol Herbst <kherbst@xxxxxxxxxx> On Thu, Jan 21, 2021 at 3:28 PM Bastian Beranek <bastian.beischer@xxxxxxxxxxxxxx> wrote: > > Commit f844eb485eb056ad3b67e49f95cbc6c685a73db4 introduced a regression for > NV50, which lead to visual artifacts, tearing and eventual crashes. > > In the changes of f844eb485eb056ad3b67e49f95cbc6c685a73db4 only the first line > was correctly translated to the new NVIDIA header macros: > > - PUSH_NVSQ(push, NV827C, 0x0110, 0, > - 0x0114, 0); > + PUSH_MTHD(push, NV827C, SET_PROCESSING, > + NVDEF(NV827C, SET_PROCESSING, USE_GAIN_OFS, DISABLE)); > > The lower part ("0x0114, 0") was probably omitted by accident. > > This patch restores the push of the missing data and fixes the regression. > > Signed-off-by: Bastian Beranek <bastian.beischer@xxxxxxxxxxxxxx> > Fixes: f844eb485eb056ad3b67e49f95cbc6c685a73db4 > Link: https://gitlab.freedesktop.org/drm/nouveau/-/issues/14 > --- > drivers/gpu/drm/nouveau/dispnv50/base507c.c | 6 +++++- > drivers/gpu/drm/nouveau/dispnv50/base827c.c | 6 +++++- > 2 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/dispnv50/base507c.c b/drivers/gpu/drm/nouveau/dispnv50/base507c.c > index 302d4e6fc52f..788db043a342 100644 > --- a/drivers/gpu/drm/nouveau/dispnv50/base507c.c > +++ b/drivers/gpu/drm/nouveau/dispnv50/base507c.c > @@ -88,7 +88,11 @@ base507c_image_set(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw) > NVVAL(NV507C, SET_CONVERSION, OFS, 0x64)); > } else { > PUSH_MTHD(push, NV507C, SET_PROCESSING, > - NVDEF(NV507C, SET_PROCESSING, USE_GAIN_OFS, DISABLE)); > + NVDEF(NV507C, SET_PROCESSING, USE_GAIN_OFS, DISABLE), > + > + SET_CONVERSION, > + NVVAL(NV507C, SET_CONVERSION, GAIN, 0) | > + NVVAL(NV507C, SET_CONVERSION, OFS, 0)); > } > > PUSH_MTHD(push, NV507C, SURFACE_SET_OFFSET(0, 0), asyw->image.offset[0] >> 8); > diff --git a/drivers/gpu/drm/nouveau/dispnv50/base827c.c b/drivers/gpu/drm/nouveau/dispnv50/base827c.c > index 18d34096f125..093d4ba6910e 100644 > --- a/drivers/gpu/drm/nouveau/dispnv50/base827c.c > +++ b/drivers/gpu/drm/nouveau/dispnv50/base827c.c > @@ -49,7 +49,11 @@ base827c_image_set(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw) > NVVAL(NV827C, SET_CONVERSION, OFS, 0x64)); > } else { > PUSH_MTHD(push, NV827C, SET_PROCESSING, > - NVDEF(NV827C, SET_PROCESSING, USE_GAIN_OFS, DISABLE)); > + NVDEF(NV827C, SET_PROCESSING, USE_GAIN_OFS, DISABLE), > + > + SET_CONVERSION, > + NVVAL(NV827C, SET_CONVERSION, GAIN, 0) | > + NVVAL(NV827C, SET_CONVERSION, OFS, 0)); > } > > PUSH_MTHD(push, NV827C, SURFACE_SET_OFFSET(0, 0), asyw->image.offset[0] >> 8, > -- > 2.30.0 > _______________________________________________ Nouveau mailing list Nouveau@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/nouveau