Loading drivers/gpu/drm/nouveau/include/nvkm/core/client.h +5 −6 Original line number Diff line number Diff line Loading @@ -23,13 +23,12 @@ 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(void *obj) nvkm_client(struct nvkm_object *object) { struct nvkm_object *client = nv_object(obj); while (client && client->parent) client = client->parent; if (client && nv_iclass(client, NV_CLIENT_CLASS)) return (void *)client; 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; } Loading drivers/gpu/drm/nouveau/include/nvkm/core/handle.h +1 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ struct nvkm_handle { u64 handle; }; int nvkm_handle_create(struct nvkm_object *, u32 parent, u32 handle, int nvkm_handle_create(struct nvkm_handle *, u32 handle, struct nvkm_object *, struct nvkm_handle **); void nvkm_handle_destroy(struct nvkm_handle *); int nvkm_handle_init(struct nvkm_handle *); Loading drivers/gpu/drm/nouveau/nvkm/core/client.c +1 −2 Original line number Diff line number Diff line Loading @@ -294,8 +294,7 @@ nvkm_client_new(const char *name, u64 device, const char *cfg, if (ret) return ret; ret = nvkm_handle_create(nv_object(client), ~0, ~0, nv_object(client), &client->root); ret = nvkm_handle_create(NULL, ~0, nv_object(client), &client->root); if (ret) return ret; Loading drivers/gpu/drm/nouveau/nvkm/core/engctx.c +1 −1 Original line number Diff line number Diff line Loading @@ -104,7 +104,7 @@ void nvkm_engctx_destroy(struct nvkm_engctx *engctx) { struct nvkm_engine *engine = engctx->gpuobj.object.engine; struct nvkm_client *client = nvkm_client(engctx); struct nvkm_client *client = nvkm_client(&engctx->gpuobj.object); unsigned long save; nvkm_gpuobj_unmap(&engctx->vma); Loading drivers/gpu/drm/nouveau/nvkm/core/handle.c +24 −24 Original line number Diff line number Diff line Loading @@ -94,15 +94,15 @@ nvkm_handle_fini(struct nvkm_handle *handle, bool suspend) } int nvkm_handle_create(struct nvkm_object *parent, u32 _parent, u32 _handle, nvkm_handle_create(struct nvkm_handle *parent, u32 _handle, struct nvkm_object *object, struct nvkm_handle **phandle) { struct nvkm_object *namedb; struct nvkm_handle *handle; int ret; namedb = parent; while (!nv_iclass(namedb, NV_NAMEDB_CLASS)) namedb = parent ? parent->object : NULL; while (namedb && !nv_iclass(namedb, NV_NAMEDB_CLASS)) namedb = namedb->parent; handle = kzalloc(sizeof(*handle), GFP_KERNEL); Loading @@ -114,15 +114,23 @@ nvkm_handle_create(struct nvkm_object *parent, u32 _parent, u32 _handle, handle->name = _handle; handle->priv = ~0; RB_CLEAR_NODE(&handle->rb); handle->parent = parent; nvkm_object_ref(object, &handle->object); ret = nvkm_namedb_insert(nv_namedb(namedb), _handle, object, handle); if (namedb) { ret = nvkm_namedb_insert(nv_namedb(namedb), _handle, object, handle); if (ret) { kfree(handle); return ret; } } if (nv_parent(parent)->object_attach) { ret = nv_parent(parent)->object_attach(parent, object, _handle); if (parent) { if (nv_iclass(parent->object, NV_PARENT_CLASS) && nv_parent(parent->object)->object_attach) { ret = nv_parent(parent->object)-> object_attach(parent->object, object, _handle); if (ret < 0) { nvkm_handle_destroy(handle); return ret; Loading @@ -131,15 +139,7 @@ nvkm_handle_create(struct nvkm_object *parent, u32 _parent, u32 _handle, handle->priv = ret; } if (object != namedb) { while (!nv_iclass(namedb, NV_CLIENT_CLASS)) namedb = namedb->parent; handle->parent = nvkm_namedb_get(nv_namedb(namedb), _parent); if (handle->parent) { list_add(&handle->head, &handle->parent->tree); nvkm_namedb_put(handle->parent); } } hprintk(handle, TRACE, "created\n"); Loading Loading
drivers/gpu/drm/nouveau/include/nvkm/core/client.h +5 −6 Original line number Diff line number Diff line Loading @@ -23,13 +23,12 @@ 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(void *obj) nvkm_client(struct nvkm_object *object) { struct nvkm_object *client = nv_object(obj); while (client && client->parent) client = client->parent; if (client && nv_iclass(client, NV_CLIENT_CLASS)) return (void *)client; 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; } Loading
drivers/gpu/drm/nouveau/include/nvkm/core/handle.h +1 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ struct nvkm_handle { u64 handle; }; int nvkm_handle_create(struct nvkm_object *, u32 parent, u32 handle, int nvkm_handle_create(struct nvkm_handle *, u32 handle, struct nvkm_object *, struct nvkm_handle **); void nvkm_handle_destroy(struct nvkm_handle *); int nvkm_handle_init(struct nvkm_handle *); Loading
drivers/gpu/drm/nouveau/nvkm/core/client.c +1 −2 Original line number Diff line number Diff line Loading @@ -294,8 +294,7 @@ nvkm_client_new(const char *name, u64 device, const char *cfg, if (ret) return ret; ret = nvkm_handle_create(nv_object(client), ~0, ~0, nv_object(client), &client->root); ret = nvkm_handle_create(NULL, ~0, nv_object(client), &client->root); if (ret) return ret; Loading
drivers/gpu/drm/nouveau/nvkm/core/engctx.c +1 −1 Original line number Diff line number Diff line Loading @@ -104,7 +104,7 @@ void nvkm_engctx_destroy(struct nvkm_engctx *engctx) { struct nvkm_engine *engine = engctx->gpuobj.object.engine; struct nvkm_client *client = nvkm_client(engctx); struct nvkm_client *client = nvkm_client(&engctx->gpuobj.object); unsigned long save; nvkm_gpuobj_unmap(&engctx->vma); Loading
drivers/gpu/drm/nouveau/nvkm/core/handle.c +24 −24 Original line number Diff line number Diff line Loading @@ -94,15 +94,15 @@ nvkm_handle_fini(struct nvkm_handle *handle, bool suspend) } int nvkm_handle_create(struct nvkm_object *parent, u32 _parent, u32 _handle, nvkm_handle_create(struct nvkm_handle *parent, u32 _handle, struct nvkm_object *object, struct nvkm_handle **phandle) { struct nvkm_object *namedb; struct nvkm_handle *handle; int ret; namedb = parent; while (!nv_iclass(namedb, NV_NAMEDB_CLASS)) namedb = parent ? parent->object : NULL; while (namedb && !nv_iclass(namedb, NV_NAMEDB_CLASS)) namedb = namedb->parent; handle = kzalloc(sizeof(*handle), GFP_KERNEL); Loading @@ -114,15 +114,23 @@ nvkm_handle_create(struct nvkm_object *parent, u32 _parent, u32 _handle, handle->name = _handle; handle->priv = ~0; RB_CLEAR_NODE(&handle->rb); handle->parent = parent; nvkm_object_ref(object, &handle->object); ret = nvkm_namedb_insert(nv_namedb(namedb), _handle, object, handle); if (namedb) { ret = nvkm_namedb_insert(nv_namedb(namedb), _handle, object, handle); if (ret) { kfree(handle); return ret; } } if (nv_parent(parent)->object_attach) { ret = nv_parent(parent)->object_attach(parent, object, _handle); if (parent) { if (nv_iclass(parent->object, NV_PARENT_CLASS) && nv_parent(parent->object)->object_attach) { ret = nv_parent(parent->object)-> object_attach(parent->object, object, _handle); if (ret < 0) { nvkm_handle_destroy(handle); return ret; Loading @@ -131,15 +139,7 @@ nvkm_handle_create(struct nvkm_object *parent, u32 _parent, u32 _handle, handle->priv = ret; } if (object != namedb) { while (!nv_iclass(namedb, NV_CLIENT_CLASS)) namedb = namedb->parent; handle->parent = nvkm_namedb_get(nv_namedb(namedb), _parent); if (handle->parent) { list_add(&handle->head, &handle->parent->tree); nvkm_namedb_put(handle->parent); } } hprintk(handle, TRACE, "created\n"); Loading