Skip to content

Commit

Permalink
nouveau: fix devinit paths to only handle display on GSP.
Browse files Browse the repository at this point in the history
This reverts:
nouveau/gsp: don't check devinit disable on GSP.
and applies a further fix.

It turns out the open gpu driver, checks this register,
but only for display.

Match that behaviour and in the turing path only disable
the display block. (ampere already only does displays).

Fixes: 5d4e8ae ("nouveau/gsp: don't check devinit disable on GSP.")
Reviewed-by: Danilo Krummrich <dakr@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240408064243.2219527-1-airlied@gmail.com
  • Loading branch information
airlied committed Apr 9, 2024
1 parent fec50db commit 718c4fb
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
12 changes: 8 additions & 4 deletions drivers/gpu/drm/nouveau/nvkm/subdev/devinit/gm107.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

#include <subdev/bios.h>
#include <subdev/bios/init.h>
#include <subdev/gsp.h>

void
gm107_devinit_disable(struct nvkm_devinit *init)
Expand All @@ -33,10 +34,13 @@ gm107_devinit_disable(struct nvkm_devinit *init)
u32 r021c00 = nvkm_rd32(device, 0x021c00);
u32 r021c04 = nvkm_rd32(device, 0x021c04);

if (r021c00 & 0x00000001)
nvkm_subdev_disable(device, NVKM_ENGINE_CE, 0);
if (r021c00 & 0x00000004)
nvkm_subdev_disable(device, NVKM_ENGINE_CE, 2);
/* gsp only wants to enable/disable display */
if (!nvkm_gsp_rm(device->gsp)) {
if (r021c00 & 0x00000001)
nvkm_subdev_disable(device, NVKM_ENGINE_CE, 0);
if (r021c00 & 0x00000004)
nvkm_subdev_disable(device, NVKM_ENGINE_CE, 2);
}
if (r021c04 & 0x00000001)
nvkm_subdev_disable(device, NVKM_ENGINE_DISP, 0);
}
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/nouveau/nvkm/subdev/devinit/r535.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ r535_devinit_new(const struct nvkm_devinit_func *hw,

rm->dtor = r535_devinit_dtor;
rm->post = hw->post;
rm->disable = hw->disable;

ret = nv50_devinit_new_(rm, device, type, inst, pdevinit);
if (ret)
Expand Down

0 comments on commit 718c4fb

Please sign in to comment.