Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 493f189d authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/object: store object type data outside of handle



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent a1e88736
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@

#include <subdev/mmu.h>

#define NV_ENGCTX_(eng,var) (NV_ENGCTX_CLASS | ((var) << 8) | (eng))
#define NV_ENGCTX_(eng,var) (((var) << 8) | (eng))
#define NV_ENGCTX(name,var)  NV_ENGCTX_(NVDEV_ENGINE_##name, (var))

struct nvkm_engctx {
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
#define __NVKM_ENGINE_H__
#include <core/subdev.h>

#define NV_ENGINE_(eng,var) (NV_ENGINE_CLASS | ((var) << 8) | (eng))
#define NV_ENGINE_(eng,var) (((var) << 8) | (eng))
#define NV_ENGINE(name,var)  NV_ENGINE_(NVDEV_ENGINE_##name, (var))

struct nvkm_engine {
+3 −3
Original line number Diff line number Diff line
@@ -11,10 +11,10 @@
#define NV_MEMOBJ_CLASS 0x04000000
#define NV_GPUOBJ_CLASS 0x02000000
#define NV_ENGCTX_CLASS 0x01000000
#define NV_OBJECT_CLASS 0x0000ffff

struct nvkm_object {
	struct nvkm_oclass *oclass;
	u32 pclass;
	struct nvkm_object *parent;
	struct nvkm_engine *engine;
	atomic_t refcount;
@@ -70,8 +70,8 @@ struct nvkm_oclass {

#define nv_oclass(o)    nv_object(o)->oclass
#define nv_hclass(o)    nv_oclass(o)->handle
#define nv_iclass(o,i) (nv_hclass(o) & (i))
#define nv_mclass(o)    nv_iclass(o, NV_OBJECT_CLASS)
#define nv_iclass(o,i) (nv_object(o)->pclass & (i))
#define nv_mclass(o)    nv_oclass(o)->handle

static inline struct nvkm_object *
nv_pclass(struct nvkm_object *parent, u32 oclass)
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
#define __NVKM_SUBDEV_H__
#include <core/object.h>

#define NV_SUBDEV_(sub,var) (NV_SUBDEV_CLASS | ((var) << 8) | (sub))
#define NV_SUBDEV_(sub,var) (((var) << 8) | (sub))
#define NV_SUBDEV(name,var)  NV_SUBDEV_(NVDEV_SUBDEV_##name, (var))

struct nvkm_subdev {
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ struct nvkm_fifo_base {
};

#define nvkm_fifo_context_create(p,e,c,g,s,a,f,d)                           \
	nvkm_gpuobj_create((p), (e), (c), 0, (g), (s), (a), (f), (d))
	nvkm_gpuobj_create((p), (e), (c), NV_ENGCTX_CLASS, (g), (s), (a), (f), (d))
#define nvkm_fifo_context_destroy(p)                                        \
	nvkm_gpuobj_destroy(&(p)->gpuobj)
#define nvkm_fifo_context_init(p)                                           \
Loading