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

Commit 315a8b2e authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/nvif: use negative oclass identifier for internal classes



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 5c15bf70
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ struct nvif_device {
	struct nv_device_info_v0 info;
};

int  nvif_device_init(struct nvif_object *, u32 handle, u32 oclass, void *, u32,
int  nvif_device_init(struct nvif_object *, u32 handle, s32 oclass, void *, u32,
		      struct nvif_device *);
void nvif_device_fini(struct nvif_device *);
u64  nvif_device_time(struct nvif_device *);
+5 −5
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ struct nvif_ioctl_sclass_v0 {
	__u8  version;
	__u8  count;
	__u8  pad02[6];
	__u32 oclass[];
	__s32 oclass[];
};

struct nvif_ioctl_new_v0 {
@@ -52,10 +52,10 @@ struct nvif_ioctl_new_v0 {
	__u64 object;
	__u32 handle;
/* these class numbers are made up by us, and not nvidia-assigned */
#define NVIF_IOCTL_NEW_V0_PERFMON                                    0x0000ffff
#define NVIF_IOCTL_NEW_V0_PERFDOM                                    0x0000fffe
#define NVIF_IOCTL_NEW_V0_CONTROL                                    0x0000fffd
	__u32 oclass;
#define NVIF_IOCTL_NEW_V0_CONTROL                                            -1
#define NVIF_IOCTL_NEW_V0_PERFMON                                            -2
#define NVIF_IOCTL_NEW_V0_PERFDOM                                            -3
	__s32 oclass;
	__u8  data[];		/* class data (class.h) */
};

+3 −3
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
struct nvif_object {
	struct nvif_client *client;
	u32 handle;
	u32 oclass;
	s32 oclass;
	void *priv; /*XXX: hack */
	struct {
		void __iomem *ptr;
@@ -14,11 +14,11 @@ struct nvif_object {
	} map;
};

int  nvif_object_init(struct nvif_object *, u32 handle, u32 oclass, void *, u32,
int  nvif_object_init(struct nvif_object *, u32 handle, s32 oclass, void *, u32,
		      struct nvif_object *);
void nvif_object_fini(struct nvif_object *);
int  nvif_object_ioctl(struct nvif_object *, void *, u32, void **);
int  nvif_object_sclass(struct nvif_object *, u32 *, int);
int  nvif_object_sclass(struct nvif_object *, s32 *, int);
u32  nvif_object_rd(struct nvif_object *, int, u64);
void nvif_object_wr(struct nvif_object *, int, u64, u32);
int  nvif_object_mthd(struct nvif_object *, u32, void *, u32);
+1 −10
Original line number Diff line number Diff line
@@ -22,20 +22,11 @@ bool nvkm_client_insert(struct nvkm_client *, struct nvkm_handle *);
void nvkm_client_remove(struct nvkm_client *, struct nvkm_handle *);
struct nvkm_handle *nvkm_client_search(struct nvkm_client *, u64 handle);

static inline struct nvkm_client *
nv_client(void *obj)
{
#if CONFIG_NOUVEAU_DEBUG >= NV_DBG_PARANOIA
	BUG_ON(!nv_iclass(obj, NV_CLIENT_CLASS));
#endif
	return obj;
}

static inline struct nvkm_client *
nvkm_client(void *obj)
{
	struct nvkm_object *client = nv_object(obj);
	while (client && !(nv_iclass(client, NV_CLIENT_CLASS)))
	while (client && client->parent)
		client = client->parent;
	return (void *)client;
}
+1 −1
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ extern struct nvkm_ofuncs nvkm_object_ofuncs;
/* Don't allocate dynamically, because lockdep needs lock_class_keys to be in
 * ".data". */
struct nvkm_oclass {
	u32 handle;
	s32 handle;
	struct nvkm_ofuncs * const ofuncs;
	struct nvkm_omthds * const omthds;
	struct lock_class_key lock_class_key;
Loading