Commit b495396c authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/nvif: give every mmu object a human-readable identifier



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
parent bd21080e
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -31,8 +31,9 @@ struct nvif_mmu {
	u8 *kind;
};

int nvif_mmu_init(struct nvif_object *, s32 oclass, struct nvif_mmu *);
void nvif_mmu_fini(struct nvif_mmu *);
int nvif_mmu_ctor(struct nvif_object *, const char *name, s32 oclass,
		  struct nvif_mmu *);
void nvif_mmu_dtor(struct nvif_mmu *);

static inline bool
nvif_mmu_kind_valid(struct nvif_mmu *mmu, u8 kind)
+3 −2
Original line number Diff line number Diff line
@@ -178,7 +178,7 @@ nouveau_cli_fini(struct nouveau_cli *cli)
	usif_client_fini(cli);
	nouveau_vmm_fini(&cli->svm);
	nouveau_vmm_fini(&cli->vmm);
	nvif_mmu_fini(&cli->mmu);
	nvif_mmu_dtor(&cli->mmu);
	nvif_device_dtor(&cli->device);
	mutex_lock(&cli->drm->master.lock);
	nvif_client_dtor(&cli->base);
@@ -254,7 +254,8 @@ nouveau_cli_init(struct nouveau_drm *drm, const char *sname,
		goto done;
	}

	ret = nvif_mmu_init(&cli->device.object, mmus[ret].oclass, &cli->mmu);
	ret = nvif_mmu_ctor(&cli->device.object, "drmMmu", mmus[ret].oclass,
			    &cli->mmu);
	if (ret) {
		NV_PRINTK(err, cli, "MMU allocation failed: %d\n", ret);
		goto done;
+6 −5
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@
#include <nvif/if0008.h>

void
nvif_mmu_fini(struct nvif_mmu *mmu)
nvif_mmu_dtor(struct nvif_mmu *mmu)
{
	kfree(mmu->kind);
	kfree(mmu->type);
@@ -34,7 +34,8 @@ nvif_mmu_fini(struct nvif_mmu *mmu)
}

int
nvif_mmu_init(struct nvif_object *parent, s32 oclass, struct nvif_mmu *mmu)
nvif_mmu_ctor(struct nvif_object *parent, const char *name, s32 oclass,
	      struct nvif_mmu *mmu)
{
	static const struct nvif_mclass mems[] = {
		{ NVIF_CLASS_MEM_GF100, -1 },
@@ -50,8 +51,8 @@ nvif_mmu_init(struct nvif_object *parent, s32 oclass, struct nvif_mmu *mmu)
	mmu->type = NULL;
	mmu->kind = NULL;

	ret = nvif_object_ctor(parent, "nvifMmu", 0, oclass, &args,
			       sizeof(args), &mmu->object);
	ret = nvif_object_ctor(parent, name ? name : "nvifMmu", 0, oclass,
			       &args, sizeof(args), &mmu->object);
	if (ret)
		goto done;

@@ -127,6 +128,6 @@ nvif_mmu_init(struct nvif_object *parent, s32 oclass, struct nvif_mmu *mmu)

done:
	if (ret)
		nvif_mmu_fini(mmu);
		nvif_mmu_dtor(mmu);
	return ret;
}