Commit 8f0649b5 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/fifo: convert user classes to new-style nvkm_object



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 9a65a38c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -64,6 +64,6 @@ u64 nvif_device_time(struct nvif_device *);
#include <engine/gr.h>
#include <engine/sw.h>

#define nvxx_fifo(a) nvkm_fifo(nvxx_device(a))
#define nvxx_fifo(a) nvxx_device(a)->fifo
#define nvxx_gr(a) nvkm_gr(nvxx_device(a))
#endif
+0 −3
Original line number Diff line number Diff line
@@ -45,7 +45,4 @@ int _nvkm_engctx_init(struct nvkm_object *);
int  _nvkm_engctx_fini(struct nvkm_object *, bool suspend);
#define _nvkm_engctx_rd32 _nvkm_gpuobj_rd32
#define _nvkm_engctx_wr32 _nvkm_gpuobj_wr32

struct nvkm_object *nvkm_engctx_get(struct nvkm_engine *, u64 addr);
void nvkm_engctx_put(struct nvkm_object *);
#endif
+1 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ struct nvkm_engine_func {
		int (*sclass)(struct nvkm_oclass *, int index);
	} fifo;

	const struct nvkm_object_func *cclass;
	struct nvkm_sclass sclass[];
};

+0 −1
Original line number Diff line number Diff line
@@ -4,7 +4,6 @@
struct nvkm_object;

struct nvkm_handle {
	struct nvkm_namedb *namedb;
	struct list_head node;

	struct list_head head;
+0 −52
Original line number Diff line number Diff line
#ifndef __NVKM_NAMEDB_H__
#define __NVKM_NAMEDB_H__
#include <core/parent.h>
struct nvkm_handle;

struct nvkm_namedb {
	struct nvkm_parent parent;
	rwlock_t lock;
	struct list_head list;
};

static inline struct nvkm_namedb *
nv_namedb(void *obj)
{
#if CONFIG_NOUVEAU_DEBUG >= NV_DBG_PARANOIA
	BUG_ON(!nv_iclass(obj, NV_NAMEDB_CLASS));
#endif
	return obj;
}

#define nvkm_namedb_create(p,e,c,v,s,m,d)                                   \
	nvkm_namedb_create_((p), (e), (c), (v), (s), (m),                   \
			       sizeof(**d), (void **)d)
#define nvkm_namedb_init(p)                                                 \
	nvkm_parent_init(&(p)->parent)
#define nvkm_namedb_fini(p,s)                                               \
	nvkm_parent_fini(&(p)->parent, (s))
#define nvkm_namedb_destroy(p)                                              \
	nvkm_parent_destroy(&(p)->parent)

int  nvkm_namedb_create_(struct nvkm_object *, struct nvkm_object *,
			    struct nvkm_oclass *, u32 pclass,
			    struct nvkm_oclass *, u64 engcls,
			    int size, void **);

int  _nvkm_namedb_ctor(struct nvkm_object *, struct nvkm_object *,
			  struct nvkm_oclass *, void *, u32,
			  struct nvkm_object **);
#define _nvkm_namedb_dtor _nvkm_parent_dtor
#define _nvkm_namedb_init _nvkm_parent_init
#define _nvkm_namedb_fini _nvkm_parent_fini

int  nvkm_namedb_insert(struct nvkm_namedb *, u32 name, struct nvkm_object *,
			struct nvkm_handle *);
void nvkm_namedb_remove(struct nvkm_handle *);

struct nvkm_handle *nvkm_namedb_get(struct nvkm_namedb *, u32);
struct nvkm_handle *nvkm_namedb_get_class(struct nvkm_namedb *, s32);
struct nvkm_handle *nvkm_namedb_get_vinst(struct nvkm_namedb *, u64);
struct nvkm_handle *nvkm_namedb_get_cinst(struct nvkm_namedb *, u32);
void nvkm_namedb_put(struct nvkm_handle *);
#endif
Loading