Commit 2a32b9b1 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/disp/nv50-: specify ctrl/user separately when constructing classes

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 4391d7f5
...@@ -263,7 +263,7 @@ nv50_disp_chan = { ...@@ -263,7 +263,7 @@ nv50_disp_chan = {
int int
nv50_disp_chan_ctor(const struct nv50_disp_chan_func *func, nv50_disp_chan_ctor(const struct nv50_disp_chan_func *func,
const struct nv50_disp_chan_mthd *mthd, const struct nv50_disp_chan_mthd *mthd,
struct nv50_disp_root *root, int chid, int head, struct nv50_disp_root *root, int ctrl, int user, int head,
const struct nvkm_oclass *oclass, const struct nvkm_oclass *oclass,
struct nv50_disp_chan *chan) struct nv50_disp_chan *chan)
{ {
...@@ -273,8 +273,8 @@ nv50_disp_chan_ctor(const struct nv50_disp_chan_func *func, ...@@ -273,8 +273,8 @@ nv50_disp_chan_ctor(const struct nv50_disp_chan_func *func,
chan->func = func; chan->func = func;
chan->mthd = mthd; chan->mthd = mthd;
chan->root = root; chan->root = root;
chan->chid.ctrl = chid; chan->chid.ctrl = ctrl;
chan->chid.user = chid; chan->chid.user = user;
chan->head = head; chan->head = head;
if (disp->chan[chan->chid.user]) { if (disp->chan[chan->chid.user]) {
...@@ -288,7 +288,7 @@ nv50_disp_chan_ctor(const struct nv50_disp_chan_func *func, ...@@ -288,7 +288,7 @@ nv50_disp_chan_ctor(const struct nv50_disp_chan_func *func,
int int
nv50_disp_chan_new_(const struct nv50_disp_chan_func *func, nv50_disp_chan_new_(const struct nv50_disp_chan_func *func,
const struct nv50_disp_chan_mthd *mthd, const struct nv50_disp_chan_mthd *mthd,
struct nv50_disp_root *root, int chid, int head, struct nv50_disp_root *root, int ctrl, int user, int head,
const struct nvkm_oclass *oclass, const struct nvkm_oclass *oclass,
struct nvkm_object **pobject) struct nvkm_object **pobject)
{ {
...@@ -298,5 +298,6 @@ nv50_disp_chan_new_(const struct nv50_disp_chan_func *func, ...@@ -298,5 +298,6 @@ nv50_disp_chan_new_(const struct nv50_disp_chan_func *func,
return -ENOMEM; return -ENOMEM;
*pobject = &chan->object; *pobject = &chan->object;
return nv50_disp_chan_ctor(func, mthd, root, chid, head, oclass, chan); return nv50_disp_chan_ctor(func, mthd, root, ctrl, user,
head, oclass, chan);
} }
...@@ -29,11 +29,11 @@ struct nv50_disp_chan_func { ...@@ -29,11 +29,11 @@ struct nv50_disp_chan_func {
int nv50_disp_chan_ctor(const struct nv50_disp_chan_func *, int nv50_disp_chan_ctor(const struct nv50_disp_chan_func *,
const struct nv50_disp_chan_mthd *, const struct nv50_disp_chan_mthd *,
struct nv50_disp_root *, int chid, int head, struct nv50_disp_root *, int ctrl, int user, int head,
const struct nvkm_oclass *, struct nv50_disp_chan *); const struct nvkm_oclass *, struct nv50_disp_chan *);
int nv50_disp_chan_new_(const struct nv50_disp_chan_func *, int nv50_disp_chan_new_(const struct nv50_disp_chan_func *,
const struct nv50_disp_chan_mthd *, const struct nv50_disp_chan_mthd *,
struct nv50_disp_root *, int chid, int head, struct nv50_disp_root *, int ctrl, int user, int head,
const struct nvkm_oclass *, struct nvkm_object **); const struct nvkm_oclass *, struct nvkm_object **);
extern const struct nv50_disp_chan_func nv50_disp_pioc_func; extern const struct nv50_disp_chan_func nv50_disp_pioc_func;
...@@ -94,13 +94,16 @@ extern const struct nv50_disp_chan_mthd gk104_disp_ovly_chan_mthd; ...@@ -94,13 +94,16 @@ extern const struct nv50_disp_chan_mthd gk104_disp_ovly_chan_mthd;
struct nv50_disp_pioc_oclass { struct nv50_disp_pioc_oclass {
int (*ctor)(const struct nv50_disp_chan_func *, int (*ctor)(const struct nv50_disp_chan_func *,
const struct nv50_disp_chan_mthd *, const struct nv50_disp_chan_mthd *,
struct nv50_disp_root *, int chid, struct nv50_disp_root *, int ctrl, int user,
const struct nvkm_oclass *, void *data, u32 size, const struct nvkm_oclass *, void *data, u32 size,
struct nvkm_object **); struct nvkm_object **);
struct nvkm_sclass base; struct nvkm_sclass base;
const struct nv50_disp_chan_func *func; const struct nv50_disp_chan_func *func;
const struct nv50_disp_chan_mthd *mthd; const struct nv50_disp_chan_mthd *mthd;
int chid; struct {
int ctrl;
int user;
} chid;
}; };
extern const struct nv50_disp_pioc_oclass nv50_disp_oimm_oclass; extern const struct nv50_disp_pioc_oclass nv50_disp_oimm_oclass;
...@@ -121,12 +124,12 @@ extern const struct nv50_disp_pioc_oclass gk104_disp_curs_oclass; ...@@ -121,12 +124,12 @@ extern const struct nv50_disp_pioc_oclass gk104_disp_curs_oclass;
int nv50_disp_curs_new(const struct nv50_disp_chan_func *, int nv50_disp_curs_new(const struct nv50_disp_chan_func *,
const struct nv50_disp_chan_mthd *, const struct nv50_disp_chan_mthd *,
struct nv50_disp_root *, int chid, struct nv50_disp_root *, int ctrl, int user,
const struct nvkm_oclass *, void *data, u32 size, const struct nvkm_oclass *, void *data, u32 size,
struct nvkm_object **); struct nvkm_object **);
int nv50_disp_oimm_new(const struct nv50_disp_chan_func *, int nv50_disp_oimm_new(const struct nv50_disp_chan_func *,
const struct nv50_disp_chan_mthd *, const struct nv50_disp_chan_mthd *,
struct nv50_disp_root *, int chid, struct nv50_disp_root *, int ctrl, int user,
const struct nvkm_oclass *, void *data, u32 size, const struct nvkm_oclass *, void *data, u32 size,
struct nvkm_object **); struct nvkm_object **);
#endif #endif
...@@ -33,5 +33,5 @@ g84_disp_curs_oclass = { ...@@ -33,5 +33,5 @@ g84_disp_curs_oclass = {
.base.maxver = 0, .base.maxver = 0,
.ctor = nv50_disp_curs_new, .ctor = nv50_disp_curs_new,
.func = &nv50_disp_pioc_func, .func = &nv50_disp_pioc_func,
.chid = 7, .chid = { 7, 7 },
}; };
...@@ -33,5 +33,5 @@ gf119_disp_curs_oclass = { ...@@ -33,5 +33,5 @@ gf119_disp_curs_oclass = {
.base.maxver = 0, .base.maxver = 0,
.ctor = nv50_disp_curs_new, .ctor = nv50_disp_curs_new,
.func = &gf119_disp_pioc_func, .func = &gf119_disp_pioc_func,
.chid = 13, .chid = { 13, 13 },
}; };
...@@ -33,5 +33,5 @@ gk104_disp_curs_oclass = { ...@@ -33,5 +33,5 @@ gk104_disp_curs_oclass = {
.base.maxver = 0, .base.maxver = 0,
.ctor = nv50_disp_curs_new, .ctor = nv50_disp_curs_new,
.func = &gf119_disp_pioc_func, .func = &gf119_disp_pioc_func,
.chid = 13, .chid = { 13, 13 },
}; };
...@@ -33,5 +33,5 @@ gt215_disp_curs_oclass = { ...@@ -33,5 +33,5 @@ gt215_disp_curs_oclass = {
.base.maxver = 0, .base.maxver = 0,
.ctor = nv50_disp_curs_new, .ctor = nv50_disp_curs_new,
.func = &nv50_disp_pioc_func, .func = &nv50_disp_pioc_func,
.chid = 7, .chid = { 7, 7 },
}; };
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
int int
nv50_disp_curs_new(const struct nv50_disp_chan_func *func, nv50_disp_curs_new(const struct nv50_disp_chan_func *func,
const struct nv50_disp_chan_mthd *mthd, const struct nv50_disp_chan_mthd *mthd,
struct nv50_disp_root *root, int chid, struct nv50_disp_root *root, int ctrl, int user,
const struct nvkm_oclass *oclass, void *data, u32 size, const struct nvkm_oclass *oclass, void *data, u32 size,
struct nvkm_object **pobject) struct nvkm_object **pobject)
{ {
...@@ -54,7 +54,7 @@ nv50_disp_curs_new(const struct nv50_disp_chan_func *func, ...@@ -54,7 +54,7 @@ nv50_disp_curs_new(const struct nv50_disp_chan_func *func,
} else } else
return ret; return ret;
return nv50_disp_chan_new_(func, mthd, root, chid + head, return nv50_disp_chan_new_(func, mthd, root, ctrl + head, user + head,
head, oclass, pobject); head, oclass, pobject);
} }
...@@ -65,5 +65,5 @@ nv50_disp_curs_oclass = { ...@@ -65,5 +65,5 @@ nv50_disp_curs_oclass = {
.base.maxver = 0, .base.maxver = 0,
.ctor = nv50_disp_curs_new, .ctor = nv50_disp_curs_new,
.func = &nv50_disp_pioc_func, .func = &nv50_disp_pioc_func,
.chid = 7, .chid = { 7, 7 },
}; };
...@@ -149,7 +149,7 @@ nv50_disp_dmac_new_(const struct nv50_disp_dmac_func *func, ...@@ -149,7 +149,7 @@ nv50_disp_dmac_new_(const struct nv50_disp_dmac_func *func,
chan->func = func; chan->func = func;
ret = nv50_disp_chan_ctor(&nv50_disp_dmac_func_, mthd, root, ret = nv50_disp_chan_ctor(&nv50_disp_dmac_func_, mthd, root,
chid, head, oclass, &chan->base); chid, chid, head, oclass, &chan->base);
if (ret) if (ret)
return ret; return ret;
......
...@@ -33,5 +33,5 @@ g84_disp_oimm_oclass = { ...@@ -33,5 +33,5 @@ g84_disp_oimm_oclass = {
.base.maxver = 0, .base.maxver = 0,
.ctor = nv50_disp_oimm_new, .ctor = nv50_disp_oimm_new,
.func = &nv50_disp_pioc_func, .func = &nv50_disp_pioc_func,
.chid = 5, .chid = { 5, 5 },
}; };
...@@ -33,5 +33,5 @@ gf119_disp_oimm_oclass = { ...@@ -33,5 +33,5 @@ gf119_disp_oimm_oclass = {
.base.maxver = 0, .base.maxver = 0,
.ctor = nv50_disp_oimm_new, .ctor = nv50_disp_oimm_new,
.func = &gf119_disp_pioc_func, .func = &gf119_disp_pioc_func,
.chid = 9, .chid = { 9, 9 },
}; };
...@@ -33,5 +33,5 @@ gk104_disp_oimm_oclass = { ...@@ -33,5 +33,5 @@ gk104_disp_oimm_oclass = {
.base.maxver = 0, .base.maxver = 0,
.ctor = nv50_disp_oimm_new, .ctor = nv50_disp_oimm_new,
.func = &gf119_disp_pioc_func, .func = &gf119_disp_pioc_func,
.chid = 9, .chid = { 9, 9 },
}; };
...@@ -33,5 +33,5 @@ gt215_disp_oimm_oclass = { ...@@ -33,5 +33,5 @@ gt215_disp_oimm_oclass = {
.base.maxver = 0, .base.maxver = 0,
.ctor = nv50_disp_oimm_new, .ctor = nv50_disp_oimm_new,
.func = &nv50_disp_pioc_func, .func = &nv50_disp_pioc_func,
.chid = 5, .chid = { 5, 5 },
}; };
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
int int
nv50_disp_oimm_new(const struct nv50_disp_chan_func *func, nv50_disp_oimm_new(const struct nv50_disp_chan_func *func,
const struct nv50_disp_chan_mthd *mthd, const struct nv50_disp_chan_mthd *mthd,
struct nv50_disp_root *root, int chid, struct nv50_disp_root *root, int ctrl, int user,
const struct nvkm_oclass *oclass, void *data, u32 size, const struct nvkm_oclass *oclass, void *data, u32 size,
struct nvkm_object **pobject) struct nvkm_object **pobject)
{ {
...@@ -54,7 +54,7 @@ nv50_disp_oimm_new(const struct nv50_disp_chan_func *func, ...@@ -54,7 +54,7 @@ nv50_disp_oimm_new(const struct nv50_disp_chan_func *func,
} else } else
return ret; return ret;
return nv50_disp_chan_new_(func, mthd, root, chid + head, return nv50_disp_chan_new_(func, mthd, root, ctrl + head, user + head,
head, oclass, pobject); head, oclass, pobject);
} }
...@@ -65,5 +65,5 @@ nv50_disp_oimm_oclass = { ...@@ -65,5 +65,5 @@ nv50_disp_oimm_oclass = {
.base.maxver = 0, .base.maxver = 0,
.ctor = nv50_disp_oimm_new, .ctor = nv50_disp_oimm_new,
.func = &nv50_disp_pioc_func, .func = &nv50_disp_pioc_func,
.chid = 5, .chid = { 5, 5 },
}; };
...@@ -250,8 +250,8 @@ nv50_disp_root_pioc_new_(const struct nvkm_oclass *oclass, ...@@ -250,8 +250,8 @@ nv50_disp_root_pioc_new_(const struct nvkm_oclass *oclass,
{ {
const struct nv50_disp_pioc_oclass *sclass = oclass->priv; const struct nv50_disp_pioc_oclass *sclass = oclass->priv;
struct nv50_disp_root *root = nv50_disp_root(oclass->parent); struct nv50_disp_root *root = nv50_disp_root(oclass->parent);
return sclass->ctor(sclass->func, sclass->mthd, root, sclass->chid, return sclass->ctor(sclass->func, sclass->mthd, root, sclass->chid.ctrl,
oclass, data, size, pobject); sclass->chid.user, oclass, data, size, pobject);
} }
static int static int
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment