drm/nouveau/core: kill some (now) dead code
authorBen Skeggs <bskeggs@redhat.com>
Thu, 20 Aug 2015 04:54:19 +0000 (14:54 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 28 Aug 2015 02:40:42 +0000 (12:40 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h [deleted file]
drivers/gpu/drm/nouveau/include/nvkm/core/parent.h [deleted file]
drivers/gpu/drm/nouveau/nvkm/core/Kbuild
drivers/gpu/drm/nouveau/nvkm/core/engctx.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/core/handle.c
drivers/gpu/drm/nouveau/nvkm/core/ioctl.c
drivers/gpu/drm/nouveau/nvkm/core/parent.c [deleted file]
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
drivers/gpu/drm/nouveau/nvkm/engine/device/user.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c

diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h b/drivers/gpu/drm/nouveau/include/nvkm/core/engctx.h
deleted file mode 100644 (file)
index 4a77fda..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef __NVKM_ENGCTX_H__
-#define __NVKM_ENGCTX_H__
-#include <core/gpuobj.h>
-#include <core/parent.h>
-
-#include <subdev/mmu.h>
-
-#define NV_ENGCTX_(eng,var) (((var) << 8) | (eng))
-#define NV_ENGCTX(name,var)  NV_ENGCTX_(NVDEV_ENGINE_##name, (var))
-
-struct nvkm_engctx {
-       struct nvkm_gpuobj gpuobj;
-       struct nvkm_vma vma;
-       struct list_head head;
-       unsigned long save;
-       u64 addr;
-};
-
-static inline struct nvkm_engctx *
-nv_engctx(void *obj)
-{
-#if CONFIG_NOUVEAU_DEBUG >= NV_DBG_PARANOIA
-       BUG_ON(!nv_iclass(obj, NV_ENGCTX_CLASS));
-#endif
-       return obj;
-}
-
-#define nvkm_engctx_create(p,e,c,g,s,a,f,d)                                 \
-       nvkm_engctx_create_((p), (e), (c), (g), (s), (a), (f),              \
-                              sizeof(**d), (void **)d)
-
-int  nvkm_engctx_create_(struct nvkm_object *, struct nvkm_object *,
-                           struct nvkm_oclass *, struct nvkm_object *,
-                           u32 size, u32 align, u32 flags,
-                           int length, void **data);
-void nvkm_engctx_destroy(struct nvkm_engctx *);
-int  nvkm_engctx_init(struct nvkm_engctx *);
-int  nvkm_engctx_fini(struct nvkm_engctx *, bool suspend);
-
-int  _nvkm_engctx_ctor(struct nvkm_object *, struct nvkm_object *,
-                         struct nvkm_oclass *, void *, u32,
-                         struct nvkm_object **);
-void _nvkm_engctx_dtor(struct nvkm_object *);
-int  _nvkm_engctx_init(struct nvkm_object *);
-int  _nvkm_engctx_fini(struct nvkm_object *, bool suspend);
-#define _nvkm_engctx_rd32 _nvkm_gpuobj_rd32
-#define _nvkm_engctx_wr32 _nvkm_gpuobj_wr32
-#endif
diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/parent.h b/drivers/gpu/drm/nouveau/include/nvkm/core/parent.h
deleted file mode 100644 (file)
index 92270af..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef __NVKM_PARENT_H__
-#define __NVKM_PARENT_H__
-#include <core/object.h>
-
-struct nvkm_parent {
-       struct nvkm_object object;
-
-       struct nvkm_oclass *sclass;
-       u64 engine;
-
-       int  (*context_attach)(struct nvkm_object *, struct nvkm_object *);
-       int  (*context_detach)(struct nvkm_object *, bool suspend,
-                              struct nvkm_object *);
-
-       int  (*object_attach)(struct nvkm_object *parent,
-                             struct nvkm_object *object, u32 name);
-       void (*object_detach)(struct nvkm_object *parent, int cookie);
-};
-
-static inline struct nvkm_parent *
-nv_parent(void *obj)
-{
-#if CONFIG_NOUVEAU_DEBUG >= NV_DBG_PARANOIA
-       BUG_ON(!(nv_iclass(obj, NV_PARENT_CLASS)));
-#endif
-       return obj;
-}
-
-#define nvkm_parent_create(p,e,c,v,s,m,d)                                   \
-       nvkm_parent_create_((p), (e), (c), (v), (s), (m),                   \
-                              sizeof(**d), (void **)d)
-#define nvkm_parent_init(p)                                                 \
-       _nvkm_object_init(&(p)->object)
-#define nvkm_parent_fini(p,s)                                               \
-       _nvkm_object_fini(&(p)->object, (s))
-
-int  nvkm_parent_create_(struct nvkm_object *, struct nvkm_object *,
-                           struct nvkm_oclass *, u32 pclass,
-                           struct nvkm_oclass *, u64 engcls,
-                           int size, void **);
-void nvkm_parent_destroy(struct nvkm_parent *);
-
-void _nvkm_parent_dtor(struct nvkm_object *);
-#define _nvkm_parent_init _nvkm_object_init
-#define _nvkm_parent_fini _nvkm_object_fini
-
-int nvkm_parent_sclass(struct nvkm_object *, s32 handle,
-                      struct nvkm_object **pengine,
-                      struct nvkm_oclass **poclass);
-int nvkm_parent_lclass(struct nvkm_object *, void *, int);
-#endif
index d3932d5..09044cf 100644 (file)
@@ -1,5 +1,4 @@
 nvkm-y := nvkm/core/client.o
-nvkm-y += nvkm/core/engctx.o
 nvkm-y += nvkm/core/engine.o
 nvkm-y += nvkm/core/enum.o
 nvkm-y += nvkm/core/event.o
@@ -12,6 +11,5 @@ nvkm-y += nvkm/core/notify.o
 nvkm-y += nvkm/core/object.o
 nvkm-y += nvkm/core/oproxy.o
 nvkm-y += nvkm/core/option.o
-nvkm-y += nvkm/core/parent.o
 nvkm-y += nvkm/core/ramht.o
 nvkm-y += nvkm/core/subdev.o
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/engctx.c b/drivers/gpu/drm/nouveau/nvkm/core/engctx.c
deleted file mode 100644 (file)
index bd13fac..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright 2012 Red Hat Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors: Ben Skeggs
- */
-#include <core/engctx.h>
-#include <core/engine.h>
-#include <core/client.h>
-
-static inline int
-nvkm_engctx_exists(struct nvkm_object *parent,
-                  struct nvkm_engine *engine, void **pobject)
-{
-       struct nvkm_engctx *engctx;
-       struct nvkm_object *parctx;
-
-       list_for_each_entry(engctx, &engine->contexts, head) {
-               parctx = nv_pclass(nv_object(engctx), NV_PARENT_CLASS);
-               if (parctx == parent) {
-                       atomic_inc(&nv_object(engctx)->refcount);
-                       *pobject = engctx;
-                       return 1;
-               }
-       }
-
-       return 0;
-}
-
-int
-nvkm_engctx_create_(struct nvkm_object *parent, struct nvkm_object *engobj,
-                   struct nvkm_oclass *oclass, struct nvkm_object *pargpu,
-                   u32 size, u32 align, u32 flags, int length, void **pobject)
-{
-       struct nvkm_client *client = nvkm_client(parent);
-       struct nvkm_engine *engine = nv_engine(engobj);
-       struct nvkm_object *engctx;
-       unsigned long save;
-       int ret;
-
-       /* check if this engine already has a context for the parent object,
-        * and reference it instead of creating a new one
-        */
-       spin_lock_irqsave(&engine->lock, save);
-       ret = nvkm_engctx_exists(parent, engine, pobject);
-       spin_unlock_irqrestore(&engine->lock, save);
-       if (ret)
-               return ret;
-
-       /* create the new context, supports creating both raw objects and
-        * objects backed by instance memory
-        */
-       if (size) {
-               ret = nvkm_gpuobj_create_(parent, engobj, oclass,
-                                         NV_ENGCTX_CLASS, pargpu, size,
-                                         align, flags, length, pobject);
-       } else {
-               ret = nvkm_object_create_(parent, engobj, oclass,
-                                         NV_ENGCTX_CLASS, length, pobject);
-       }
-
-       engctx = *pobject;
-       if (ret)
-               return ret;
-
-       /* must take the lock again and re-check a context doesn't already
-        * exist (in case of a race) - the lock had to be dropped before as
-        * it's not possible to allocate the object with it held.
-        */
-       spin_lock_irqsave(&engine->lock, save);
-       ret = nvkm_engctx_exists(parent, engine, pobject);
-       if (ret) {
-               spin_unlock_irqrestore(&engine->lock, save);
-               nvkm_object_ref(NULL, &engctx);
-               return ret;
-       }
-
-       if (client->vm)
-               atomic_inc(&client->vm->engref[nv_engidx(engine)]);
-       list_add(&nv_engctx(engctx)->head, &engine->contexts);
-       nv_engctx(engctx)->addr = ~0ULL;
-       spin_unlock_irqrestore(&engine->lock, save);
-       return 0;
-}
-
-void
-nvkm_engctx_destroy(struct nvkm_engctx *engctx)
-{
-       struct nvkm_engine *engine = engctx->gpuobj.object.engine;
-       struct nvkm_client *client = nvkm_client(&engctx->gpuobj.object);
-       unsigned long save;
-
-       nvkm_gpuobj_unmap(&engctx->vma);
-       spin_lock_irqsave(&engine->lock, save);
-       list_del(&engctx->head);
-       spin_unlock_irqrestore(&engine->lock, save);
-
-       if (client->vm)
-               atomic_dec(&client->vm->engref[nv_engidx(engine)]);
-
-       if (engctx->gpuobj.size)
-               nvkm_gpuobj_destroy(&engctx->gpuobj);
-       else
-               nvkm_object_destroy(&engctx->gpuobj.object);
-}
-
-int
-nvkm_engctx_init(struct nvkm_engctx *engctx)
-{
-       return nvkm_gpuobj_init(&engctx->gpuobj);
-}
-
-int
-nvkm_engctx_fini(struct nvkm_engctx *engctx, bool suspend)
-{
-       return nvkm_gpuobj_fini(&engctx->gpuobj, suspend);
-}
-
-int
-_nvkm_engctx_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
-                 struct nvkm_oclass *oclass, void *data, u32 size,
-                 struct nvkm_object **pobject)
-{
-       struct nvkm_engctx *engctx;
-       int ret;
-
-       ret = nvkm_engctx_create(parent, engine, oclass, NULL, 256, 256,
-                                NVOBJ_FLAG_ZERO_ALLOC, &engctx);
-       *pobject = nv_object(engctx);
-       return ret;
-}
-
-void
-_nvkm_engctx_dtor(struct nvkm_object *object)
-{
-       nvkm_engctx_destroy(nv_engctx(object));
-}
-
-int
-_nvkm_engctx_init(struct nvkm_object *object)
-{
-       return nvkm_engctx_init(nv_engctx(object));
-}
-
-int
-_nvkm_engctx_fini(struct nvkm_object *object, bool suspend)
-{
-       return nvkm_engctx_fini(nv_engctx(object), suspend);
-}
index a74ee1c..d185cae 100644 (file)
@@ -23,7 +23,6 @@
  */
 #include <core/handle.h>
 #include <core/client.h>
-#include <core/parent.h>
 
 #define hprintk(h,l,f,a...) do {                                               \
        struct nvkm_handle *p = (h)->parent; u32 n = p ? p->name : ~0;         \
@@ -99,7 +98,6 @@ nvkm_handle_create(struct nvkm_handle *parent, u32 _handle,
                   struct nvkm_object *object, struct nvkm_handle **phandle)
 {
        struct nvkm_handle *handle;
-       int ret;
 
        handle = kzalloc(sizeof(*handle), GFP_KERNEL);
        if (!handle)
@@ -113,21 +111,8 @@ nvkm_handle_create(struct nvkm_handle *parent, u32 _handle,
        handle->parent = parent;
        nvkm_object_ref(object, &handle->object);
 
-       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;
-                       }
-
-                       handle->priv = ret;
-               }
-
+       if (parent)
                list_add(&handle->head, &handle->parent->tree);
-       }
 
        hprintk(handle, TRACE, "created\n");
        *phandle = handle;
@@ -148,11 +133,6 @@ nvkm_handle_destroy(struct nvkm_handle *handle)
        nvkm_client_remove(client, handle);
        list_del(&handle->head);
 
-       if (handle->priv != ~0) {
-               struct nvkm_object *parent = handle->parent->object;
-               nv_parent(parent)->object_detach(parent, handle->priv);
-       }
-
        hprintk(handle, TRACE, "destroy completed\n");
        nvkm_object_ref(NULL, &handle->object);
        kfree(handle);
index 28f9fa2..d9bb039 100644 (file)
@@ -25,7 +25,6 @@
 #include <core/client.h>
 #include <core/engine.h>
 #include <core/handle.h>
-#include <core/parent.h>
 
 #include <nvif/unpack.h>
 #include <nvif/ioctl.h>
@@ -65,17 +64,6 @@ nvkm_ioctl_sclass(struct nvkm_handle *handle, void *data, u32 size)
                if (size != args->v0.count * sizeof(args->v0.oclass[0]))
                        return -EINVAL;
 
-               if (object->oclass) {
-                       if (nv_iclass(object, NV_PARENT_CLASS)) {
-                               ret = nvkm_parent_lclass(object,
-                                                        args->v0.oclass,
-                                                        args->v0.count);
-                       }
-
-                       args->v0.count = ret;
-                       return 0;
-               }
-
                while (object->func->sclass &&
                       object->func->sclass(object, i, &oclass) >= 0) {
                        if (i < args->v0.count) {
@@ -93,111 +81,6 @@ nvkm_ioctl_sclass(struct nvkm_handle *handle, void *data, u32 size)
 }
 
 static int
-nvkm_ioctl_new_old(struct nvkm_handle *handle, void *data, u32 size)
-{
-       union {
-               struct nvif_ioctl_new_v0 v0;
-       } *args = data;
-       struct nvkm_client *client = nvkm_client(handle->object);
-       struct nvkm_object *engctx = NULL;
-       struct nvkm_object *object = NULL;
-       struct nvkm_parent *parent;
-       struct nvkm_engine *engine;
-       struct nvkm_oclass *oclass;
-       u32 _handle, _oclass;
-       int ret;
-
-       nvif_ioctl(handle->object, "new size %d\n", size);
-       if (nvif_unpack(args->v0, 0, 0, true)) {
-               _handle = args->v0.handle;
-               _oclass = args->v0.oclass;
-       } else
-               return ret;
-
-       nvif_ioctl(handle->object, "new vers %d handle %08x class %08x "
-                                  "route %02x token %llx object %016llx\n",
-                  args->v0.version, _handle, _oclass,
-                  args->v0.route, args->v0.token, args->v0.object);
-
-       if (!nv_iclass(handle->object, NV_PARENT_CLASS)) {
-               nvif_debug(handle->object, "cannot have children (ctor)\n");
-               ret = -ENODEV;
-               goto fail_class;
-       }
-
-       parent = nv_parent(handle->object);
-
-       /* check that parent supports the requested subclass */
-       ret = nvkm_parent_sclass(&parent->object, _oclass,
-                                (struct nvkm_object **)&engine, &oclass);
-       if (ret) {
-               nvif_debug(&parent->object, "illegal class 0x%04x\n", _oclass);
-               goto fail_class;
-       }
-
-       /* make sure engine init has been completed *before* any objects
-        * it controls are created - the constructors may depend on
-        * state calculated at init (ie. default context construction)
-        */
-       if (engine) {
-               engine = nvkm_engine_ref(engine);
-               if (IS_ERR(engine)) {
-                       ret = PTR_ERR(engine);
-                       engine = NULL;
-                       goto fail_class;
-               }
-       }
-
-       /* if engine requires it, create a context object to insert
-        * between the parent and its children (eg. PGRAPH context)
-        */
-       if (engine && engine->cclass) {
-               ret = nvkm_object_old(&parent->object, &engine->subdev.object,
-                                     engine->cclass, data, size, &engctx);
-               if (ret)
-                       goto fail_engctx;
-       } else {
-               nvkm_object_ref(&parent->object, &engctx);
-       }
-
-       /* finally, create new object and bind it to its handle */
-       ret = nvkm_object_old(engctx, &engine->subdev.object, oclass,
-                             data, size, &object);
-       if (ret)
-               goto fail_ctor;
-
-       object->handle = _handle;
-
-       ret = nvkm_object_inc(object);
-       if (ret)
-               goto fail_init;
-
-       ret = nvkm_handle_create(handle, _handle, object, &handle);
-       if (ret)
-               goto fail_handle;
-
-       ret = nvkm_handle_init(handle);
-       handle->route = args->v0.route;
-       handle->token = args->v0.token;
-       if (ret)
-               nvkm_handle_destroy(handle);
-
-       handle->handle = args->v0.object;
-       nvkm_client_insert(client, handle);
-       client->data = object;
-fail_handle:
-       nvkm_object_dec(object, false);
-fail_init:
-       nvkm_object_ref(NULL, &object);
-fail_ctor:
-       nvkm_object_ref(NULL, &engctx);
-fail_engctx:
-       nvkm_engine_unref(&engine);
-fail_class:
-       return ret;
-}
-
-static int
 nvkm_ioctl_new(struct nvkm_handle *handle, void *data, u32 size)
 {
        union {
@@ -209,9 +92,6 @@ nvkm_ioctl_new(struct nvkm_handle *handle, void *data, u32 size)
        struct nvkm_oclass oclass;
        int ret, i = 0;
 
-       if (parent->oclass)
-               return nvkm_ioctl_new_old(handle, data, size);
-
        nvif_ioctl(parent, "new size %d\n", size);
        if (nvif_unpack(args->v0, 0, 0, true)) {
                nvif_ioctl(parent, "new vers %d handle %08x class %08x "
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/parent.c b/drivers/gpu/drm/nouveau/nvkm/core/parent.c
deleted file mode 100644 (file)
index aecf5b8..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright 2012 Red Hat Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Authors: Ben Skeggs
- */
-#include <core/parent.h>
-#include <core/client.h>
-#include <core/engine.h>
-
-#include <nvif/ioctl.h>
-
-int
-nvkm_parent_sclass(struct nvkm_object *parent, s32 handle,
-                  struct nvkm_object **pengine,
-                  struct nvkm_oclass **poclass)
-{
-       struct nvkm_oclass *sclass, *oclass;
-       struct nvkm_engine *engine;
-       u64 mask;
-       int i;
-
-       sclass = nv_parent(parent)->sclass;
-       while ((oclass = sclass++) && oclass->ofuncs) {
-               if (oclass->handle == handle) {
-                       *pengine = &parent->engine->subdev.object;
-                       *poclass = oclass;
-                       return 0;
-               }
-       }
-
-       mask = nv_parent(parent)->engine;
-       while (i = __ffs64(mask), mask) {
-               engine = nvkm_engine(parent, i);
-               if (engine) {
-                       oclass = engine->sclass;
-                       while (oclass->ofuncs) {
-                               if (oclass->handle == handle) {
-                                       *pengine = nv_object(engine);
-                                       *poclass = oclass;
-                                       return 0;
-                               }
-                               oclass++;
-                       }
-               }
-
-               mask &= ~(1ULL << i);
-       }
-
-       return -EINVAL;
-}
-
-int
-nvkm_parent_lclass(struct nvkm_object *parent, void *data, int size)
-{
-       struct nvif_ioctl_sclass_oclass_v0 *lclass = data;
-       struct nvkm_oclass *sclass, *oclass;
-       struct nvkm_engine *engine;
-       int nr = -1, i;
-       u64 mask;
-
-       sclass = nv_parent(parent)->sclass;
-       while ((oclass = sclass++) && oclass->ofuncs) {
-               if (++nr < size) {
-                       lclass[nr].oclass = oclass->handle;
-                       lclass[nr].minver = -2;
-                       lclass[nr].maxver = -2;
-               }
-       }
-
-       mask = nv_parent(parent)->engine;
-       while (i = __ffs64(mask), mask) {
-               engine = nvkm_engine(parent, i);
-               if (engine && (oclass = engine->sclass)) {
-                       while (oclass->ofuncs) {
-                               if (++nr < size) {
-                                       lclass[nr].oclass = oclass->handle;
-                                       lclass[nr].minver = -2;
-                                       lclass[nr].maxver = -2;
-                               }
-                               oclass++;
-                       }
-               }
-
-               mask &= ~(1ULL << i);
-       }
-
-       return nr + 1;
-}
-
-int
-nvkm_parent_create_(struct nvkm_object *parent, struct nvkm_object *engine,
-                   struct nvkm_oclass *oclass, u32 pclass,
-                   struct nvkm_oclass *sclass, u64 engcls,
-                   int size, void **pobject)
-{
-       struct nvkm_parent *object;
-       int ret;
-
-       ret = nvkm_object_create_(parent, engine, oclass, pclass |
-                                 NV_PARENT_CLASS, size, pobject);
-       object = *pobject;
-       if (ret)
-               return ret;
-
-       object->sclass = sclass;
-       object->engine = engcls;
-       return 0;
-}
-
-void
-nvkm_parent_destroy(struct nvkm_parent *parent)
-{
-       nvkm_object_destroy(&parent->object);
-}
-
-
-void
-_nvkm_parent_dtor(struct nvkm_object *object)
-{
-       nvkm_parent_destroy(nv_parent(object));
-}
index 73770fb..46d616c 100644 (file)
@@ -1977,7 +1977,6 @@ nv12b_chipset = {
 //     .sw = gf100_sw_new,
 };
 
-#include <core/parent.h>
 #include <core/client.h>
 
 struct nvkm_device *
index 39f31e2..c5da091 100644 (file)
@@ -26,7 +26,6 @@
 #include "ctrl.h"
 
 #include <core/client.h>
-#include <core/parent.h>
 #include <subdev/fb.h>
 #include <subdev/instmem.h>
 #include <subdev/timer.h>
@@ -248,31 +247,6 @@ done:
 }
 
 static int
-nvkm_udevice_child_old(const struct nvkm_oclass *oclass,
-                      void *data, u32 size, struct nvkm_object **pobject)
-{
-       struct nvkm_object *parent = oclass->parent;
-       struct nvkm_engine *engine = oclass->engine;
-       struct nvkm_oclass *eclass = (void *)oclass->priv;
-       struct nvkm_object *engctx = NULL;
-       int ret;
-
-       if (engine->cclass) {
-               ret = nvkm_object_old(parent, &engine->subdev.object,
-                                     engine->cclass, NULL, 0, &engctx);
-               if (ret)
-                       return ret;
-       } else {
-               nvkm_object_ref(parent, &engctx);
-       }
-
-       ret = nvkm_object_old(engctx, &engine->subdev.object, eclass,
-                             data, size, pobject);
-       nvkm_object_ref(NULL, &engctx);
-       return ret;
-}
-
-static int
 nvkm_udevice_child_new(const struct nvkm_oclass *oclass,
                       void *data, u32 size, struct nvkm_object **pobject)
 {
@@ -296,26 +270,6 @@ nvkm_udevice_child_get(struct nvkm_object *object, int index,
        int i;
 
        for (; i = __ffs64(mask), mask && !sclass; mask &= ~(1ULL << i)) {
-               if ((engine = nvkm_device_engine(device, i)) &&
-                   !engine->func) {
-                       struct nvkm_oclass *sclass = engine->sclass;
-                       int c = 0;
-                       while (sclass && sclass->ofuncs) {
-                               if (c++ == index) {
-                                       oclass->base.oclass = sclass->handle;
-                                       oclass->base.minver = -2;
-                                       oclass->base.maxver = -2;
-                                       oclass->ctor = nvkm_udevice_child_old;
-                                       oclass->priv = sclass;
-                                       oclass->engine = engine;
-                                       return 0;
-                               }
-                               sclass++;
-                       }
-                       index -= c;
-                       continue;
-               }
-
                if (!(engine = nvkm_device_engine(device, i)) ||
                    !(engine->func->base.sclass))
                        continue;
index 2735c2d..a02c60f 100644 (file)
@@ -129,67 +129,6 @@ nvkm_fifo_chan_child_func = {
 };
 
 static int
-nvkm_fifo_chan_child_old(const struct nvkm_oclass *oclass,
-                        void *data, u32 size, struct nvkm_object **pobject)
-{
-       struct nvkm_fifo_chan *chan = nvkm_fifo_chan(oclass->parent);
-       struct nvkm_object *parent = &chan->object;
-       struct nvkm_engine *engine = oclass->engine;
-       struct nvkm_oclass *eclass = (void *)oclass->priv;
-       struct nvkm_object *engctx = NULL;
-       struct nvkm_fifo_chan_object *object;
-       struct nvkm_fifo_engn *engn = &chan->engn[engine->subdev.index];
-       int ret;
-
-       if (!(object = kzalloc(sizeof(*object), GFP_KERNEL)))
-               return -ENOMEM;
-       nvkm_oproxy_ctor(&nvkm_fifo_chan_child_func, oclass, &object->oproxy);
-       *pobject = &object->oproxy.base;
-       object->chan = chan;
-
-       if (!engn->refcount++) {
-               if (chan->vm)
-                       atomic_inc(&chan->vm->engref[engine->subdev.index]);
-               if (engine->cclass && !engn->object) {
-                       ret = nvkm_object_old(parent, &engine->subdev.object,
-                                             engine->cclass, NULL, 0,
-                                             &engn->object);
-                       if (ret) {
-                               nvkm_engine_unref(&engine);
-                               return ret;
-                       }
-               } else {
-                       nvkm_object_ref(parent, &engn->object);
-               }
-
-               if (chan->func->engine_ctor) {
-                       ret = chan->func->engine_ctor(chan, engine,
-                                                     engn->object);
-                       if (ret)
-                               return ret;
-               }
-       }
-       nvkm_object_ref(engn->object, &engctx);
-
-       ret = nvkm_object_old(engctx, &engine->subdev.object, eclass,
-                             data, size, &object->oproxy.object);
-       nvkm_object_ref(NULL, &engctx);
-       if (ret)
-               return ret;
-
-       object->oproxy.object->handle = oclass->handle;
-
-       if (chan->func->object_ctor) {
-               object->hash =
-                       chan->func->object_ctor(chan, object->oproxy.object);
-               if (object->hash < 0)
-                       return object->hash;
-       }
-
-       return 0;
-}
-
-static int
 nvkm_fifo_chan_child_new(const struct nvkm_oclass *oclass, void *data, u32 size,
                         struct nvkm_object **pobject)
 {
@@ -269,26 +208,6 @@ nvkm_fifo_chan_child_get(struct nvkm_object *object, int index,
        int ret, i, c;
 
        for (; c = 0, i = __ffs64(mask), mask; mask &= ~(1ULL << i)) {
-               if ((engine = nvkm_device_engine(device, i)) &&
-                   !engine->func) {
-                       struct nvkm_oclass *sclass = engine->sclass;
-                       int c = 0;
-                       while (sclass && sclass->ofuncs) {
-                               if (c++ == index) {
-                                       oclass->base.oclass = sclass->handle;
-                                       oclass->base.minver = -2;
-                                       oclass->base.maxver = -2;
-                                       oclass->ctor = nvkm_fifo_chan_child_old;
-                                       oclass->priv = sclass;
-                                       oclass->engine = engine;
-                                       return 0;
-                               }
-                               sclass++;
-                       }
-                       index -= c;
-                       continue;
-               }
-
                if (!(engine = nvkm_device_engine(device, i)))
                        continue;
                oclass->engine = engine;