Commit abc1d437 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/disp/nv50-: replace user object with engine pointer in channels



More simplification.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent bb3b0a42
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ nv50_disp_base_new(const struct nv50_disp_dmac_func *func,
	} else
		return ret;

	return nv50_disp_dmac_new_(func, mthd, root, chid + head,
	return nv50_disp_dmac_new_(func, mthd, disp, chid + head,
				   head, push, oclass, pobject);
}

+10 −12
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ nv50_disp_mthd_list(struct nv50_disp *disp, int debug, u32 base, int c,
void
nv50_disp_chan_mthd(struct nv50_disp_chan *chan, int debug)
{
	struct nv50_disp *disp = chan->root->disp;
	struct nv50_disp *disp = chan->disp;
	struct nvkm_subdev *subdev = &disp->base.engine.subdev;
	const struct nv50_disp_chan_mthd *mthd = chan->mthd;
	const struct nv50_disp_mthd_list *list;
@@ -158,7 +158,7 @@ static int
nv50_disp_chan_rd32(struct nvkm_object *object, u64 addr, u32 *data)
{
	struct nv50_disp_chan *chan = nv50_disp_chan(object);
	struct nv50_disp *disp = chan->root->disp;
	struct nv50_disp *disp = chan->disp;
	struct nvkm_device *device = disp->base.engine.subdev.device;
	*data = nvkm_rd32(device, 0x640000 + (chan->chid.user * 0x1000) + addr);
	return 0;
@@ -168,7 +168,7 @@ static int
nv50_disp_chan_wr32(struct nvkm_object *object, u64 addr, u32 data)
{
	struct nv50_disp_chan *chan = nv50_disp_chan(object);
	struct nv50_disp *disp = chan->root->disp;
	struct nv50_disp *disp = chan->disp;
	struct nvkm_device *device = disp->base.engine.subdev.device;
	nvkm_wr32(device, 0x640000 + (chan->chid.user * 0x1000) + addr, data);
	return 0;
@@ -179,7 +179,7 @@ nv50_disp_chan_ntfy(struct nvkm_object *object, u32 type,
		    struct nvkm_event **pevent)
{
	struct nv50_disp_chan *chan = nv50_disp_chan(object);
	struct nv50_disp *disp = chan->root->disp;
	struct nv50_disp *disp = chan->disp;
	switch (type) {
	case NV50_DISP_CORE_CHANNEL_DMA_V0_NTFY_UEVENT:
		*pevent = &disp->uevent;
@@ -195,7 +195,7 @@ nv50_disp_chan_map(struct nvkm_object *object, void *argv, u32 argc,
		   enum nvkm_object_map *type, u64 *addr, u64 *size)
{
	struct nv50_disp_chan *chan = nv50_disp_chan(object);
	struct nv50_disp *disp = chan->root->disp;
	struct nv50_disp *disp = chan->disp;
	struct nvkm_device *device = disp->base.engine.subdev.device;
	*type = NVKM_OBJECT_MAP_IO;
	*addr = device->func->resource_addr(device, 0) +
@@ -245,7 +245,7 @@ static void *
nv50_disp_chan_dtor(struct nvkm_object *object)
{
	struct nv50_disp_chan *chan = nv50_disp_chan(object);
	struct nv50_disp *disp = chan->root->disp;
	struct nv50_disp *disp = chan->disp;
	if (chan->chid.user >= 0)
		disp->chan[chan->chid.user] = NULL;
	return chan->func->dtor ? chan->func->dtor(chan) : chan;
@@ -266,16 +266,14 @@ nv50_disp_chan = {
int
nv50_disp_chan_ctor(const struct nv50_disp_chan_func *func,
		    const struct nv50_disp_chan_mthd *mthd,
		    struct nv50_disp_root *root, int ctrl, int user, int head,
		    struct nv50_disp *disp, int ctrl, int user, int head,
		    const struct nvkm_oclass *oclass,
		    struct nv50_disp_chan *chan)
{
	struct nv50_disp *disp = root->disp;

	nvkm_object_ctor(&nv50_disp_chan, oclass, &chan->object);
	chan->func = func;
	chan->mthd = mthd;
	chan->root = root;
	chan->disp = disp;
	chan->chid.ctrl = ctrl;
	chan->chid.user = user;
	chan->head = head;
@@ -291,7 +289,7 @@ nv50_disp_chan_ctor(const struct nv50_disp_chan_func *func,
int
nv50_disp_chan_new_(const struct nv50_disp_chan_func *func,
		    const struct nv50_disp_chan_mthd *mthd,
		    struct nv50_disp_root *root, int ctrl, int user, int head,
		    struct nv50_disp *disp, int ctrl, int user, int head,
		    const struct nvkm_oclass *oclass,
		    struct nvkm_object **pobject)
{
@@ -301,6 +299,6 @@ nv50_disp_chan_new_(const struct nv50_disp_chan_func *func,
		return -ENOMEM;
	*pobject = &chan->object;

	return nv50_disp_chan_ctor(func, mthd, root, ctrl, user,
	return nv50_disp_chan_ctor(func, mthd, disp, ctrl, user,
				   head, oclass, chan);
}
+3 −3
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ struct nv50_disp_root;
struct nv50_disp_chan {
	const struct nv50_disp_chan_func *func;
	const struct nv50_disp_chan_mthd *mthd;
	struct nv50_disp_root *root;
	struct nv50_disp *disp;

	struct {
		int ctrl;
@@ -32,11 +32,11 @@ struct nv50_disp_chan_func {

int nv50_disp_chan_ctor(const struct nv50_disp_chan_func *,
			const struct nv50_disp_chan_mthd *,
			struct nv50_disp_root *, int ctrl, int user, int head,
			struct nv50_disp *, int ctrl, int user, int head,
			const struct nvkm_oclass *, struct nv50_disp_chan *);
int nv50_disp_chan_new_(const struct nv50_disp_chan_func *,
			const struct nv50_disp_chan_mthd *,
			struct nv50_disp_root *, int ctrl, int user, int head,
			struct nv50_disp *, int ctrl, int user, int head,
			const struct nvkm_oclass *, struct nvkm_object **);

extern const struct nv50_disp_chan_func nv50_disp_pioc_func;
+2 −2
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ gf119_disp_core_chan_mthd = {
void
gf119_disp_core_fini(struct nv50_disp_dmac *chan)
{
	struct nv50_disp *disp = chan->base.root->disp;
	struct nv50_disp *disp = chan->base.disp;
	struct nvkm_subdev *subdev = &disp->base.engine.subdev;
	struct nvkm_device *device = subdev->device;

@@ -197,7 +197,7 @@ gf119_disp_core_fini(struct nv50_disp_dmac *chan)
static int
gf119_disp_core_init(struct nv50_disp_dmac *chan)
{
	struct nv50_disp *disp = chan->base.root->disp;
	struct nv50_disp *disp = chan->base.disp;
	struct nvkm_subdev *subdev = &disp->base.engine.subdev;
	struct nvkm_device *device = subdev->device;

+1 −1
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@
static int
gp102_disp_core_init(struct nv50_disp_dmac *chan)
{
	struct nv50_disp *disp = chan->base.root->disp;
	struct nv50_disp *disp = chan->base.disp;
	struct nvkm_subdev *subdev = &disp->base.engine.subdev;
	struct nvkm_device *device = subdev->device;

Loading