diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2015-08-20 14:54:16 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2015-08-28 12:40:32 +1000 |
commit | 41a634064db489713945e228e216336080ba57f8 (patch) | |
tree | 5ca615eea8bc281f826d4e7a109063068156ac0e /drivers/gpu/drm/nouveau/nvkm | |
parent | f58ddf9581655d3fea51465f06f292d365af9c87 (diff) | |
download | blackbird-obmc-linux-41a634064db489713945e228e216336080ba57f8.tar.gz blackbird-obmc-linux-41a634064db489713945e228e216336080ba57f8.zip |
drm/nouveau/nvif: return min/max versions for supported object classes
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/core/parent.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/core/parent.c b/drivers/gpu/drm/nouveau/nvkm/core/parent.c index 43abd208b486..aecf5b8901b2 100644 --- a/drivers/gpu/drm/nouveau/nvkm/core/parent.c +++ b/drivers/gpu/drm/nouveau/nvkm/core/parent.c @@ -25,6 +25,8 @@ #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, @@ -66,8 +68,9 @@ nvkm_parent_sclass(struct nvkm_object *parent, s32 handle, } int -nvkm_parent_lclass(struct nvkm_object *parent, s32 *lclass, int size) +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; @@ -75,8 +78,11 @@ nvkm_parent_lclass(struct nvkm_object *parent, s32 *lclass, int size) sclass = nv_parent(parent)->sclass; while ((oclass = sclass++) && oclass->ofuncs) { - if (++nr < size) - lclass[nr] = oclass->handle; + if (++nr < size) { + lclass[nr].oclass = oclass->handle; + lclass[nr].minver = -2; + lclass[nr].maxver = -2; + } } mask = nv_parent(parent)->engine; @@ -84,8 +90,11 @@ nvkm_parent_lclass(struct nvkm_object *parent, s32 *lclass, int size) engine = nvkm_engine(parent, i); if (engine && (oclass = engine->sclass)) { while (oclass->ofuncs) { - if (++nr < size) - lclass[nr] = oclass->handle; + if (++nr < size) { + lclass[nr].oclass = oclass->handle; + lclass[nr].minver = -2; + lclass[nr].maxver = -2; + } oclass++; } } |