Commit 8c186c83 authored by Ben Skeggs's avatar Ben Skeggs Committed by Dave Airlie
Browse files

drm/nouveau/disp/tu102-: prepare for GSP-RM



- (temporarily) disable if GSP-RM detected, will be added later
- pass "suspend" flag down to chipset-specific DISP code

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-25-skeggsb@gmail.com
parent 0e55453f
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ nvkm_disp_fini(struct nvkm_engine *engine, bool suspend)
	struct nvkm_outp *outp;

	if (disp->func->fini)
		disp->func->fini(disp);
		disp->func->fini(disp, suspend);

	list_for_each_entry(outp, &disp->outps, head) {
		if (outp->func->fini)
@@ -208,6 +208,9 @@ nvkm_disp_dtor(struct nvkm_engine *engine)
		nvkm_head_del(&head);
	}

	if (disp->func->dtor)
		disp->func->dtor(disp);

	return data;
}

+4 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include "head.h"
#include "ior.h"

#include <subdev/gsp.h>
#include <subdev/timer.h>

#include <nvif/class.h>
@@ -147,5 +148,8 @@ int
ga102_disp_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
	       struct nvkm_disp **pdisp)
{
	if (nvkm_gsp_rm(device->gsp))
		return -ENODEV;

	return nvkm_disp_new_(&ga102_disp, device, type, inst, pdisp);
}
+1 −1
Original line number Diff line number Diff line
@@ -1154,7 +1154,7 @@ gf119_disp_intr(struct nvkm_disp *disp)
}

void
gf119_disp_fini(struct nvkm_disp *disp)
gf119_disp_fini(struct nvkm_disp *disp, bool suspend)
{
	struct nvkm_device *device = disp->engine.subdev.device;
	/* disable all interrupts */
+1 −1
Original line number Diff line number Diff line
@@ -1115,7 +1115,7 @@ gv100_disp_intr(struct nvkm_disp *disp)
}

void
gv100_disp_fini(struct nvkm_disp *disp)
gv100_disp_fini(struct nvkm_disp *disp, bool suspend)
{
	struct nvkm_device *device = disp->engine.subdev.device;
	nvkm_wr32(device, 0x611db0, 0x00000000);
+1 −1
Original line number Diff line number Diff line
@@ -1504,7 +1504,7 @@ nv50_disp_intr(struct nvkm_disp *disp)
}

void
nv50_disp_fini(struct nvkm_disp *disp)
nv50_disp_fini(struct nvkm_disp *disp, bool suspend)
{
	struct nvkm_device *device = disp->engine.subdev.device;
	/* disable all interrupts */
Loading