Commit c546656f authored by Ben Skeggs's avatar Ben Skeggs Committed by Karol Herbst

drm/nouveau/fifo: remove left-over references to nvkm_fifo_chan

This was renamed to nvkm_chan in the host rework.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Reviewed-by: default avatarKarol Herbst <kherbst@redhat.com>
Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
Signed-off-by: default avatarKarol Herbst <kherbst@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230525003106.3853741-5-skeggsb@gmail.com
parent 8829a562
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#define __NVKM_ENGINE_H__ #define __NVKM_ENGINE_H__
#define nvkm_engine(p) container_of((p), struct nvkm_engine, subdev) #define nvkm_engine(p) container_of((p), struct nvkm_engine, subdev)
#include <core/subdev.h> #include <core/subdev.h>
struct nvkm_fifo_chan; struct nvkm_chan;
struct nvkm_fb_tile; struct nvkm_fb_tile;
extern const struct nvkm_subdev_func nvkm_engine; extern const struct nvkm_subdev_func nvkm_engine;
...@@ -32,8 +32,7 @@ struct nvkm_engine_func { ...@@ -32,8 +32,7 @@ struct nvkm_engine_func {
} base; } base;
struct { struct {
int (*cclass)(struct nvkm_fifo_chan *, int (*cclass)(struct nvkm_chan *, const struct nvkm_oclass *,
const struct nvkm_oclass *,
struct nvkm_object **); struct nvkm_object **);
int (*sclass)(struct nvkm_oclass *, int index); int (*sclass)(struct nvkm_oclass *, int index);
} fifo; } fifo;
......
...@@ -49,9 +49,4 @@ nvkm_blob_dtor(struct nvkm_blob *blob) ...@@ -49,9 +49,4 @@ nvkm_blob_dtor(struct nvkm_blob *blob)
(p = container_of((h), typeof(*p), m), nvkm_list_find_next(p, (h), m, (c))) (p = container_of((h), typeof(*p), m), nvkm_list_find_next(p, (h), m, (c)))
#define nvkm_list_foreach(p,h,m,c) \ #define nvkm_list_foreach(p,h,m,c) \
for (p = nvkm_list_find(p, (h), m, (c)); p; p = nvkm_list_find_next(p, (h), m, (c))) for (p = nvkm_list_find(p, (h), m, (c)); p; p = nvkm_list_find_next(p, (h), m, (c)))
/*FIXME: remove after */
#define nvkm_fifo_chan nvkm_chan
#define nvkm_fifo_chan_func nvkm_chan_func
#define nvkm_fifo_cgrp nvkm_cgrp
#endif #endif
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#define __NVKM_FLCNEN_H__ #define __NVKM_FLCNEN_H__
#define nvkm_falcon(p) container_of((p), struct nvkm_falcon, engine) #define nvkm_falcon(p) container_of((p), struct nvkm_falcon, engine)
#include <core/engine.h> #include <core/engine.h>
struct nvkm_fifo_chan; struct nvkm_chan;
enum nvkm_falcon_dmaidx { enum nvkm_falcon_dmaidx {
FALCON_DMAIDX_UCODE = 0, FALCON_DMAIDX_UCODE = 0,
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#define __NVKM_CE_PRIV_H__ #define __NVKM_CE_PRIV_H__
#include <engine/ce.h> #include <engine/ce.h>
void gt215_ce_intr(struct nvkm_falcon *, struct nvkm_fifo_chan *); void gt215_ce_intr(struct nvkm_falcon *, struct nvkm_chan *);
void gk104_ce_intr(struct nvkm_engine *); void gk104_ce_intr(struct nvkm_engine *);
void gp100_ce_intr(struct nvkm_engine *); void gp100_ce_intr(struct nvkm_engine *);
......
...@@ -109,8 +109,7 @@ nvkm_gr_oclass_get(struct nvkm_oclass *oclass, int index) ...@@ -109,8 +109,7 @@ nvkm_gr_oclass_get(struct nvkm_oclass *oclass, int index)
} }
static int static int
nvkm_gr_cclass_new(struct nvkm_fifo_chan *chan, nvkm_gr_cclass_new(struct nvkm_chan *chan, const struct nvkm_oclass *oclass,
const struct nvkm_oclass *oclass,
struct nvkm_object **pobject) struct nvkm_object **pobject)
{ {
struct nvkm_gr *gr = nvkm_gr(oclass->engine); struct nvkm_gr *gr = nvkm_gr(oclass->engine);
......
...@@ -374,7 +374,7 @@ gf100_gr_chan = { ...@@ -374,7 +374,7 @@ gf100_gr_chan = {
}; };
static int static int
gf100_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, gf100_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, const struct nvkm_oclass *oclass,
struct nvkm_object **pobject) struct nvkm_object **pobject)
{ {
......
...@@ -1181,7 +1181,7 @@ nv04_gr_chan = { ...@@ -1181,7 +1181,7 @@ nv04_gr_chan = {
}; };
static int static int
nv04_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, nv04_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv04_gr *gr = nv04_gr(base); struct nv04_gr *gr = nv04_gr(base);
......
...@@ -999,7 +999,7 @@ nv10_gr_chan = { ...@@ -999,7 +999,7 @@ nv10_gr_chan = {
} while (0) } while (0)
int int
nv10_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, nv10_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv10_gr *gr = nv10_gr(base); struct nv10_gr *gr = nv10_gr(base);
......
...@@ -9,6 +9,6 @@ int nv10_gr_init(struct nvkm_gr *); ...@@ -9,6 +9,6 @@ int nv10_gr_init(struct nvkm_gr *);
void nv10_gr_intr(struct nvkm_gr *); void nv10_gr_intr(struct nvkm_gr *);
void nv10_gr_tile(struct nvkm_gr *, int, struct nvkm_fb_tile *); void nv10_gr_tile(struct nvkm_gr *, int, struct nvkm_fb_tile *);
int nv10_gr_chan_new(struct nvkm_gr *, struct nvkm_fifo_chan *, int nv10_gr_chan_new(struct nvkm_gr *, struct nvkm_chan *,
const struct nvkm_oclass *, struct nvkm_object **); const struct nvkm_oclass *, struct nvkm_object **);
#endif #endif
...@@ -72,7 +72,7 @@ nv20_gr_chan = { ...@@ -72,7 +72,7 @@ nv20_gr_chan = {
}; };
static int static int
nv20_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, nv20_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv20_gr *gr = nv20_gr(base); struct nv20_gr *gr = nv20_gr(base);
......
...@@ -18,7 +18,7 @@ nv25_gr_chan = { ...@@ -18,7 +18,7 @@ nv25_gr_chan = {
}; };
static int static int
nv25_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, nv25_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv20_gr *gr = nv20_gr(base); struct nv20_gr *gr = nv20_gr(base);
......
...@@ -18,7 +18,7 @@ nv2a_gr_chan = { ...@@ -18,7 +18,7 @@ nv2a_gr_chan = {
}; };
static int static int
nv2a_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, nv2a_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv20_gr *gr = nv20_gr(base); struct nv20_gr *gr = nv20_gr(base);
......
...@@ -19,7 +19,7 @@ nv30_gr_chan = { ...@@ -19,7 +19,7 @@ nv30_gr_chan = {
}; };
static int static int
nv30_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, nv30_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv20_gr *gr = nv20_gr(base); struct nv20_gr *gr = nv20_gr(base);
......
...@@ -18,7 +18,7 @@ nv34_gr_chan = { ...@@ -18,7 +18,7 @@ nv34_gr_chan = {
}; };
static int static int
nv34_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, nv34_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv20_gr *gr = nv20_gr(base); struct nv20_gr *gr = nv20_gr(base);
......
...@@ -18,7 +18,7 @@ nv35_gr_chan = { ...@@ -18,7 +18,7 @@ nv35_gr_chan = {
}; };
static int static int
nv35_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, nv35_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv20_gr *gr = nv20_gr(base); struct nv20_gr *gr = nv20_gr(base);
......
...@@ -145,7 +145,7 @@ nv40_gr_chan = { ...@@ -145,7 +145,7 @@ nv40_gr_chan = {
}; };
int int
nv40_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, nv40_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv40_gr *gr = nv40_gr(base); struct nv40_gr *gr = nv40_gr(base);
......
...@@ -22,12 +22,12 @@ u64 nv40_gr_units(struct nvkm_gr *); ...@@ -22,12 +22,12 @@ u64 nv40_gr_units(struct nvkm_gr *);
struct nv40_gr_chan { struct nv40_gr_chan {
struct nvkm_object object; struct nvkm_object object;
struct nv40_gr *gr; struct nv40_gr *gr;
struct nvkm_fifo_chan *fifo; struct nvkm_chan *fifo;
u32 inst; u32 inst;
struct list_head head; struct list_head head;
}; };
int nv40_gr_chan_new(struct nvkm_gr *, struct nvkm_fifo_chan *, int nv40_gr_chan_new(struct nvkm_gr *, struct nvkm_chan *,
const struct nvkm_oclass *, struct nvkm_object **); const struct nvkm_oclass *, struct nvkm_object **);
extern const struct nvkm_object_func nv40_gr_object; extern const struct nvkm_object_func nv40_gr_object;
......
...@@ -86,7 +86,7 @@ nv50_gr_chan = { ...@@ -86,7 +86,7 @@ nv50_gr_chan = {
}; };
int int
nv50_gr_chan_new(struct nvkm_gr *base, struct nvkm_fifo_chan *fifoch, nv50_gr_chan_new(struct nvkm_gr *base, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv50_gr *gr = nv50_gr(base); struct nv50_gr *gr = nv50_gr(base);
......
...@@ -27,7 +27,7 @@ struct nv50_gr_chan { ...@@ -27,7 +27,7 @@ struct nv50_gr_chan {
struct nv50_gr *gr; struct nv50_gr *gr;
}; };
int nv50_gr_chan_new(struct nvkm_gr *, struct nvkm_fifo_chan *, int nv50_gr_chan_new(struct nvkm_gr *, struct nvkm_chan *,
const struct nvkm_oclass *, struct nvkm_object **); const struct nvkm_oclass *, struct nvkm_object **);
extern const struct nvkm_object_func nv50_gr_object; extern const struct nvkm_object_func nv50_gr_object;
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#include <engine/gr.h> #include <engine/gr.h>
#include <core/enum.h> #include <core/enum.h>
struct nvkm_fb_tile; struct nvkm_fb_tile;
struct nvkm_fifo_chan; struct nvkm_chan;
int nvkm_gr_ctor(const struct nvkm_gr_func *, struct nvkm_device *, enum nvkm_subdev_type, int, int nvkm_gr_ctor(const struct nvkm_gr_func *, struct nvkm_device *, enum nvkm_subdev_type, int,
bool enable, struct nvkm_gr *); bool enable, struct nvkm_gr *);
...@@ -21,7 +21,7 @@ struct nvkm_gr_func { ...@@ -21,7 +21,7 @@ struct nvkm_gr_func {
void (*intr)(struct nvkm_gr *); void (*intr)(struct nvkm_gr *);
void (*tile)(struct nvkm_gr *, int region, struct nvkm_fb_tile *); void (*tile)(struct nvkm_gr *, int region, struct nvkm_fb_tile *);
int (*tlb_flush)(struct nvkm_gr *); int (*tlb_flush)(struct nvkm_gr *);
int (*chan_new)(struct nvkm_gr *, struct nvkm_fifo_chan *, int (*chan_new)(struct nvkm_gr *, struct nvkm_chan *,
const struct nvkm_oclass *, struct nvkm_object **); const struct nvkm_oclass *, struct nvkm_object **);
int (*object_get)(struct nvkm_gr *, int, struct nvkm_sclass *); int (*object_get)(struct nvkm_gr *, int, struct nvkm_sclass *);
/* Returns chipset-specific counts of units packed into an u64. /* Returns chipset-specific counts of units packed into an u64.
......
...@@ -81,8 +81,7 @@ nv31_mpeg_chan = { ...@@ -81,8 +81,7 @@ nv31_mpeg_chan = {
}; };
int int
nv31_mpeg_chan_new(struct nvkm_fifo_chan *fifoch, nv31_mpeg_chan_new(struct nvkm_chan *fifoch, const struct nvkm_oclass *oclass,
const struct nvkm_oclass *oclass,
struct nvkm_object **pobject) struct nvkm_object **pobject)
{ {
struct nv31_mpeg *mpeg = nv31_mpeg(oclass->engine); struct nv31_mpeg *mpeg = nv31_mpeg(oclass->engine);
......
...@@ -24,9 +24,9 @@ struct nv31_mpeg_func { ...@@ -24,9 +24,9 @@ struct nv31_mpeg_func {
struct nv31_mpeg_chan { struct nv31_mpeg_chan {
struct nvkm_object object; struct nvkm_object object;
struct nv31_mpeg *mpeg; struct nv31_mpeg *mpeg;
struct nvkm_fifo_chan *fifo; struct nvkm_chan *fifo;
}; };
int nv31_mpeg_chan_new(struct nvkm_fifo_chan *, const struct nvkm_oclass *, int nv31_mpeg_chan_new(struct nvkm_chan *, const struct nvkm_oclass *,
struct nvkm_object **); struct nvkm_object **);
#endif #endif
...@@ -43,7 +43,7 @@ struct nv44_mpeg { ...@@ -43,7 +43,7 @@ struct nv44_mpeg {
struct nv44_mpeg_chan { struct nv44_mpeg_chan {
struct nvkm_object object; struct nvkm_object object;
struct nv44_mpeg *mpeg; struct nv44_mpeg *mpeg;
struct nvkm_fifo_chan *fifo; struct nvkm_chan *fifo;
struct list_head head; struct list_head head;
u32 inst; u32 inst;
}; };
...@@ -100,8 +100,7 @@ nv44_mpeg_chan = { ...@@ -100,8 +100,7 @@ nv44_mpeg_chan = {
}; };
static int static int
nv44_mpeg_chan_new(struct nvkm_fifo_chan *fifoch, nv44_mpeg_chan_new(struct nvkm_chan *fifoch, const struct nvkm_oclass *oclass,
const struct nvkm_oclass *oclass,
struct nvkm_object **pobject) struct nvkm_object **pobject)
{ {
struct nv44_mpeg *mpeg = nv44_mpeg(oclass->engine); struct nv44_mpeg *mpeg = nv44_mpeg(oclass->engine);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#ifndef __NVKM_MPEG_PRIV_H__ #ifndef __NVKM_MPEG_PRIV_H__
#define __NVKM_MPEG_PRIV_H__ #define __NVKM_MPEG_PRIV_H__
#include <engine/mpeg.h> #include <engine/mpeg.h>
struct nvkm_fifo_chan; struct nvkm_chan;
int nv31_mpeg_init(struct nvkm_engine *); int nv31_mpeg_init(struct nvkm_engine *);
void nv31_mpeg_tile(struct nvkm_engine *, int, struct nvkm_fb_tile *); void nv31_mpeg_tile(struct nvkm_engine *, int, struct nvkm_fb_tile *);
......
...@@ -74,8 +74,7 @@ nvkm_sw_oclass_get(struct nvkm_oclass *oclass, int index) ...@@ -74,8 +74,7 @@ nvkm_sw_oclass_get(struct nvkm_oclass *oclass, int index)
} }
static int static int
nvkm_sw_cclass_get(struct nvkm_fifo_chan *fifoch, nvkm_sw_cclass_get(struct nvkm_chan *fifoch, const struct nvkm_oclass *oclass,
const struct nvkm_oclass *oclass,
struct nvkm_object **pobject) struct nvkm_object **pobject)
{ {
struct nvkm_sw *sw = nvkm_sw(oclass->engine); struct nvkm_sw *sw = nvkm_sw(oclass->engine);
......
...@@ -74,7 +74,7 @@ nvkm_sw_chan = { ...@@ -74,7 +74,7 @@ nvkm_sw_chan = {
int int
nvkm_sw_chan_ctor(const struct nvkm_sw_chan_func *func, struct nvkm_sw *sw, nvkm_sw_chan_ctor(const struct nvkm_sw_chan_func *func, struct nvkm_sw *sw,
struct nvkm_fifo_chan *fifo, const struct nvkm_oclass *oclass, struct nvkm_chan *fifo, const struct nvkm_oclass *oclass,
struct nvkm_sw_chan *chan) struct nvkm_sw_chan *chan)
{ {
unsigned long flags; unsigned long flags;
......
...@@ -11,7 +11,7 @@ struct nvkm_sw_chan { ...@@ -11,7 +11,7 @@ struct nvkm_sw_chan {
const struct nvkm_sw_chan_func *func; const struct nvkm_sw_chan_func *func;
struct nvkm_object object; struct nvkm_object object;
struct nvkm_sw *sw; struct nvkm_sw *sw;
struct nvkm_fifo_chan *fifo; struct nvkm_chan *fifo;
struct list_head head; struct list_head head;
#define NVKM_SW_CHAN_EVENT_PAGE_FLIP BIT(0) #define NVKM_SW_CHAN_EVENT_PAGE_FLIP BIT(0)
...@@ -24,7 +24,7 @@ struct nvkm_sw_chan_func { ...@@ -24,7 +24,7 @@ struct nvkm_sw_chan_func {
}; };
int nvkm_sw_chan_ctor(const struct nvkm_sw_chan_func *, struct nvkm_sw *, int nvkm_sw_chan_ctor(const struct nvkm_sw_chan_func *, struct nvkm_sw *,
struct nvkm_fifo_chan *, const struct nvkm_oclass *, struct nvkm_chan *, const struct nvkm_oclass *,
struct nvkm_sw_chan *); struct nvkm_sw_chan *);
bool nvkm_sw_chan_mthd(struct nvkm_sw_chan *, int subc, u32 mthd, u32 data); bool nvkm_sw_chan_mthd(struct nvkm_sw_chan *, int subc, u32 mthd, u32 data);
#endif #endif
...@@ -102,7 +102,7 @@ gf100_sw_chan = { ...@@ -102,7 +102,7 @@ gf100_sw_chan = {
}; };
static int static int
gf100_sw_chan_new(struct nvkm_sw *sw, struct nvkm_fifo_chan *fifoch, gf100_sw_chan_new(struct nvkm_sw *sw, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, const struct nvkm_oclass *oclass,
struct nvkm_object **pobject) struct nvkm_object **pobject)
{ {
......
...@@ -106,7 +106,7 @@ nv04_sw_chan = { ...@@ -106,7 +106,7 @@ nv04_sw_chan = {
}; };
static int static int
nv04_sw_chan_new(struct nvkm_sw *sw, struct nvkm_fifo_chan *fifo, nv04_sw_chan_new(struct nvkm_sw *sw, struct nvkm_chan *fifo,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nv04_sw_chan *chan; struct nv04_sw_chan *chan;
......
...@@ -36,7 +36,7 @@ nv10_sw_chan = { ...@@ -36,7 +36,7 @@ nv10_sw_chan = {
}; };
static int static int
nv10_sw_chan_new(struct nvkm_sw *sw, struct nvkm_fifo_chan *fifo, nv10_sw_chan_new(struct nvkm_sw *sw, struct nvkm_chan *fifo,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nvkm_sw_chan *chan; struct nvkm_sw_chan *chan;
......
...@@ -99,7 +99,7 @@ nv50_sw_chan = { ...@@ -99,7 +99,7 @@ nv50_sw_chan = {
}; };
static int static int
nv50_sw_chan_new(struct nvkm_sw *sw, struct nvkm_fifo_chan *fifoch, nv50_sw_chan_new(struct nvkm_sw *sw, struct nvkm_chan *fifoch,
const struct nvkm_oclass *oclass, struct nvkm_object **pobject) const struct nvkm_oclass *oclass, struct nvkm_object **pobject)
{ {
struct nvkm_disp *disp = sw->engine.subdev.device->disp; struct nvkm_disp *disp = sw->engine.subdev.device->disp;
......
...@@ -15,7 +15,7 @@ struct nvkm_sw_chan_sclass { ...@@ -15,7 +15,7 @@ struct nvkm_sw_chan_sclass {
}; };
struct nvkm_sw_func { struct nvkm_sw_func {
int (*chan_new)(struct nvkm_sw *, struct nvkm_fifo_chan *, int (*chan_new)(struct nvkm_sw *, struct nvkm_chan *,
const struct nvkm_oclass *, struct nvkm_object **); const struct nvkm_oclass *, struct nvkm_object **);
const struct nvkm_sw_chan_sclass sclass[]; const struct nvkm_sw_chan_sclass sclass[];
}; };
......
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