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>
main
Ben Skeggs 2015-11-24 09:58:39 +10:00
parent 343d1ee83e
commit c00e1a92a2
3 changed files with 10 additions and 0 deletions

View File

@ -33,6 +33,7 @@ nouveau_device_wrap
nouveau_getparam nouveau_getparam
nouveau_object_del nouveau_object_del
nouveau_object_find nouveau_object_find
nouveau_object_mthd
nouveau_object_new nouveau_object_new
nouveau_pushbuf_bufctx nouveau_pushbuf_bufctx
nouveau_pushbuf_data nouveau_pushbuf_data

View File

@ -59,6 +59,13 @@ debug_init(char *args)
} }
#endif #endif
int
nouveau_object_mthd(struct nouveau_object *obj,
uint32_t mthd, void *data, uint32_t size)
{
return -ENODEV;
}
static void static void
nouveau_object_fini(struct nouveau_object *obj) nouveau_object_fini(struct nouveau_object *obj)
{ {

View File

@ -67,6 +67,8 @@ int nouveau_object_new(struct nouveau_object *parent, uint64_t handle,
uint32_t oclass, void *data, uint32_t length, uint32_t oclass, void *data, uint32_t length,
struct nouveau_object **); struct nouveau_object **);
void nouveau_object_del(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); void *nouveau_object_find(struct nouveau_object *, uint32_t parent_class);
struct nouveau_device { struct nouveau_device {