Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70b01f07 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/mc: allow for local definition of reset bits



With the addition of PTOP-specified reset bits, it makes more sense to
move the definitions here rather than in individual subdev
implementations.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 6defde5a
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -81,8 +81,21 @@ static void
nvkm_mc_reset_(struct nvkm_mc *mc, enum nvkm_devidx devidx)
{
	struct nvkm_device *device = mc->subdev.device;
	const struct nvkm_mc_map *map;
	u64 pmc_enable = 0;

	for (map = mc->func->reset; map && map->stat; map++) {
		if (map->unit == devidx) {
			pmc_enable = map->stat;
			break;
		}
	}

	if (!pmc_enable) {
		struct nvkm_subdev *subdev = nvkm_device_subdev(device, devidx);
	u64 pmc_enable = subdev->pmc_enable;
		pmc_enable = subdev->pmc_enable;
	}

	if (pmc_enable) {
		nvkm_mask(device, 0x000200, pmc_enable, 0x00000000);
		nvkm_mask(device, 0x000200, pmc_enable, pmc_enable);
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ struct nvkm_mc_func {
	void (*intr_rearm)(struct nvkm_mc *);
	/* retrieve pending interrupt mask (NV_PMC_INTR) */
	u32 (*intr_mask)(struct nvkm_mc *);
	const struct nvkm_mc_map *reset;
	void (*unk260)(struct nvkm_mc *, u32);
};