summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nvkm
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2015-08-20 14:54:16 +1000
committerBen Skeggs <bskeggs@redhat.com>2015-08-28 12:40:32 +1000
commit41a634064db489713945e228e216336080ba57f8 (patch)
tree5ca615eea8bc281f826d4e7a109063068156ac0e /drivers/gpu/drm/nouveau/nvkm
parentf58ddf9581655d3fea51465f06f292d365af9c87 (diff)
downloadblackbird-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.c19
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++;
}
}
OpenPOWER on IntegriCloud