Commit 05da248b authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/core/client: destroy client objects over nvif



Preparation for supporting subclients, and also good for consistency.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 2c3af924
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -71,15 +71,6 @@ nvkm_client_suspend(void *priv)
	return nvkm_object_fini(&client->object, true);
}

static void
nvkm_client_driver_fini(void *priv)
{
	struct nvkm_client *client = priv;
	struct nvkm_object *object = &client->object;
	nvkm_object_fini(object, false);
	nvkm_object_del(&object);
}

static int
nvkm_client_ntfy(const void *header, u32 length, const void *data, u32 size)
{
@@ -128,7 +119,6 @@ const struct nvif_driver
nvif_driver_nvkm = {
	.name = "nvkm",
	.init = nvkm_client_driver_init,
	.fini = nvkm_client_driver_fini,
	.suspend = nvkm_client_suspend,
	.resume = nvkm_client_resume,
	.ioctl = nvkm_client_ioctl,
+3 −3
Original line number Diff line number Diff line
@@ -47,11 +47,11 @@ nvif_client_resume(struct nvif_client *client)
void
nvif_client_fini(struct nvif_client *client)
{
	nvif_object_fini(&client->object);
	if (client->driver) {
		if (client->driver->fini)
			client->driver->fini(client->object.priv);
		client->driver = NULL;
		client->object.client = NULL;
		nvif_object_fini(&client->object);
	}
}

+7 −6
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ nvkm_ioctl_del(struct nvkm_client *client,
		nvkm_object_del(&object);
	}

	return ret;
	return ret ? ret : 1;
}

static int
@@ -441,12 +441,13 @@ nvkm_ioctl(struct nvkm_client *client, bool supervisor,
				      &args->v0.route, &args->v0.token);
	}

	if (ret != 1) {
		nvif_ioctl(object, "return %d\n", ret);
		if (hack) {
			*hack = client->data;
			client->data = NULL;
		}
	}

	client->super = false;
	return ret;
}