diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-12-22 15:23:04 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2017-02-17 15:14:56 +1000 |
commit | daad3dfb05be8b0682c1bb0db6b59e50a4bb95f6 (patch) | |
tree | 63a387825f3db949300204177b9c22ba2d6754a4 /drivers/gpu/drm/nouveau/nvkm/core/client.c | |
parent | drm/nouveau/core/object: support lookup of specific object types (diff) | |
download | linux-dev-daad3dfb05be8b0682c1bb0db6b59e50a4bb95f6.tar.xz linux-dev-daad3dfb05be8b0682c1bb0db6b59e50a4bb95f6.zip |
drm/nouveau/core/client: lookup client objects with nvkm_object_search()
Custom code is no longer needed here.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/core/client.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/core/client.c | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/client.c b/drivers/gpu/drm/nouveau/nvkm/core/client.c index e1943910858e..0c2fdf14201e 100644 --- a/drivers/gpu/drm/nouveau/nvkm/core/client.c +++ b/drivers/gpu/drm/nouveau/nvkm/core/client.c @@ -206,55 +206,6 @@ nvkm_client_object_func = { .sclass = nvkm_client_child_get, }; -void -nvkm_client_remove(struct nvkm_client *client, struct nvkm_object *object) -{ - if (!RB_EMPTY_NODE(&object->node)) - rb_erase(&object->node, &client->objroot); -} - -bool -nvkm_client_insert(struct nvkm_client *client, struct nvkm_object *object) -{ - struct rb_node **ptr = &client->objroot.rb_node; - struct rb_node *parent = NULL; - - while (*ptr) { - struct nvkm_object *this = - container_of(*ptr, typeof(*this), node); - parent = *ptr; - if (object->object < this->object) - ptr = &parent->rb_left; - else - if (object->object > this->object) - ptr = &parent->rb_right; - else - return false; - } - - rb_link_node(&object->node, parent, ptr); - rb_insert_color(&object->node, &client->objroot); - return true; -} - -struct nvkm_object * -nvkm_client_search(struct nvkm_client *client, u64 handle) -{ - struct rb_node *node = client->objroot.rb_node; - while (node) { - struct nvkm_object *object = - container_of(node, typeof(*object), node); - if (handle < object->object) - node = node->rb_left; - else - if (handle > object->object) - node = node->rb_right; - else - return object; - } - return NULL; -} - int nvkm_client_fini(struct nvkm_client *client, bool suspend) { |