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

Commit 0a32241d authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau: pass address to object accessor functions as u64



Will be required by future work.  Make the API change now to catch any
(but hopefully none) unexpected fallout.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 66bb7e1d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -183,7 +183,7 @@ _nouveau_gpuobj_fini(struct nouveau_object *object, bool suspend)
}

u32
_nouveau_gpuobj_rd32(struct nouveau_object *object, u32 addr)
_nouveau_gpuobj_rd32(struct nouveau_object *object, u64 addr)
{
	struct nouveau_gpuobj *gpuobj = nv_gpuobj(object);
	struct nouveau_ofuncs *pfuncs = nv_ofuncs(gpuobj->parent);
@@ -193,7 +193,7 @@ _nouveau_gpuobj_rd32(struct nouveau_object *object, u32 addr)
}

void
_nouveau_gpuobj_wr32(struct nouveau_object *object, u32 addr, u32 data)
_nouveau_gpuobj_wr32(struct nouveau_object *object, u64 addr, u32 data)
{
	struct nouveau_gpuobj *gpuobj = nv_gpuobj(object);
	struct nouveau_ofuncs *pfuncs = nv_ofuncs(gpuobj->parent);
+2 −2
Original line number Diff line number Diff line
@@ -119,14 +119,14 @@ _nouveau_fifo_channel_dtor(struct nouveau_object *object)
}

u32
_nouveau_fifo_channel_rd32(struct nouveau_object *object, u32 addr)
_nouveau_fifo_channel_rd32(struct nouveau_object *object, u64 addr)
{
	struct nouveau_fifo_chan *chan = (void *)object;
	return ioread32_native(chan->user + addr);
}

void
_nouveau_fifo_channel_wr32(struct nouveau_object *object, u32 addr, u32 data)
_nouveau_fifo_channel_wr32(struct nouveau_object *object, u64 addr, u32 data)
{
	struct nouveau_fifo_chan *chan = (void *)object;
	iowrite32_native(data, chan->user + addr);
+2 −2
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ nouveau_gpuobj_ref(struct nouveau_gpuobj *obj, struct nouveau_gpuobj **ref)
void _nouveau_gpuobj_dtor(struct nouveau_object *);
int  _nouveau_gpuobj_init(struct nouveau_object *);
int  _nouveau_gpuobj_fini(struct nouveau_object *, bool);
u32  _nouveau_gpuobj_rd32(struct nouveau_object *, u32);
void _nouveau_gpuobj_wr32(struct nouveau_object *, u32, u32);
u32  _nouveau_gpuobj_rd32(struct nouveau_object *, u64);
void _nouveau_gpuobj_wr32(struct nouveau_object *, u64, u32);

#endif
+13 −13
Original line number Diff line number Diff line
@@ -81,12 +81,12 @@ struct nouveau_ofuncs {
	void (*dtor)(struct nouveau_object *);
	int  (*init)(struct nouveau_object *);
	int  (*fini)(struct nouveau_object *, bool suspend);
	u8   (*rd08)(struct nouveau_object *, u32 offset);
	u16  (*rd16)(struct nouveau_object *, u32 offset);
	u32  (*rd32)(struct nouveau_object *, u32 offset);
	void (*wr08)(struct nouveau_object *, u32 offset, u8 data);
	void (*wr16)(struct nouveau_object *, u32 offset, u16 data);
	void (*wr32)(struct nouveau_object *, u32 offset, u32 data);
	u8   (*rd08)(struct nouveau_object *, u64 offset);
	u16  (*rd16)(struct nouveau_object *, u64 offset);
	u32  (*rd32)(struct nouveau_object *, u64 offset);
	void (*wr08)(struct nouveau_object *, u64 offset, u8 data);
	void (*wr16)(struct nouveau_object *, u64 offset, u16 data);
	void (*wr32)(struct nouveau_object *, u64 offset, u32 data);
};

static inline struct nouveau_ofuncs *
@@ -123,7 +123,7 @@ nv_call(void *obj, u32 mthd, u32 data)
}

static inline u8
nv_ro08(void *obj, u32 addr)
nv_ro08(void *obj, u64 addr)
{
	u8 data = nv_ofuncs(obj)->rd08(obj, addr);
	nv_spam(obj, "nv_ro08 0x%08x 0x%02x\n", addr, data);
@@ -131,7 +131,7 @@ nv_ro08(void *obj, u32 addr)
}

static inline u16
nv_ro16(void *obj, u32 addr)
nv_ro16(void *obj, u64 addr)
{
	u16 data = nv_ofuncs(obj)->rd16(obj, addr);
	nv_spam(obj, "nv_ro16 0x%08x 0x%04x\n", addr, data);
@@ -139,7 +139,7 @@ nv_ro16(void *obj, u32 addr)
}

static inline u32
nv_ro32(void *obj, u32 addr)
nv_ro32(void *obj, u64 addr)
{
	u32 data = nv_ofuncs(obj)->rd32(obj, addr);
	nv_spam(obj, "nv_ro32 0x%08x 0x%08x\n", addr, data);
@@ -147,28 +147,28 @@ nv_ro32(void *obj, u32 addr)
}

static inline void
nv_wo08(void *obj, u32 addr, u8 data)
nv_wo08(void *obj, u64 addr, u8 data)
{
	nv_spam(obj, "nv_wo08 0x%08x 0x%02x\n", addr, data);
	nv_ofuncs(obj)->wr08(obj, addr, data);
}

static inline void
nv_wo16(void *obj, u32 addr, u16 data)
nv_wo16(void *obj, u64 addr, u16 data)
{
	nv_spam(obj, "nv_wo16 0x%08x 0x%04x\n", addr, data);
	nv_ofuncs(obj)->wr16(obj, addr, data);
}

static inline void
nv_wo32(void *obj, u32 addr, u32 data)
nv_wo32(void *obj, u64 addr, u32 data)
{
	nv_spam(obj, "nv_wo32 0x%08x 0x%08x\n", addr, data);
	nv_ofuncs(obj)->wr32(obj, addr, data);
}

static inline u32
nv_mo32(void *obj, u32 addr, u32 mask, u32 data)
nv_mo32(void *obj, u64 addr, u32 mask, u32 data)
{
	u32 temp = nv_ro32(obj, addr);
	nv_wo32(obj, addr, (temp & ~mask) | data);
+2 −2
Original line number Diff line number Diff line
@@ -40,8 +40,8 @@ void nouveau_fifo_channel_destroy(struct nouveau_fifo_chan *);
#define _nouveau_fifo_channel_fini _nouveau_namedb_fini

void _nouveau_fifo_channel_dtor(struct nouveau_object *);
u32  _nouveau_fifo_channel_rd32(struct nouveau_object *, u32);
void _nouveau_fifo_channel_wr32(struct nouveau_object *, u32, u32);
u32  _nouveau_fifo_channel_rd32(struct nouveau_object *, u64);
void _nouveau_fifo_channel_wr32(struct nouveau_object *, u64, u32);

struct nouveau_fifo_base {
	struct nouveau_gpuobj base;
Loading