Commit ab0db2bd authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/fifo: switch to instanced constructor

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
parent 09f409d7
...@@ -60,7 +60,6 @@ struct nvkm_device { ...@@ -60,7 +60,6 @@ struct nvkm_device {
struct notifier_block nb; struct notifier_block nb;
} acpi; } acpi;
struct nvkm_fifo *fifo;
struct nvkm_gr *gr; struct nvkm_gr *gr;
struct nvkm_engine *ifb; struct nvkm_engine *ifb;
struct nvkm_engine *me; struct nvkm_engine *me;
...@@ -117,7 +116,6 @@ struct nvkm_device_chip { ...@@ -117,7 +116,6 @@ struct nvkm_device_chip {
#undef NVKM_LAYOUT_INST #undef NVKM_LAYOUT_INST
#undef NVKM_LAYOUT_ONCE #undef NVKM_LAYOUT_ONCE
int (*fifo )(struct nvkm_device *, int idx, struct nvkm_fifo **);
int (*gr )(struct nvkm_device *, int idx, struct nvkm_gr **); int (*gr )(struct nvkm_device *, int idx, struct nvkm_gr **);
int (*ifb )(struct nvkm_device *, int idx, struct nvkm_engine **); int (*ifb )(struct nvkm_device *, int idx, struct nvkm_engine **);
int (*me )(struct nvkm_device *, int idx, struct nvkm_engine **); int (*me )(struct nvkm_device *, int idx, struct nvkm_engine **);
......
...@@ -30,4 +30,5 @@ NVKM_LAYOUT_INST(NVKM_ENGINE_CE , struct nvkm_engine , ce, 9) ...@@ -30,4 +30,5 @@ NVKM_LAYOUT_INST(NVKM_ENGINE_CE , struct nvkm_engine , ce, 9)
NVKM_LAYOUT_ONCE(NVKM_ENGINE_CIPHER , struct nvkm_engine , cipher) NVKM_LAYOUT_ONCE(NVKM_ENGINE_CIPHER , struct nvkm_engine , cipher)
NVKM_LAYOUT_ONCE(NVKM_ENGINE_DISP , struct nvkm_disp , disp) NVKM_LAYOUT_ONCE(NVKM_ENGINE_DISP , struct nvkm_disp , disp)
NVKM_LAYOUT_ONCE(NVKM_ENGINE_DMAOBJ , struct nvkm_dma , dma) NVKM_LAYOUT_ONCE(NVKM_ENGINE_DMAOBJ , struct nvkm_dma , dma)
NVKM_LAYOUT_ONCE(NVKM_ENGINE_FIFO , struct nvkm_fifo , fifo)
NVKM_LAYOUT_ONCE(NVKM_ENGINE_VP , struct nvkm_engine , vp) NVKM_LAYOUT_ONCE(NVKM_ENGINE_VP , struct nvkm_engine , vp)
...@@ -58,22 +58,22 @@ nvkm_fifo_chan_inst(struct nvkm_fifo *, u64 inst, unsigned long *flags); ...@@ -58,22 +58,22 @@ nvkm_fifo_chan_inst(struct nvkm_fifo *, u64 inst, unsigned long *flags);
struct nvkm_fifo_chan * struct nvkm_fifo_chan *
nvkm_fifo_chan_chid(struct nvkm_fifo *, int chid, unsigned long *flags); nvkm_fifo_chan_chid(struct nvkm_fifo *, int chid, unsigned long *flags);
int nv04_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int nv04_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int nv10_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int nv10_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int nv17_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int nv17_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int nv40_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int nv40_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int nv50_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int nv50_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int g84_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int g84_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gf100_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gf100_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gk104_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gk104_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gk110_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gk110_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gk208_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gk208_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gk20a_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gk20a_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gm107_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gm107_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gm200_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gm200_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gm20b_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gm20b_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gp100_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gp100_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gp10b_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gp10b_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int gv100_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int gv100_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
int tu102_fifo_new(struct nvkm_device *, int, struct nvkm_fifo **); int tu102_fifo_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_fifo **);
#endif #endif
...@@ -33,7 +33,6 @@ nvkm_subdev_type[NVKM_SUBDEV_NR] = { ...@@ -33,7 +33,6 @@ nvkm_subdev_type[NVKM_SUBDEV_NR] = {
#include <core/layout.h> #include <core/layout.h>
#undef NVKM_LAYOUT_ONCE #undef NVKM_LAYOUT_ONCE
#undef NVKM_LAYOUT_INST #undef NVKM_LAYOUT_INST
[NVKM_ENGINE_FIFO ] = "fifo",
[NVKM_ENGINE_GR ] = "gr", [NVKM_ENGINE_GR ] = "gr",
[NVKM_ENGINE_IFB ] = "ifb", [NVKM_ENGINE_IFB ] = "ifb",
[NVKM_ENGINE_ME ] = "me", [NVKM_ENGINE_ME ] = "me",
......
...@@ -352,7 +352,7 @@ nvkm_fifo = { ...@@ -352,7 +352,7 @@ nvkm_fifo = {
int int
nvkm_fifo_ctor(const struct nvkm_fifo_func *func, struct nvkm_device *device, nvkm_fifo_ctor(const struct nvkm_fifo_func *func, struct nvkm_device *device,
int index, int nr, struct nvkm_fifo *fifo) enum nvkm_subdev_type type, int inst, int nr, struct nvkm_fifo *fifo)
{ {
int ret; int ret;
...@@ -367,7 +367,7 @@ nvkm_fifo_ctor(const struct nvkm_fifo_func *func, struct nvkm_device *device, ...@@ -367,7 +367,7 @@ nvkm_fifo_ctor(const struct nvkm_fifo_func *func, struct nvkm_device *device,
fifo->nr = nr; fifo->nr = nr;
bitmap_clear(fifo->mask, 0, fifo->nr); bitmap_clear(fifo->mask, 0, fifo->nr);
ret = nvkm_engine_ctor(&nvkm_fifo, device, index, true, &fifo->engine); ret = nvkm_engine_ctor(&nvkm_fifo, device, type, inst, true, &fifo->engine);
if (ret) if (ret)
return ret; return ret;
......
...@@ -56,7 +56,8 @@ g84_fifo = { ...@@ -56,7 +56,8 @@ g84_fifo = {
}; };
int int
g84_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) g84_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return nv50_fifo_new_(&g84_fifo, device, index, pfifo); return nv50_fifo_new_(&g84_fifo, device, type, inst, pfifo);
} }
...@@ -682,7 +682,8 @@ gf100_fifo = { ...@@ -682,7 +682,8 @@ gf100_fifo = {
}; };
int int
gf100_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gf100_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
struct gf100_fifo *fifo; struct gf100_fifo *fifo;
...@@ -692,5 +693,5 @@ gf100_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) ...@@ -692,5 +693,5 @@ gf100_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo)
INIT_WORK(&fifo->recover.work, gf100_fifo_recover_work); INIT_WORK(&fifo->recover.work, gf100_fifo_recover_work);
*pfifo = &fifo->base; *pfifo = &fifo->base;
return nvkm_fifo_ctor(&gf100_fifo, device, index, 128, &fifo->base); return nvkm_fifo_ctor(&gf100_fifo, device, type, inst, 128, &fifo->base);
} }
...@@ -1029,7 +1029,7 @@ gk104_fifo_ = { ...@@ -1029,7 +1029,7 @@ gk104_fifo_ = {
int int
gk104_fifo_new_(const struct gk104_fifo_func *func, struct nvkm_device *device, gk104_fifo_new_(const struct gk104_fifo_func *func, struct nvkm_device *device,
int index, int nr, struct nvkm_fifo **pfifo) enum nvkm_subdev_type type, int inst, int nr, struct nvkm_fifo **pfifo)
{ {
struct gk104_fifo *fifo; struct gk104_fifo *fifo;
...@@ -1039,7 +1039,7 @@ gk104_fifo_new_(const struct gk104_fifo_func *func, struct nvkm_device *device, ...@@ -1039,7 +1039,7 @@ gk104_fifo_new_(const struct gk104_fifo_func *func, struct nvkm_device *device,
INIT_WORK(&fifo->recover.work, gk104_fifo_recover_work); INIT_WORK(&fifo->recover.work, gk104_fifo_recover_work);
*pfifo = &fifo->base; *pfifo = &fifo->base;
return nvkm_fifo_ctor(&gk104_fifo_, device, index, nr, &fifo->base); return nvkm_fifo_ctor(&gk104_fifo_, device, type, inst, nr, &fifo->base);
} }
const struct nvkm_enum const struct nvkm_enum
...@@ -1178,7 +1178,8 @@ gk104_fifo = { ...@@ -1178,7 +1178,8 @@ gk104_fifo = {
}; };
int int
gk104_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gk104_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return gk104_fifo_new_(&gk104_fifo, device, index, 4096, pfifo); return gk104_fifo_new_(&gk104_fifo, device, type, inst, 4096, pfifo);
} }
...@@ -99,7 +99,7 @@ struct gk104_fifo_engine_status { ...@@ -99,7 +99,7 @@ struct gk104_fifo_engine_status {
} prev, next, *chan; } prev, next, *chan;
}; };
int gk104_fifo_new_(const struct gk104_fifo_func *, struct nvkm_device *, int gk104_fifo_new_(const struct gk104_fifo_func *, struct nvkm_device *, enum nvkm_subdev_type,
int index, int nr, struct nvkm_fifo **); int index, int nr, struct nvkm_fifo **);
void gk104_fifo_runlist_insert(struct gk104_fifo *, struct gk104_fifo_chan *); void gk104_fifo_runlist_insert(struct gk104_fifo *, struct gk104_fifo_chan *);
void gk104_fifo_runlist_remove(struct gk104_fifo *, struct gk104_fifo_chan *); void gk104_fifo_runlist_remove(struct gk104_fifo *, struct gk104_fifo_chan *);
......
...@@ -60,7 +60,8 @@ gk110_fifo = { ...@@ -60,7 +60,8 @@ gk110_fifo = {
}; };
int int
gk110_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gk110_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return gk104_fifo_new_(&gk110_fifo, device, index, 4096, pfifo); return gk104_fifo_new_(&gk110_fifo, device, type, inst, 4096, pfifo);
} }
...@@ -57,7 +57,8 @@ gk208_fifo = { ...@@ -57,7 +57,8 @@ gk208_fifo = {
}; };
int int
gk208_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gk208_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return gk104_fifo_new_(&gk208_fifo, device, index, 1024, pfifo); return gk104_fifo_new_(&gk208_fifo, device, type, inst, 1024, pfifo);
} }
...@@ -38,7 +38,8 @@ gk20a_fifo = { ...@@ -38,7 +38,8 @@ gk20a_fifo = {
}; };
int int
gk20a_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gk20a_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return gk104_fifo_new_(&gk20a_fifo, device, index, 128, pfifo); return gk104_fifo_new_(&gk20a_fifo, device, type, inst, 128, pfifo);
} }
...@@ -106,7 +106,8 @@ gm107_fifo = { ...@@ -106,7 +106,8 @@ gm107_fifo = {
}; };
int int
gm107_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gm107_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return gk104_fifo_new_(&gm107_fifo, device, index, 2048, pfifo); return gk104_fifo_new_(&gm107_fifo, device, type, inst, 2048, pfifo);
} }
...@@ -54,7 +54,8 @@ gm200_fifo = { ...@@ -54,7 +54,8 @@ gm200_fifo = {
}; };
int int
gm200_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gm200_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return gk104_fifo_new_(&gm200_fifo, device, index, 4096, pfifo); return gk104_fifo_new_(&gm200_fifo, device, type, inst, 4096, pfifo);
} }
...@@ -38,7 +38,8 @@ gm20b_fifo = { ...@@ -38,7 +38,8 @@ gm20b_fifo = {
}; };
int int
gm20b_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gm20b_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return gk104_fifo_new_(&gm20b_fifo, device, index, 512, pfifo); return gk104_fifo_new_(&gm20b_fifo, device, type, inst, 512, pfifo);
} }
...@@ -91,7 +91,8 @@ gp100_fifo = { ...@@ -91,7 +91,8 @@ gp100_fifo = {
}; };
int int
gp100_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gp100_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return gk104_fifo_new_(&gp100_fifo, device, index, 4096, pfifo); return gk104_fifo_new_(&gp100_fifo, device, type, inst, 4096, pfifo);
} }
...@@ -39,7 +39,8 @@ gp10b_fifo = { ...@@ -39,7 +39,8 @@ gp10b_fifo = {
}; };
int int
gp10b_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gp10b_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return gk104_fifo_new_(&gp10b_fifo, device, index, 512, pfifo); return gk104_fifo_new_(&gp10b_fifo, device, type, inst, 512, pfifo);
} }
...@@ -301,7 +301,8 @@ gv100_fifo = { ...@@ -301,7 +301,8 @@ gv100_fifo = {
}; };
int int
gv100_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) gv100_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return gk104_fifo_new_(&gv100_fifo, device, index, 4096, pfifo); return gk104_fifo_new_(&gv100_fifo, device, type, inst, 4096, pfifo);
} }
...@@ -326,7 +326,7 @@ nv04_fifo_init(struct nvkm_fifo *base) ...@@ -326,7 +326,7 @@ nv04_fifo_init(struct nvkm_fifo *base)
int int
nv04_fifo_new_(const struct nvkm_fifo_func *func, struct nvkm_device *device, nv04_fifo_new_(const struct nvkm_fifo_func *func, struct nvkm_device *device,
int index, int nr, const struct nv04_fifo_ramfc *ramfc, enum nvkm_subdev_type type, int inst, int nr, const struct nv04_fifo_ramfc *ramfc,
struct nvkm_fifo **pfifo) struct nvkm_fifo **pfifo)
{ {
struct nv04_fifo *fifo; struct nv04_fifo *fifo;
...@@ -337,7 +337,7 @@ nv04_fifo_new_(const struct nvkm_fifo_func *func, struct nvkm_device *device, ...@@ -337,7 +337,7 @@ nv04_fifo_new_(const struct nvkm_fifo_func *func, struct nvkm_device *device,
fifo->ramfc = ramfc; fifo->ramfc = ramfc;
*pfifo = &fifo->base; *pfifo = &fifo->base;
ret = nvkm_fifo_ctor(func, device, index, nr, &fifo->base); ret = nvkm_fifo_ctor(func, device, type, inst, nr, &fifo->base);
if (ret) if (ret)
return ret; return ret;
...@@ -358,8 +358,8 @@ nv04_fifo = { ...@@ -358,8 +358,8 @@ nv04_fifo = {
}; };
int int
nv04_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) nv04_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return nv04_fifo_new_(&nv04_fifo, device, index, 16, return nv04_fifo_new_(&nv04_fifo, device, type, inst, 16, nv04_fifo_ramfc, pfifo);
nv04_fifo_ramfc, pfifo);
} }
...@@ -17,8 +17,7 @@ struct nv04_fifo { ...@@ -17,8 +17,7 @@ struct nv04_fifo {
const struct nv04_fifo_ramfc *ramfc; const struct nv04_fifo_ramfc *ramfc;
}; };
int nv04_fifo_new_(const struct nvkm_fifo_func *, struct nvkm_device *, int nv04_fifo_new_(const struct nvkm_fifo_func *, struct nvkm_device *, enum nvkm_subdev_type, int,
int index, int nr, const struct nv04_fifo_ramfc *, int nr, const struct nv04_fifo_ramfc *, struct nvkm_fifo **);
struct nvkm_fifo **);
void nv04_fifo_init(struct nvkm_fifo *); void nv04_fifo_init(struct nvkm_fifo *);
#endif #endif
...@@ -52,8 +52,8 @@ nv10_fifo = { ...@@ -52,8 +52,8 @@ nv10_fifo = {
}; };
int int
nv10_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) nv10_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return nv04_fifo_new_(&nv10_fifo, device, index, 32, return nv04_fifo_new_(&nv10_fifo, device, type, inst, 32, nv10_fifo_ramfc, pfifo);
nv10_fifo_ramfc, pfifo);
} }
...@@ -90,8 +90,8 @@ nv17_fifo = { ...@@ -90,8 +90,8 @@ nv17_fifo = {
}; };
int int
nv17_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) nv17_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return nv04_fifo_new_(&nv17_fifo, device, index, 32, return nv04_fifo_new_(&nv17_fifo, device, type, inst, 32, nv17_fifo_ramfc, pfifo);
nv17_fifo_ramfc, pfifo);
} }
...@@ -121,8 +121,8 @@ nv40_fifo = { ...@@ -121,8 +121,8 @@ nv40_fifo = {
}; };
int int
nv40_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) nv40_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return nv04_fifo_new_(&nv40_fifo, device, index, 32, return nv04_fifo_new_(&nv40_fifo, device, type, inst, 32, nv40_fifo_ramfc, pfifo);
nv40_fifo_ramfc, pfifo);
} }
...@@ -107,7 +107,7 @@ nv50_fifo_dtor(struct nvkm_fifo *base) ...@@ -107,7 +107,7 @@ nv50_fifo_dtor(struct nvkm_fifo *base)
int int
nv50_fifo_new_(const struct nvkm_fifo_func *func, struct nvkm_device *device, nv50_fifo_new_(const struct nvkm_fifo_func *func, struct nvkm_device *device,
int index, struct nvkm_fifo **pfifo) enum nvkm_subdev_type type, int inst, struct nvkm_fifo **pfifo)
{ {
struct nv50_fifo *fifo; struct nv50_fifo *fifo;
int ret; int ret;
...@@ -116,7 +116,7 @@ nv50_fifo_new_(const struct nvkm_fifo_func *func, struct nvkm_device *device, ...@@ -116,7 +116,7 @@ nv50_fifo_new_(const struct nvkm_fifo_func *func, struct nvkm_device *device,
return -ENOMEM; return -ENOMEM;
*pfifo = &fifo->base; *pfifo = &fifo->base;
ret = nvkm_fifo_ctor(func, device, index, 128, &fifo->base); ret = nvkm_fifo_ctor(func, device, type, inst, 128, &fifo->base);
if (ret) if (ret)
return ret; return ret;
...@@ -141,7 +141,8 @@ nv50_fifo = { ...@@ -141,7 +141,8 @@ nv50_fifo = {
}; };
int int
nv50_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) nv50_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
return nv50_fifo_new_(&nv50_fifo, device, index, pfifo); return nv50_fifo_new_(&nv50_fifo, device, type, inst, pfifo);
} }
...@@ -10,8 +10,8 @@ struct nv50_fifo { ...@@ -10,8 +10,8 @@ struct nv50_fifo {
int cur_runlist; int cur_runlist;
}; };
int nv50_fifo_new_(const struct nvkm_fifo_func *, struct nvkm_device *, int nv50_fifo_new_(const struct nvkm_fifo_func *, struct nvkm_device *, enum nvkm_subdev_type, int,
int index, struct nvkm_fifo **); struct nvkm_fifo **);
void *nv50_fifo_dtor(struct nvkm_fifo *); void *nv50_fifo_dtor(struct nvkm_fifo *);
int nv50_fifo_oneinit(struct nvkm_fifo *); int nv50_fifo_oneinit(struct nvkm_fifo *);
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
#define nvkm_fifo(p) container_of((p), struct nvkm_fifo, engine) #define nvkm_fifo(p) container_of((p), struct nvkm_fifo, engine)
#include <engine/fifo.h> #include <engine/fifo.h>
int nvkm_fifo_ctor(const struct nvkm_fifo_func *, struct nvkm_device *, int nvkm_fifo_ctor(const struct nvkm_fifo_func *, struct nvkm_device *, enum nvkm_subdev_type, int,
int index, int nr, struct nvkm_fifo *); int nr, struct nvkm_fifo *);
void nvkm_fifo_uevent(struct nvkm_fifo *); void nvkm_fifo_uevent(struct nvkm_fifo *);
void nvkm_fifo_cevent(struct nvkm_fifo *); void nvkm_fifo_cevent(struct nvkm_fifo *);
void nvkm_fifo_kevent(struct nvkm_fifo *, int chid); void nvkm_fifo_kevent(struct nvkm_fifo *, int chid);
......
...@@ -464,7 +464,8 @@ tu102_fifo_ = { ...@@ -464,7 +464,8 @@ tu102_fifo_ = {
}; };
int int
tu102_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) tu102_fifo_new(struct nvkm_device *device, enum nvkm_subdev_type type, int inst,
struct nvkm_fifo **pfifo)
{ {
struct gk104_fifo *fifo; struct gk104_fifo *fifo;
...@@ -474,5 +475,5 @@ tu102_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo) ...@@ -474,5 +475,5 @@ tu102_fifo_new(struct nvkm_device *device, int index, struct nvkm_fifo **pfifo)
INIT_WORK(&fifo->recover.work, tu102_fifo_recover_work); INIT_WORK(&fifo->recover.work, tu102_fifo_recover_work);
*pfifo = &fifo->base; *pfifo = &fifo->base;
return nvkm_fifo_ctor(&tu102_fifo_, device, index, 4096, &fifo->base); return nvkm_fifo_ctor(&tu102_fifo_, device, type, inst, 4096, &fifo->base);
} }
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