diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2015-08-20 07:54:18 +0300 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2015-08-28 05:40:39 +0300 |
commit | 24bd0930bedea1182aaadc52757897d2b9b3ca99 (patch) | |
tree | 80e8673ff62805d8f53f8f304436fbb54f505474 /drivers/gpu/drm/nouveau/include | |
parent | 6157091177102638c7d94ffc159c0b157a1c9b56 (diff) | |
download | linux-24bd0930bedea1182aaadc52757897d2b9b3ca99.tar.xz |
drm/nouveau/client: convert to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/include')
-rw-r--r-- | drivers/gpu/drm/nouveau/include/nvif/client.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 36 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h | 1 |
3 files changed, 20 insertions, 19 deletions
diff --git a/drivers/gpu/drm/nouveau/include/nvif/client.h b/drivers/gpu/drm/nouveau/include/nvif/client.h index 4d5db8039576..4a7f6f7b836d 100644 --- a/drivers/gpu/drm/nouveau/include/nvif/client.h +++ b/drivers/gpu/drm/nouveau/include/nvif/client.h @@ -23,6 +23,6 @@ int nvif_client_resume(struct nvif_client *); #include <core/client.h> #define nvxx_client(a) ({ \ struct nvif_client *_client = (a); \ - nvkm_client(_client->object.priv); \ + (struct nvkm_client *)_client->object.priv; \ }) #endif diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/client.h b/drivers/gpu/drm/nouveau/include/nvkm/core/client.h index ff6331d7e9e6..4bb0acca8650 100644 --- a/drivers/gpu/drm/nouveau/include/nvkm/core/client.h +++ b/drivers/gpu/drm/nouveau/include/nvkm/core/client.h @@ -1,37 +1,29 @@ #ifndef __NVKM_CLIENT_H__ #define __NVKM_CLIENT_H__ -#include <core/namedb.h> +#include <core/object.h> struct nvkm_client { - struct nvkm_namedb namedb; - struct nvkm_handle *root; - u64 device; + struct nvkm_object object; char name[32]; + u64 device; u32 debug; - struct nvkm_vm *vm; + + struct nvkm_client_notify *notify[16]; + struct rb_root objroot; + + struct nvkm_handle *root; + bool super; void *data; - int (*ntfy)(const void *, u32, const void *, u32); - struct nvkm_client_notify *notify[16]; - struct rb_root objroot; + struct nvkm_vm *vm; }; bool nvkm_client_insert(struct nvkm_client *, struct nvkm_handle *); void nvkm_client_remove(struct nvkm_client *, struct nvkm_handle *); struct nvkm_handle *nvkm_client_search(struct nvkm_client *, u64 handle); -static inline struct nvkm_client * -nvkm_client(struct nvkm_object *object) -{ - while (object && object->parent) - object = object->parent; - if (object && nv_iclass(object, NV_CLIENT_CLASS)) - return container_of(object, struct nvkm_client, namedb.parent.object); - return NULL; -} - int nvkm_client_new(const char *name, u64 device, const char *cfg, const char *dbg, struct nvkm_client **); void nvkm_client_del(struct nvkm_client **); @@ -39,6 +31,14 @@ int nvkm_client_init(struct nvkm_client *); int nvkm_client_fini(struct nvkm_client *, bool suspend); const char *nvkm_client_name(void *obj); +static inline struct nvkm_client * +nvkm_client(struct nvkm_object *object) +{ + while (object && object->parent) + object = object->parent; + return container_of(object, struct nvkm_client, object); +} + int nvkm_client_notify_new(struct nvkm_object *, struct nvkm_event *, void *data, u32 size); int nvkm_client_notify_del(struct nvkm_client *, int index); diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h b/drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h index aa465def4f95..dfa24d233321 100644 --- a/drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h +++ b/drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h @@ -1,6 +1,7 @@ #ifndef __NVKM_ENGCTX_H__ #define __NVKM_ENGCTX_H__ #include <core/gpuobj.h> +#include <core/parent.h> #include <subdev/mmu.h> |