/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __NV20_GR_H__
#define __NV20_GR_H__
#define nv20_gr(p) container_of((p), struct nv20_gr, base)
#include "priv.h"

struct nv20_gr {
	struct nvkm_gr base;
	struct nvkm_memory *ctxtab;
};

int nv20_gr_new_(const struct nvkm_gr_func *, struct nvkm_device *,
		 int, struct nvkm_gr **);
void *nv20_gr_dtor(struct nvkm_gr *);
int nv20_gr_oneinit(struct nvkm_gr *);
int nv20_gr_init(struct nvkm_gr *);
void nv20_gr_intr(struct nvkm_gr *);
void nv20_gr_tile(struct nvkm_gr *, int, struct nvkm_fb_tile *);

int nv30_gr_init(struct nvkm_gr *);

#define nv20_gr_chan(p) container_of((p), struct nv20_gr_chan, object)

struct nv20_gr_chan {
	struct nvkm_object object;
	struct nv20_gr *gr;
	int chid;
	struct nvkm_memory *inst;
};

void *nv20_gr_chan_dtor(struct nvkm_object *);
int nv20_gr_chan_init(struct nvkm_object *);
int nv20_gr_chan_fini(struct nvkm_object *, bool);
#endif
