summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2015-11-24 09:58:39 +1000
committerBen Skeggs <bskeggs@redhat.com>2015-12-22 13:22:12 +1000
commitc00e1a92a24cb84008d90ce67218bb593396fde5 (patch)
tree2b93a40a4315e262e85488625f101c1b18ee7a90
parent343d1ee83e8bf833b575cc1df097d5202e11b8e8 (diff)
downloaddrm-c00e1a92a24cb84008d90ce67218bb593396fde5.tar.gz
nouveau: add interface to call an object's methods
This will expose functionality supported by newer kernel interfaces, giving access to things such as ZBC controls, perfmon, etc. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
-rwxr-xr-xnouveau/nouveau-symbol-check1
-rw-r--r--nouveau/nouveau.c7
-rw-r--r--nouveau/nouveau.h2
3 files changed, 10 insertions, 0 deletions
diff --git a/nouveau/nouveau-symbol-check b/nouveau/nouveau-symbol-check
index 0fef5632..73301702 100755
--- a/nouveau/nouveau-symbol-check
+++ b/nouveau/nouveau-symbol-check
@@ -33,6 +33,7 @@ nouveau_device_wrap
nouveau_getparam
nouveau_object_del
nouveau_object_find
+nouveau_object_mthd
nouveau_object_new
nouveau_pushbuf_bufctx
nouveau_pushbuf_data
diff --git a/nouveau/nouveau.c b/nouveau/nouveau.c
index eb741c7d..1871e8cd 100644
--- a/nouveau/nouveau.c
+++ b/nouveau/nouveau.c
@@ -59,6 +59,13 @@ debug_init(char *args)
}
#endif
+int
+nouveau_object_mthd(struct nouveau_object *obj,
+ uint32_t mthd, void *data, uint32_t size)
+{
+ return -ENODEV;
+}
+
static void
nouveau_object_fini(struct nouveau_object *obj)
{
diff --git a/nouveau/nouveau.h b/nouveau/nouveau.h
index 4adda0e3..4c95409e 100644
--- a/nouveau/nouveau.h
+++ b/nouveau/nouveau.h
@@ -67,6 +67,8 @@ int nouveau_object_new(struct nouveau_object *parent, uint64_t handle,
uint32_t oclass, void *data, uint32_t length,
struct nouveau_object **);
void nouveau_object_del(struct nouveau_object **);
+int nouveau_object_mthd(struct nouveau_object *, uint32_t mthd,
+ void *data, uint32_t size);
void *nouveau_object_find(struct nouveau_object *, uint32_t parent_class);
struct nouveau_device {