diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2014-12-05 12:37:19 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2015-01-10 23:57:07 +1000 |
commit | d23e5d3f7943eb816026f04a8b069710313522f4 (patch) | |
tree | f70431fc4bc192ac4f8a1e0d2a2aeda46e1e5700 /nvkm/core | |
parent | 0f7caae334a9340c7d00d725c5c32120e47d790b (diff) | |
download | nouveau-d23e5d3f7943eb816026f04a8b069710313522f4.tar.gz |
core: object.engine is always a nouveau_engine now
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'nvkm/core')
-rw-r--r-- | nvkm/core/engctx.c | 7 | ||||
-rw-r--r-- | nvkm/core/engine.c | 2 | ||||
-rw-r--r-- | nvkm/core/gpuobj.c | 4 | ||||
-rw-r--r-- | nvkm/core/object.c | 14 | ||||
-rw-r--r-- | nvkm/core/parent.c | 2 | ||||
-rw-r--r-- | nvkm/core/printk.c | 2 | ||||
-rw-r--r-- | nvkm/core/ramht.c | 2 | ||||
-rw-r--r-- | nvkm/core/subdev.c | 2 |
8 files changed, 17 insertions, 18 deletions
diff --git a/nvkm/core/engctx.c b/nvkm/core/engctx.c index 6b9c72805..16f09b128 100644 --- a/nvkm/core/engctx.c +++ b/nvkm/core/engctx.c @@ -102,7 +102,7 @@ nouveau_engctx_create_(struct nouveau_object *parent, } if (client->vm) - atomic_inc(&client->vm->engref[nv_engidx(engobj)]); + 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); @@ -112,8 +112,7 @@ nouveau_engctx_create_(struct nouveau_object *parent, void nouveau_engctx_destroy(struct nouveau_engctx *engctx) { - struct nouveau_object *engobj = nv_object(engctx)->engine; - struct nouveau_engine *engine = nv_engine(engobj); + struct nouveau_engine *engine = engctx->gpuobj.object.engine; struct nouveau_client *client = nouveau_client(engctx); unsigned long save; @@ -123,7 +122,7 @@ nouveau_engctx_destroy(struct nouveau_engctx *engctx) spin_unlock_irqrestore(&engine->lock, save); if (client->vm) - atomic_dec(&client->vm->engref[nv_engidx(engobj)]); + atomic_dec(&client->vm->engref[nv_engidx(engine)]); if (engctx->gpuobj.size) nouveau_gpuobj_destroy(&engctx->gpuobj); diff --git a/nvkm/core/engine.c b/nvkm/core/engine.c index 85bf4b3d1..c9414b153 100644 --- a/nvkm/core/engine.c +++ b/nvkm/core/engine.c @@ -53,7 +53,7 @@ nouveau_engine_create_(struct nouveau_object *parent, if (parent) { struct nouveau_device *device = nv_device(parent); - int engidx = nv_engidx(nv_object(engine)); + int engidx = nv_engidx(engine); if (device->disable_mask & (1ULL << engidx)) { if (!nouveau_boolopt(device->cfgopt, iname, false)) { diff --git a/nvkm/core/gpuobj.c b/nvkm/core/gpuobj.c index 0a9ea1fa9..0fa64576b 100644 --- a/nvkm/core/gpuobj.c +++ b/nvkm/core/gpuobj.c @@ -229,7 +229,7 @@ nouveau_gpuobj_new(struct nouveau_object *parent, struct nouveau_object *pargpu, }; if (!nv_iclass(engine, NV_SUBDEV_CLASS)) - engine = engine->engine; + engine = &engine->engine->subdev.object; BUG_ON(engine == NULL); return nouveau_object_ctor(parent, engine, &_nouveau_gpuobj_oclass, @@ -310,7 +310,7 @@ nouveau_gpuobj_dup(struct nouveau_object *parent, struct nouveau_gpuobj *base, struct nouveau_gpuobj *gpuobj; int ret; - ret = nouveau_object_create(parent, parent->engine, + ret = nouveau_object_create(parent, &parent->engine->subdev.object, &nouveau_gpudup_oclass, 0, &gpuobj); *pgpuobj = gpuobj; if (ret) diff --git a/nvkm/core/object.c b/nvkm/core/object.c index b08630577..b160860ed 100644 --- a/nvkm/core/object.c +++ b/nvkm/core/object.c @@ -43,7 +43,7 @@ nouveau_object_create_(struct nouveau_object *parent, return -ENOMEM; nouveau_object_ref(parent, &object->parent); - nouveau_object_ref(engine, &object->engine); + nouveau_object_ref(engine, (struct nouveau_object **)&object->engine); object->oclass = oclass; object->oclass->handle |= pclass; atomic_set(&object->refcount, 1); @@ -77,7 +77,7 @@ nouveau_object_destroy(struct nouveau_object *object) list_del(&object->list); spin_unlock(&_objlist_lock); #endif - nouveau_object_ref(NULL, &object->engine); + nouveau_object_ref(NULL, (struct nouveau_object **)&object->engine); nouveau_object_ref(NULL, &object->parent); kfree(object); } @@ -182,7 +182,7 @@ nouveau_object_inc(struct nouveau_object *object) if (object->engine) { mutex_lock(&nv_subdev(object->engine)->mutex); - ret = nouveau_object_inc(object->engine); + ret = nouveau_object_inc(&object->engine->subdev.object); mutex_unlock(&nv_subdev(object->engine)->mutex); if (ret) { nv_error(object, "engine failed, %d\n", ret); @@ -203,7 +203,7 @@ nouveau_object_inc(struct nouveau_object *object) fail_self: if (object->engine) { mutex_lock(&nv_subdev(object->engine)->mutex); - nouveau_object_dec(object->engine, false); + nouveau_object_dec(&object->engine->subdev.object, false); mutex_unlock(&nv_subdev(object->engine)->mutex); } fail_engine: @@ -228,7 +228,7 @@ nouveau_object_decf(struct nouveau_object *object) if (object->engine) { mutex_lock(&nv_subdev(object->engine)->mutex); - nouveau_object_dec(object->engine, false); + nouveau_object_dec(&object->engine->subdev.object, false); mutex_unlock(&nv_subdev(object->engine)->mutex); } @@ -255,7 +255,7 @@ nouveau_object_decs(struct nouveau_object *object) if (object->engine) { mutex_lock(&nv_subdev(object->engine)->mutex); - ret = nouveau_object_dec(object->engine, true); + ret = nouveau_object_dec(&object->engine->subdev.object, true); mutex_unlock(&nv_subdev(object->engine)->mutex); if (ret) { nv_warn(object, "engine failed suspend, %d\n", ret); @@ -277,7 +277,7 @@ nouveau_object_decs(struct nouveau_object *object) fail_parent: if (object->engine) { mutex_lock(&nv_subdev(object->engine)->mutex); - rret = nouveau_object_inc(object->engine); + rret = nouveau_object_inc(&object->engine->subdev.object); mutex_unlock(&nv_subdev(object->engine)->mutex); if (rret) nv_fatal(object, "engine failed to reinit, %d\n", rret); diff --git a/nvkm/core/parent.c b/nvkm/core/parent.c index 07a2006a1..1f28fa12e 100644 --- a/nvkm/core/parent.c +++ b/nvkm/core/parent.c @@ -39,7 +39,7 @@ nouveau_parent_sclass(struct nouveau_object *parent, u16 handle, sclass = nv_parent(parent)->sclass; while (sclass) { if ((sclass->oclass->handle & 0xffff) == handle) { - *pengine = parent->engine; + *pengine = &parent->engine->subdev.object; *poclass = sclass->oclass; return 0; } diff --git a/nvkm/core/printk.c b/nvkm/core/printk.c index 81f559692..ed424f99f 100644 --- a/nvkm/core/printk.c +++ b/nvkm/core/printk.c @@ -69,7 +69,7 @@ nv_printk_(struct nouveau_object *object, int level, const char *fmt, ...) while (subdev && !nv_iclass(subdev, NV_SUBDEV_CLASS)) subdev = subdev->parent; } else { - subdev = object->engine; + subdev = &object->engine->subdev.object; } device = subdev; diff --git a/nvkm/core/ramht.c b/nvkm/core/ramht.c index f3b9bddc3..25cd6f290 100644 --- a/nvkm/core/ramht.c +++ b/nvkm/core/ramht.c @@ -96,7 +96,7 @@ nouveau_ramht_new(struct nouveau_object *parent, struct nouveau_object *pargpu, int ret; ret = nouveau_gpuobj_create(parent, parent->engine ? - parent->engine : parent, /* <nv50 ramht */ + &parent->engine->subdev.object : parent, /* <nv50 ramht */ &nouveau_ramht_oclass, 0, pargpu, size, align, NVOBJ_FLAG_ZERO_ALLOC, &ramht); *pramht = ramht; diff --git a/nvkm/core/subdev.c b/nvkm/core/subdev.c index 69ba1482c..cb1c49c2e 100644 --- a/nvkm/core/subdev.c +++ b/nvkm/core/subdev.c @@ -33,7 +33,7 @@ nouveau_subdev(void *obj, int idx) struct nouveau_object *object = nv_object(obj); while (object && !nv_iclass(object, NV_SUBDEV_CLASS)) object = object->parent; - if (object == NULL || nv_subidx(object) != idx) + if (object == NULL || nv_subidx(nv_subdev(object)) != idx) object = nv_device(obj)->subdev[idx]; return object ? nv_subdev(object) : NULL; } |