Commit 718c4fb2 authored by Dave Airlie's avatar Dave Airlie Committed by Dave Airlie
Browse files

nouveau: fix devinit paths to only handle display on GSP.



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: 5d4e8ae6 ("nouveau/gsp: don't check devinit disable on GSP.")
Reviewed-by: default avatarDanilo Krummrich <dakr@redhat.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240408064243.2219527-1-airlied@gmail.com
parent fec50db7
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -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)
@@ -33,10 +34,13 @@ gm107_devinit_disable(struct nvkm_devinit *init)
	u32 r021c00 = nvkm_rd32(device, 0x021c00);
	u32 r021c04 = nvkm_rd32(device, 0x021c04);

	/* 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);
}
+1 −0
Original line number Diff line number Diff line
@@ -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)